fumadocs-mdx 14.2.4 → 14.2.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.
Files changed (55) hide show
  1. package/dist/{adapter-DG-viEbG.js → adapter-DI4cexsC.js} +3 -2
  2. package/dist/adapter-DI4cexsC.js.map +1 -0
  3. package/dist/build-BTTNEFmV.js.map +1 -1
  4. package/dist/{build-mdx-BVeBo4jT.js → build-mdx-Blq7ZKoM.js} +8 -2
  5. package/dist/build-mdx-Blq7ZKoM.js.map +1 -0
  6. package/dist/build-mdx-EzuL9Bt0.js +5 -0
  7. package/dist/bun/index.d.ts +1 -1
  8. package/dist/bun/index.js +3 -3
  9. package/dist/codegen-DleOVLNr.js.map +1 -1
  10. package/dist/config/index.d.ts +1 -1
  11. package/dist/core-DjldE3H9.js.map +1 -1
  12. package/dist/{core-DG43f_AU.d.ts → core-O3WLuY_I.d.ts} +7 -2
  13. package/dist/core-O3WLuY_I.d.ts.map +1 -0
  14. package/dist/fuma-matter-CHgJa_-B.js.map +1 -1
  15. package/dist/index-file-D9HsrWU_.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/{mdx-DMZ9tsAa.js → mdx-CPnL-Edm.js} +4 -4
  18. package/dist/mdx-CPnL-Edm.js.map +1 -0
  19. package/dist/{meta-DyieTM4Z.js → meta-BKBx8Gab.js} +3 -3
  20. package/dist/meta-BKBx8Gab.js.map +1 -0
  21. package/dist/next/index.d.ts +1 -1
  22. package/dist/next/index.js.map +1 -1
  23. package/dist/node/loader.js +3 -3
  24. package/dist/node/loader.js.map +1 -1
  25. package/dist/plugins/index-file.d.ts +1 -1
  26. package/dist/plugins/json-schema.d.ts +1 -1
  27. package/dist/plugins/json-schema.js.map +1 -1
  28. package/dist/plugins/last-modified.d.ts +1 -1
  29. package/dist/plugins/last-modified.js.map +1 -1
  30. package/dist/remark-include-D3G3mAnv.js.map +1 -1
  31. package/dist/runtime/browser.d.ts +6 -6
  32. package/dist/runtime/browser.d.ts.map +1 -1
  33. package/dist/runtime/browser.js +12 -14
  34. package/dist/runtime/browser.js.map +1 -1
  35. package/dist/runtime/dynamic.d.ts +1 -1
  36. package/dist/runtime/dynamic.js +1 -1
  37. package/dist/runtime/dynamic.js.map +1 -1
  38. package/dist/runtime/server.d.ts +1 -1
  39. package/dist/runtime/server.js.map +1 -1
  40. package/dist/vite/index.d.ts +1 -1
  41. package/dist/vite/index.js +3 -3
  42. package/dist/webpack/mdx.d.ts +1 -1
  43. package/dist/webpack/mdx.js +2 -2
  44. package/dist/webpack/mdx.js.map +1 -1
  45. package/dist/webpack/meta.d.ts +1 -1
  46. package/dist/webpack/meta.js +2 -2
  47. package/dist/webpack/meta.js.map +1 -1
  48. package/dist/webpack--VSEE6Zp.js.map +1 -1
  49. package/package.json +9 -9
  50. package/dist/adapter-DG-viEbG.js.map +0 -1
  51. package/dist/build-mdx-BVeBo4jT.js.map +0 -1
  52. package/dist/build-mdx-ChjP7zAn.js +0 -5
  53. package/dist/core-DG43f_AU.d.ts.map +0 -1
  54. package/dist/mdx-DMZ9tsAa.js.map +0 -1
  55. package/dist/meta-DyieTM4Z.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-mdx",
3
- "version": "14.2.4",
3
+ "version": "14.2.6",
4
4
  "description": "The built-in source for Fumadocs",
5
5
  "keywords": [
6
6
  "Docs",
@@ -76,16 +76,16 @@
76
76
  "unist-util-remove-position": "^5.0.0",
77
77
  "unist-util-visit": "^5.0.0",
78
78
  "vfile": "^6.0.3",
79
- "zod": "^4.2.1"
79
+ "zod": "^4.3.5"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@types/bun": "^1.3.5",
83
83
  "@types/js-yaml": "^4.0.9",
84
84
  "@types/mdast": "^4.0.4",
85
85
  "@types/mdx": "^2.0.13",
86
- "@types/node": "^24.10.2",
86
+ "@types/node": "^25.0.5",
87
87
  "@types/picomatch": "^4.0.2",
88
- "@types/react": "^19.2.7",
88
+ "@types/react": "^19.2.8",
89
89
  "mdast-util-directive": "^3.1.0",
90
90
  "mdast-util-mdx-jsx": "^3.2.0",
91
91
  "next": "16.1.1",
@@ -93,14 +93,14 @@
93
93
  "remark": "^15.0.1",
94
94
  "remark-directive": "^4.0.0",
95
95
  "remark-stringify": "^11.0.0",
96
- "rollup": "^4.54.0",
97
- "tsdown": "^0.18.3",
98
- "vite": "^7.3.0",
96
+ "rollup": "^4.55.1",
97
+ "tsdown": "^0.19.0",
98
+ "vite": "^7.3.1",
99
99
  "webpack": "^5.104.1",
100
100
  "@fumadocs/mdx-remote": "1.4.4",
101
+ "tsconfig": "0.0.0",
101
102
  "eslint-config-custom": "0.0.0",
102
- "fumadocs-core": "16.4.2",
103
- "tsconfig": "0.0.0"
103
+ "fumadocs-core": "16.4.7"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "@fumadocs/mdx-remote": "^1.4.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter-DG-viEbG.js","names":["prev:\n | {\n hash: string;\n init: Promise<void>;\n }\n | undefined","file","input: LoaderInput"],"sources":["../src/loaders/config.ts","../src/loaders/adapter.ts"],"sourcesContent":["import type { Core } from '@/core';\nimport fs from 'node:fs/promises';\n\nexport interface ConfigLoader {\n getCore(): Promise<Core>;\n}\n\nexport function createStandaloneConfigLoader({\n core,\n buildConfig,\n mode,\n}: {\n /**\n * core (not initialized)\n */\n core: Core;\n buildConfig: boolean;\n /**\n * In dev mode, the config file is dynamically re-loaded when it's updated.\n */\n mode: 'dev' | 'production';\n}): ConfigLoader {\n let prev:\n | {\n hash: string;\n init: Promise<void>;\n }\n | undefined;\n\n async function getConfigHash(): Promise<string> {\n if (mode === 'production') return 'static';\n\n const stats = await fs.stat(core.getOptions().configPath).catch(() => {\n throw new Error('Cannot find config file');\n });\n\n return stats.mtime.getTime().toString();\n }\n\n return {\n async getCore() {\n const hash = await getConfigHash();\n if (!prev || hash !== prev.hash) {\n prev = {\n hash,\n init: (async () => {\n const { loadConfig } = await import('../config/load-from-file');\n\n await core.init({\n config: loadConfig(core, buildConfig),\n });\n })(),\n };\n }\n\n await prev.init;\n return core;\n },\n };\n}\n\n/**\n * create config loader from initialized core\n */\nexport function createIntegratedConfigLoader(core: Core): ConfigLoader {\n return {\n async getCore() {\n return core;\n },\n };\n}\n","import type { CompilerOptions } from '@/loaders/mdx/build-mdx';\nimport type { LoadFnOutput, LoadHook } from 'node:module';\nimport { fileURLToPath } from 'node:url';\nimport fs from 'node:fs/promises';\nimport type { SourceMap, TransformPluginContext } from 'rollup';\nimport type { TransformResult } from 'vite';\nimport { parse } from 'node:querystring';\nimport { ValidationError } from '@/utils/validation';\nimport type { LoaderContext } from 'webpack';\nimport { readFileSync } from 'node:fs';\n\nexport interface LoaderInput {\n development: boolean;\n compiler: CompilerOptions;\n\n filePath: string;\n query: Record<string, string | string[] | undefined>;\n getSource: () => string | Promise<string>;\n}\n\nexport interface LoaderOutput {\n code: string;\n map?: unknown;\n\n /**\n * Only supported in Vite 8.\n *\n * Explicitly define the transformed module type, for unsupported environments, you need to consider the differences between each bundler.\n */\n moduleType?: 'js' | 'json';\n}\n\ntype Awaitable<T> = T | Promise<T>;\n\nexport interface Loader {\n /**\n * Filter file paths, the input can be either a file URL or file path.\n *\n * Must take resource query into consideration.\n */\n test?: RegExp;\n\n /**\n * Transform input into JavaScript.\n *\n * Returns:\n * - `LoaderOutput`: JavaScript code & source map.\n * - `null`: skip the loader. Fallback to default behaviour if possible, otherwise the adapter will try workarounds.\n */\n load: (input: LoaderInput) => Awaitable<LoaderOutput | null>;\n\n bun?: {\n /**\n * 1. Bun doesn't allow `null` in loaders.\n * 2. Bun requires sync result to support dynamic require().\n */\n load?: (source: string, input: LoaderInput) => Awaitable<Bun.OnLoadResult>;\n };\n}\n\nexport function toNode(loader: Loader): LoadHook {\n return async (url, _context, nextLoad): Promise<LoadFnOutput> => {\n if (url.startsWith('file:///') && (!loader.test || loader.test.test(url))) {\n const parsedUrl = new URL(url);\n const filePath = fileURLToPath(parsedUrl);\n\n const result = await loader.load({\n filePath,\n query: Object.fromEntries(parsedUrl.searchParams.entries()),\n async getSource() {\n return (await fs.readFile(filePath)).toString();\n },\n development: false,\n compiler: {\n addDependency() {},\n },\n });\n\n if (result) {\n return {\n source: result.code,\n format: 'module',\n shortCircuit: true,\n };\n }\n }\n\n return nextLoad(url);\n };\n}\n\nexport interface ViteLoader {\n filter: (id: string) => boolean;\n\n transform: (\n this: TransformPluginContext,\n value: string,\n id: string,\n ) => Promise<TransformResult | null>;\n}\n\nexport function toVite(loader: Loader): ViteLoader {\n return {\n filter(id) {\n return !loader.test || loader.test.test(id);\n },\n async transform(value, id) {\n const [file, query = ''] = id.split('?', 2);\n\n const result = await loader.load({\n filePath: file,\n query: parse(query),\n getSource() {\n return value;\n },\n development: this.environment.mode === 'dev',\n compiler: {\n addDependency: (file) => {\n this.addWatchFile(file);\n },\n },\n });\n\n if (result === null) return null;\n return {\n code: result.code,\n map: result.map as SourceMap,\n moduleType: result.moduleType,\n };\n },\n };\n}\n\nexport type WebpackLoader = (\n this: LoaderContext<unknown>,\n source: string,\n callback: LoaderContext<unknown>['callback'],\n) => Promise<void>;\n\n/**\n * need to handle the `test` regex in Webpack config instead.\n */\nexport function toWebpack(loader: Loader): WebpackLoader {\n return async function (source, callback) {\n try {\n const result = await loader.load({\n filePath: this.resourcePath,\n query: parse(this.resourceQuery.slice(1)),\n getSource() {\n return source;\n },\n development: this.mode === 'development',\n compiler: this,\n });\n\n if (result === null) {\n callback(undefined, source);\n } else {\n callback(undefined, result.code, result.map as string);\n }\n } catch (error) {\n if (error instanceof ValidationError) {\n return callback(new Error(await error.toStringFormatted()));\n }\n\n if (!(error instanceof Error)) throw error;\n callback(error);\n }\n };\n}\n\nexport function toBun(loader: Loader) {\n function toResult(output: LoaderOutput | null): Bun.OnLoadResult {\n // it errors, treat this as an exception\n if (!output) return;\n\n return {\n contents: output.code,\n loader: output.moduleType ?? 'js',\n };\n }\n\n return (build: Bun.PluginBuilder) => {\n // avoid using async here, because it will cause dynamic require() to fail\n build.onLoad({ filter: loader.test ?? /.+/ }, (args) => {\n const [filePath, query = ''] = args.path.split('?', 2);\n const input: LoaderInput = {\n async getSource() {\n return Bun.file(filePath).text();\n },\n query: parse(query),\n filePath,\n development: false,\n compiler: {\n addDependency() {},\n },\n };\n\n if (loader.bun?.load) {\n return loader.bun.load(readFileSync(filePath).toString(), input);\n }\n\n const result = loader.load(input);\n if (result instanceof Promise) {\n return result.then(toResult);\n }\n return toResult(result);\n });\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-mdx-BVeBo4jT.js","names":["_stringifyProcessor: Processor | undefined","urls: ExtractedReference[]","postprocessOptions: PostprocessOptions"],"sources":["../src/loaders/mdx/remark-postprocess.ts","../src/loaders/mdx/build-mdx.ts"],"sourcesContent":["import type { Processor, Transformer } from 'unified';\nimport type { Root, RootContent } from 'mdast';\nimport { visit } from 'unist-util-visit';\nimport { toMarkdown } from 'mdast-util-to-markdown';\nimport { valueToEstree } from 'estree-util-value-to-estree';\nimport { removePosition } from 'unist-util-remove-position';\nimport remarkMdx from 'remark-mdx';\nimport { flattenNode } from './mdast-utils';\n\nexport interface ExtractedReference {\n href: string;\n}\n\nexport interface PostprocessOptions {\n _format: 'md' | 'mdx';\n\n /**\n * Properties to export from `vfile.data`\n */\n valueToExport?: string[];\n\n /**\n * stringify MDAST and export via `_markdown`.\n */\n includeProcessedMarkdown?: boolean;\n\n /**\n * extract link references, export via `extractedReferences`.\n */\n extractLinkReferences?: boolean;\n\n /**\n * store MDAST and export via `_mdast`.\n */\n includeMDAST?:\n | boolean\n | {\n removePosition?: boolean;\n };\n}\n\n/**\n * - collect references\n * - write frontmatter (auto-title & description)\n */\nexport function remarkPostprocess(\n this: Processor,\n {\n _format,\n includeProcessedMarkdown = false,\n includeMDAST = false,\n extractLinkReferences = false,\n valueToExport = [],\n }: PostprocessOptions,\n): Transformer<Root, Root> {\n let _stringifyProcessor: Processor | undefined;\n const getStringifyProcessor = () => {\n return (_stringifyProcessor ??=\n _format === 'mdx'\n ? this\n : // force Markdown processor to stringify MDX nodes\n this().use(remarkMdx).freeze());\n };\n\n return (tree, file) => {\n const frontmatter = (file.data.frontmatter ??= {});\n if (!frontmatter.title) {\n visit(tree, 'heading', (node) => {\n if (node.depth === 1) {\n frontmatter.title = flattenNode(node);\n return false;\n }\n });\n }\n\n file.data['mdx-export'] ??= [];\n file.data['mdx-export'].push({\n name: 'frontmatter',\n value: frontmatter,\n });\n\n if (extractLinkReferences) {\n const urls: ExtractedReference[] = [];\n\n visit(tree, 'link', (node) => {\n urls.push({\n href: node.url,\n });\n return 'skip';\n });\n\n file.data['mdx-export'].push({\n name: 'extractedReferences',\n value: urls,\n });\n }\n\n if (includeProcessedMarkdown) {\n const processor = getStringifyProcessor();\n const markdown = toMarkdown(tree, {\n ...processor.data('settings'),\n // from https://github.com/remarkjs/remark/blob/main/packages/remark-stringify/lib/index.js\n extensions: processor.data('toMarkdownExtensions') || [],\n });\n\n file.data['mdx-export'].push({\n name: '_markdown',\n value: markdown,\n });\n }\n\n if (includeMDAST) {\n const options = includeMDAST === true ? {} : includeMDAST;\n const mdast = JSON.stringify(\n options.removePosition ? removePosition(structuredClone(tree)) : tree,\n );\n\n file.data['mdx-export'].push({\n name: '_mdast',\n value: mdast,\n });\n }\n\n for (const { name, value } of file.data['mdx-export']) {\n tree.children.unshift(getMdastExport(name, value));\n }\n\n // reset the data to reduce memory usage\n file.data['mdx-export'] = [];\n\n for (const name of valueToExport) {\n if (!(name in file.data)) continue;\n\n tree.children.unshift(getMdastExport(name, file.data[name]));\n }\n };\n}\n\n/**\n * MDX.js first converts javascript (with esm support) into mdast nodes with remark-mdx, then handle the other remark plugins\n *\n * Therefore, if we want to inject an export, we must convert the object into AST, then add the mdast node\n */\nfunction getMdastExport(name: string, value: unknown): RootContent {\n return {\n type: 'mdxjsEsm',\n value: '',\n data: {\n estree: {\n type: 'Program',\n sourceType: 'module',\n body: [\n {\n type: 'ExportNamedDeclaration',\n attributes: [],\n specifiers: [],\n source: null,\n declaration: {\n type: 'VariableDeclaration',\n kind: 'let',\n declarations: [\n {\n type: 'VariableDeclarator',\n id: {\n type: 'Identifier',\n name,\n },\n init: valueToEstree(value),\n },\n ],\n },\n },\n ],\n },\n },\n };\n}\n","import { createProcessor } from '@mdx-js/mdx';\nimport { VFile } from 'vfile';\nimport { remarkInclude } from '@/loaders/mdx/remark-include';\nimport type { StructuredData } from 'fumadocs-core/mdx-plugins';\nimport type { TOCItemType } from 'fumadocs-core/toc';\nimport type { FC } from 'react';\nimport type { MDXProps } from 'mdx/types';\nimport { type PostprocessOptions, remarkPostprocess } from '@/loaders/mdx/remark-postprocess';\nimport type { Core } from '@/core';\nimport type { DocCollectionItem } from '@/config/build';\n\ntype Processor = ReturnType<typeof createProcessor>;\n\ninterface BuildMDXOptions {\n /**\n * Specify a file path for source\n */\n filePath: string;\n source: string;\n frontmatter?: Record<string, unknown>;\n\n environment: 'bundler' | 'runtime';\n isDevelopment: boolean;\n _compiler?: CompilerOptions;\n}\n\nexport interface CompilerOptions {\n addDependency: (file: string) => void;\n}\n\nexport interface CompiledMDXProperties<Frontmatter = Record<string, unknown>> {\n frontmatter: Frontmatter;\n structuredData: StructuredData;\n toc: TOCItemType[];\n default: FC<MDXProps>;\n\n /**\n * Enable from `postprocess` option.\n */\n _markdown?: string;\n /**\n * Enable from `postprocess` option.\n */\n _mdast?: string;\n}\n\nexport interface FumadocsDataMap {\n /**\n * [Fumadocs MDX] raw frontmatter, you can modify it\n */\n frontmatter?: Record<string, unknown>;\n\n /**\n * [Fumadocs MDX] additional ESM exports to write\n */\n 'mdx-export'?: { name: string; value: unknown }[];\n\n /**\n * [Fumadocs MDX] The compiler object from loader\n */\n _compiler?: CompilerOptions;\n\n /**\n * [Fumadocs MDX] get internal processor, do not use this on user land.\n */\n _getProcessor?: (format: 'md' | 'mdx') => Processor;\n}\n\ndeclare module 'vfile' {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- extend data map\n interface DataMap extends FumadocsDataMap {}\n}\n\nexport async function buildMDX(\n core: Core,\n collection: DocCollectionItem | undefined,\n { filePath, frontmatter, source, _compiler, environment, isDevelopment }: BuildMDXOptions,\n): Promise<VFile> {\n const mdxOptions = await core.getConfig().getMDXOptions(collection, environment);\n\n function getProcessor(format: 'md' | 'mdx') {\n const cache = core.cache as Map<string, Processor>;\n const key = `build-mdx:${collection?.name ?? 'global'}:${format}`;\n let processor = cache.get(key);\n\n if (!processor) {\n const postprocessOptions: PostprocessOptions = {\n _format: format,\n ...collection?.postprocess,\n };\n\n processor = createProcessor({\n outputFormat: 'program',\n development: isDevelopment,\n ...mdxOptions,\n remarkPlugins: [\n remarkInclude,\n ...(mdxOptions.remarkPlugins ?? []),\n [remarkPostprocess, postprocessOptions],\n ],\n format,\n });\n\n cache.set(key, processor);\n }\n\n return processor;\n }\n\n let vfile = new VFile({\n value: source,\n path: filePath,\n cwd: collection?.cwd,\n data: { frontmatter, _compiler, _getProcessor: getProcessor },\n });\n\n if (collection) {\n vfile = await core.transformVFile({ collection, filePath, source }, vfile);\n }\n\n return getProcessor(filePath.endsWith('.mdx') ? 'mdx' : 'md').process(vfile);\n}\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import "./fuma-matter-CHgJa_-B.js";
2
- import "./remark-include-D3G3mAnv.js";
3
- import { t as buildMDX } from "./build-mdx-BVeBo4jT.js";
4
-
5
- export { buildMDX };
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-DG43f_AU.d.ts","names":[],"sources":["../src/config/preset.ts","../src/loaders/mdx/remark-postprocess.ts","../src/config/define.ts","../src/config/build.ts","../src/loaders/mdx/remark-include.ts","../src/runtime/server.ts","../src/plugins/index-file.ts","../src/core.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;KAKK,cAAA,GAAiB,mBAAmB,gBAAgB;KAE7C,iBAAA,GAAoB,KAC9B,YAAY;kBAGI;kBACA;;;;;EAPb,sBAAc,CAAA,EAcQ,OAAA,CAAQ,gBAdhB,GAAA,KAAA;EAAG,oBAAA,CAAA,EAeG,OAAA,CAAQ,oBAfX;EAAmB,kBAAA,CAAA,EAgBlB,OAAA,CAAQ,kBAhBU,GAAA,KAAA;EAAgB,oBAAA,CAAA,EAiBhC,OAAA,CAAQ,oBAjBwB,GAAA,KAAA;EAAS,gBAAA,CAAA,EAkB7C,OAAA,CAAQ,gBAlBqC,GAAA,KAAA;EAEtD,iBAAA,CAAA,EAiBU,OAAA,CAAQ,iBAjBD,GAAA,KAAA;CACf;AAAZ,KAgCU,gBAAA,GAhCV,CAAA;EAD8B,MAAA,CAAA,EAAA,UAAA;CAId,GA8Ba,iBA9Bb,CAAA,GAAA,CAAA;EACA,MAAA,EAAA,SAAA;CAOS,GAyBnB,gBAzB2B,CAAA;;;;AAId,iBA0BL,cAAA,CA1Ba,OAAA,CAAA,EA2BlB,gBA3BkB,CAAA,EAAA,CAAA,WAAA,EA4BZ,gBA5BY,EAAA,GA4BS,OA5BT,CA4BiB,gBA5BjB,CAAA;;;UCdZ,kBAAA;;;UAIA,kBAAA;;;;;;;ADV+B;;EAEP,wBAAA,CAAA,EAAA,OAAA;EAAgB;;AAEzD;EACc,qBAAA,CAAA,EAAA,OAAA;EAAZ;;;EAIgB,YAAA,CAAA,EAAA,OAAA,GAAA;IAOS,cAAQ,CAAA,EAAA,OAAA;EACV,CAAA;;;;KEZb,kCAAgC,6BACxC,kBACO,YAAY;KAEX,aAAA,GAAgB,iBAAiB,gBAAgB;UAE5C,cAAA;;;AFX+B;EAE1B,GAAA,EAAA,MAAA;EAAmB;;;AAEzC;;EACE,KAAA,CAAA,EAAA,MAAA,EAAA;;AAGgB,UEiBD,cFjBC,CAAA,iBEkBD,gBFlBC,GEkBkB,gBFlBlB,CAAA,SEmBR,cFnBQ,CAAA;EACA,IAAA,EAAA,MAAA;EAOS,MAAQ,CAAA,EEcxB,gBFdwB,CEcP,QFdO,EAAA;IACV,IAAQ,EAAA,MAAA;IACV,MAAQ,EAAA,MAAA;EACN,CAAA,CAAA;;AAEH,UEYL,aFZa,CAAA,iBEab,gBFba,GEaM,gBFbN,CAAA,SEcpB,cFdoB,CAAA;EAAiB,IAAA,EAAA,KAAA;EAgBnC,WAAA,CAAA,EECI,OFDY,CECJ,kBFAO,CAAA;EAQf,UAAA,CAAA,EEPD,gBFOe,GAAA,CAAA,CAAA,WAAA,EEPmB,gBFOnB,EAAA,GEPwC,OFOxC,CEPgD,gBFOhD,CAAA,CAAA;EACnB;;;EAC2B,KAAA,CAAA,EAAA,OAAA;EAAO;;;;EC1C5B,MAAA,CAAA,EC6CN,gBD7CwB,CC6CP,QD7CO,EAAA;IAIlB,IAAA,EAAA,MAAA;;;;ACLL,UAiDK,cAjDW,CAAA,kBAkDR,gBAlDQ,GAkDW,gBAlDX,EAAA,mBAmDP,gBAnDO,GAmDY,gBAnDZ,CAAA,CAAA;EAAgB,IAAA,EAAA,MAAA;EACxC,GAAA,EAAA,MAAA;EACO,IAAA,EAsDH,aAtDG,CAsDW,SAtDX,CAAA;EAAY,IAAA,EAuDf,cAvDe,CAuDA,UAvDA,CAAA;;AAEX,UAwDK,YAAA,CAxDQ;EAAG,OAAA,CAAA,EAyDhB,YAzDgB,EAAA;EAAiB;;;EAE5B,UAAA,CAAA,EA4DF,gBA5DgB,GAAA,CAAA,GAAA,GA4DU,OA5DV,CA4DkB,gBA5DlB,CAAA,CAAA;EAcd,UAAA,CAAA,EAgDF,MAhDgB,CAAA,MAAA,EAAA;IACd,GAAA,EAAA,MAAA;IAAmB,MAAA,EAmDtB,MAnDsB,CAAA,MAAA,EAAA,OAAA,CAAA;EAIR,CAAA,CAAA;EAAjB;;;AAGX;;EACoC,sBAAA,CAAA,EAAA,MAAA;;AAIpB,iBAmDA,iBAnDA,CAAA,iBAmDiC,gBAnDjC,GAmDoD,gBAnDpD,CAAA,CAAA,OAAA,EAoDL,aApDK,CAoDS,QApDT,CAAA,CAAA,EAqDb,aArDa,CAqDC,QArDD,CAAA;AACD,iBAqDC,iBArDD,CAAA,iBAqDkC,gBArDlC,GAqDqD,gBArDrD,CAAA,CAAA,OAAA,EAsDJ,cAtDI,CAsDW,QAtDX,CAAA,CAAA,EAuDZ,cAvDY,CAuDG,QAvDH,CAAA;AAAkC,iBA+DjC,UA/DiC,CAAA,kBAgE7B,gBAhE6B,GAAA,OAgEH,UAhEG,EAAA,mBAiE5B,gBAjE4B,GAAA,OAiEF,UAjEE,CAAA,CAAA,OAAA,EAAA;EAA6B;;;;;EAJtD,GAAA,CAAA,EAAA,MAAA;EAmBP,IAAA,CAAA,EA2DR,IA3DQ,CA2DH,aA3DiB,CA2DH,SA3DG,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA;EACX,IAAA,CAAA,EA2DX,IA3DW,CA2DN,cA3DM,CA2DS,UA3DT,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA;CAAmB,CAAA,EA4DnC,cA5DmC,CA4DpB,SA5DoB,EA4DT,UA5DS,CAAA;AAClB,iBAgFL,YAAA,CAhFK,MAAA,CAAA,EAgFgB,YAhFhB,CAAA,EAgFoC,YAhFpC;;;KC/CT,gBAAA;UAEK,YAAA;eACF,YAAY;UACjB;6BAEO,iCACC,mBACb,mBAAmB,QAAQ;cAClB;;YAIA;;;AHpBT,KGyBO,cAAA,GAAiB,kBHzBV,GGyB+B,iBHzB/B,GGyBmD,kBHzBnD;UG2BT,uBAAA,CH3BY;EAAmB,IAAA,EAAA,MAAA;EAAgB,GAAA,EAAA,MAAA;EAAS;AAElE;;EACE,GAAA,EAAA,MAAA;EAD8B,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA;EAId,eAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA;EACA,QAAA,EAAA,MAAA,EAAA;;AAQO,KGwBb,kBAAA,GAAqB,uBHxBA,GGwB0B,IHxB1B,CGwB+B,cHxB/B,EAAA,OAAA,GAAA,KAAA,CAAA;AACV,KGwBX,iBAAA,GAAoB,uBHxBD,GGwB2B,IHxB3B,CGwBgC,aHxBhC,EAAA,OAAA,GAAA,KAAA,CAAA;AACN,UGyBR,kBAAA,SACP,IH1BuB,CG0BlB,cH1BkB,EAAA,KAAA,GAAA,MAAA,GAAA,MAAA,CAAA,EG0BwB,IH1BxB,CG0B6B,uBH1B7B,EAAA,UAAA,CAAA,CAAA;EACZ,IAAA,EG0Bb,kBH1BqB;EACP,IAAA,EG0Bd,iBH1BsB;;;;iBIyKd,aAAA,OAAoB,YAAY,YAAY,MAAM;;;KC1LtD,4BAA4B,OAAO;KAEnC,mFAGC,qBAAqB,sBAC9B,UAAU,aAAa,cAAc,cAAc;KAE3C,wFAGC,qBAAqB;cAEpB,QAAQ,UAAU,cAAc;IAC1C,aACF;UAEe,sEAEK,WAAW,yBAClB,WAAW,qBACb,qBAAqB;QAE1B,mBAAmB,MAAM,aAAa;QACtC,oBAAoB;EL1BvB,gBAAA,EAAc,GAAA,GK2BO,ML3BP,CAAA;IAAG,QAAA,EK4BR,kBL5BQ,CK4BW,IL5BX,EK4BiB,WL5BjB,EK4B8B,EL5B9B,CAAA;IAAmB,QAAA,EK6B3B,mBL7B2B,CK6BP,ML7BO,CAAA;EAAgB,CAAA,CAAA;;AAE7C,UK+BK,wBL/BY,CAAA,aAAA,MAAA,GAAA,MAAA,EAAA,oBKiCP,QLjCO,GKiCI,QLjCJ,EAAA,eKkCd,QLlCc,GKkCH,QLlCG,EAAA,WKmChB,kBLnCgB,GKmCK,kBLnCL,CAAA,CAAA;EACf,IAAA,EKoCN,uBLpCM,CKoCkB,ILpClB,EKoCwB,WLpCxB,EKoCqC,ELpCrC,CAAA,EAAA;EAAZ,IAAA,EKqCM,mBLrCN,CKqC0B,MLrC1B,CAAA,EAAA;EAD8B,gBAAA,EAAA,GAAA,GKuCN,MLvCM,CAAA;IAId,QAAA,EKoCJ,uBLpCI,CKoCoB,ILpCpB,EKoC0B,WLpC1B,EKoCuC,ELpCvC,CAAA;IACA,QAAA,EKoCJ,mBLpCI,CKoCgB,MLpChB,CAAA;EAOS,CAAA,CAAA;;KKiCtB,oBL/B0B,CAAA,CAAA,CAAA,GK+BA,ML/BA,CAAA,MAAA,EK+Be,CL/Bf,GAAA,CAAA,GAAA,GK+B0B,OL/B1B,CK+BkC,CL/BlC,CAAA,CAAA,CAAA;AACN,KKgCb,YLhCqB,CAAA,MAAA,EAAA,WKgCW,kBLhCX,GKgCgC,kBLhChC,CAAA,GKgCsD,ULhCtD,CAAA,OKiCxB,MLjCwB,CKiCjB,MLjCiB,EKiCT,ELjCS,CAAA,CAAA;AACZ,UKmCJ,aAAA,CLnCY;EACP,GAAA,CAAA,EAAQ;IAAiB,YAAA,CAAA,EAAA,MAAA,EAAA;EAgBnC,CAAA;AASZ;AACW,iBKcK,MLdL,CAAA,MAAA,EAAA,WKc+B,kBLd/B,CAAA,CAAA,OAAA,CAAA,EKc4D,aLd5D,CAAA,EAAA;EACM,GAAA,CAAA,aAAA,MK4CgB,ML5ChB,GAAA,MAAA,CAAA,CAAA,KAAA,EK6CJ,IL7CI,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EK+CL,oBL/CK,CAAA,OAAA,CAAA,CAAA,EK+CwB,OL/CxB,CK+CwB,ML/CxB,CK+CwB,IL/CxB,CAAA,SK+CwB,aL/CxB,CAAA,KAAA,gBK8DmB,gBL9DnB,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GK8DmB,cL9DnB,CAAA,KAAA,gBK8DmB,gBL9DnB,CAAA,OAAA,EAAA,OAAA,CAAA,EK8DmB,gBL9DnB,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GK8DmB,kBL9DnB,CK8DmB,IL9DnB,EK8DmB,gBAAA,CAAA,WL9DnB,CK8DmB,ML9DnB,CAAA,EK8DmB,EL9DnB,CAAA,EAAA,GAAA,KAAA,CAAA;EAA6B,OAAA,CAAA,aAAA,MKmET,MLnES,GAAA,MAAA,CAAA,CAAA,KAAA,EKoEjC,ILpEiC,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EKsElC,oBLtEkC,CAAA,OAAA,CAAA,EAAA,IAAA,EKuElC,MLvEkC,CAAA,MAAA,EAAA,GAAA,GKuEb,OLvEa,CAAA,OAAA,CAAA,CAAA,CAAA,EKuEI,OLvEJ,CKuEI,MLvEJ,CKuEI,ILvEJ,CAAA,SKuEI,aLvEJ,CAAA,KAAA,gBKyFV,gBLzFU,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GKyFV,cLzFU,CAAA,KAAA,gBKyFV,gBLzFU,CAAA,OAAA,EAAA,OAAA,CAAA,EKyFV,gBLzFU,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GKyFV,uBLzFU,CKyFV,ILzFU,EKyFV,gBAAA,CAAA,WLzFU,CKyFV,MLzFU,CAAA,EKyFV,ELzFU,CAAA,EAAA,GAAA,KAAA,CAAA;EAAR,IAAA,CAAA,aAAA,MK8FJ,ML9FI,GAAA,MAAA,CAAA,CAAA,KAAA,EK+FzB,IL/FyB,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EKiG1B,oBLjG0B,CAAA,OAAA,CAAA,CAAA,EKiGG,OLjGH,CKiGG,MLjGH,CKiGG,ILjGH,CAAA,SKiGG,cLjGH,CAAA,KAAA,gBK+GD,gBL/GC,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GK+GD,cL/GC,CK+GD,gBL/GC,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,KAAA,gBK+GD,gBL/GC,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GK+GD,mBL/GC,CK+GD,gBAAA,CAAA,WL/GC,CK+GD,ML/GC,CAAA,CAAA,EAAA,GAAA,KAAA,CAAA;EAAO,IAAA,CAAA,aAAA,MKqHX,MLrHW,GAAA,MAAA,CAAA,CAAA,IAAA,EKsHjC,ILtHiC,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EKwH7B,oBLxH6B,CAAA,OAAA,CAAA,EAAA,OAAA,EKyH9B,oBLzH8B,CAAA,OAAA,CAAA,CAAA,EKyHD,OLzHC,CKyHD,MLzHC,CKyHD,ILzHC,CAAA,SKyHD,cLzHC,CAAA,KAAA,cKmIuB,gBLnIvB,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,KAAA,cKmImC,gBLnInC,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GKmImC,gBAAA,CAAA,WLnInC,CKmImC,ILnInC,CAAA,SKmImC,QLnInC,GKmImC,gBAAA,CAAA,WLnInC,CKmImC,ILnInC,CAAA,SKmImC,QLnInC,GKmImC,mBLnInC,CKmImC,ILnInC,EKmImC,gBAAA,CAAA,WLnInC,CKmImC,ILnInC,CAAA,EKmImC,gBAAA,CAAA,WLnInC,CKmImC,ILnInC,CAAA,EKmImC,ELnInC,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA,CAAA;8BKgJP,uBAC1B,8BAEI,4CACG,4CACA,qBAAqB,oBAAiB,QAAA,OAAA,cAAA,kCAUW,uDAAY,sCAAA,gBAAA,CAAA,YAAA,cAAA,WAAA,gBAAA,CAAA,YAAA,cAAA,WAAA,yBAAA,MAAA,gBAAA,CAAA,YAAA,OAAA,gBAAA,CAAA,YAAA,OAAA;;iBAgBhE,gCACD,aAAa,yBACb,cAAc,iBAEpB,iBACA,WACN;EJ/Nc,QAAA,EIgOL,MJhOK;EAIA,QAAA,EI6NL,MJ7NK;;;;UKDA,sBAAA;;;;;;;;;;ENPZ,OAAA,CAAA,EAAA,OAAc;EAAG;;;;EAEV,OAAA,CAAA,EAAA,OAAA;;AACV,UMyBe,eAAA,CNzBf;EAD8B,CAAA,YAAA,EAAA,EAAA;IAId,kBAAA,CAAA,EAAA,CAAA,IAAA,EMwBc,aNxBd,EAAA,GAAA,MAAA,GAAA,IAAA;IACA,aAAA,CAAA,EAAA,CAAA,IAAA,EMwBS,aNxBT,EAAA,OAAA,EMwBiC,aNxBjC,EAAA,GAAA,IAAA;EAOS,CAAA;;AAEI,iBM6BP,SAAA,CN7BO,OAAA,CAAA,EM6BY,sBN7BZ,CAAA,EM6B0C,MN7B1C;;;KON1B,eAAe,IAAI,QAAQ;UAEf,SAAA;;;;;;;APZZ,UOoBY,aAAA,CPpBE;EAAG,IAAA,EOqBd,IPrBc;;AAAmC,KOwB7C,kBPxB6C,CAAA,UAAA,CAAA,GOwBZ,aPxBY,GOwBI,gBPxBJ,COwBqB,UPxBrB,CAAA;AAAS,UO0BjD,gBP1BiD,CAAA,UAAA,CAAA,CAAA;EAEtD,UAAA,EOyBE,UPzBe;EACf,QAAA,EAAA,MAAA;EAAZ,MAAA,EAAA,MAAA;;AAGgB,UO0BD,MAAA,SAAe,eP1Bd,CAAA;EACA,IAAA,CAAA,EAAA,MAAA;EAOS;;;EAGF,MAAQ,CAAA,EAAA,CAAA,IAAA,EOqBf,aPrBe,EAAA,MAAA,EOqBQ,YPrBR,EAAA,GOqByB,SPrBzB,CAAA,IAAA,GOqB0C,YPrB1C,CAAA;EACZ;;;EAiBT,IAAA,CAAA,EAAA,CAAA,IAAA,EOQI,aPRY,EAAA,GOQM,SPPH,COOa,SPJpC,EAAA,CAAA;EAKQ;;;EAE8B,eAAA,CAAA,EAAA,CAAA,IAAA,EOEnB,aPFmB,EAAA,MAAA,EOEI,aPFJ,EAAA,GOEsB,SPFtB,CAAA,IAAA,CAAA;EAAR,IAAA,CAAA,EAAA;IAAO;;;uBOSjC,mBAAmB,uCAEtB;ENrDQ,CAAA;EAIA,GAAA,CAAA,EAAA;;;;ICLL,WAAA,CAAA,EAAA,CAAgB,IAAA,EK8DhB,kBL9DgB,CK8DG,iBL9DH,CAAA,EAAA,IAAA,EK+DhB,ML/DgB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GKgEnB,SLhEmB,CKgET,MLhES,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,IAAA,CAAA;IAAgB;;;IAErB,KAAA,CAAA,EAAA,CAAA,IAAA,EKmEJ,kBLnEI,CKmEe,iBLnEf,CAAA,EAAA,IAAA,EKmEyC,KLnEzC,EAAA,GKmEmD,SLnEnD,CKmE6D,KLnE7D,GAAA,IAAA,CAAA;EAAM,CAAA;AAE7B;AAA4B,KKqEhB,YAAA,GAAe,SLrEC,CKqES,MLrET,GKqEkB,YLrElB,EAAA,GAAA,KAAA,GAAA,SAAA,CAAA;AAAiB,UKuE5B,aAAA,CLvE4B;EAAgB;;AAE7D;AAcA;;EACoC,OAAA,CAAA,EK4DxB,SL5DwB;;AAIzB,UK2DM,WAAA,CL3DN;EAHD,WAAA,EAAA,MAAA;EAAc,UAAA,EAAA,MAAA;EAMP,MAAA,EAAA,MAAA;EACA,OAAA,CAAA,EK2DL,YL3DK,EAAA;EAAmB;;;EAKrB,SAAA,CAAA,EAAA;IAAkC,MAAA,EK4DrC,IL5DqC;IAA6B,IAAA,EAAA,MAAA;IAAR,GAAA,EAAA,MAAA;EAY1C,CAAA;;AAhBlB,UKsEO,WAAA,CLtEP;EAAc;AAmBxB;;EACuC,YAAA,CAAA,EAAA,CAAA,MAAA,EKsDb,MLtDa,EAAA,GAAA,OAAA;EAClB;;;EAKb,eAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,GAAA,OAAA;EACe;;;EAGN,KAAA,CAAA,EAAA,OAAY;;AAMd,UKmDE,UAAA,CLnDF;EAAkC,OAAA,EKoDtC,SLpDsC,EAAA;EAAR,UAAA,EKqD3B,MLrD2B,CAAA,MAAA,EKqDZ,SLrDY,EAAA,CAAA;;AAE1B,cKsDF,SLtDE,EAAA;EAAM,UAAA,EAAA,MAAA;EAgBL,MAAA,EAAA,MAAA;CAAiC;AAAmB,iBKuDpD,UAAA,CLvDoD,OAAA,EKuDhC,WLvDgC,CAAA,EAAA;EAC3C;;;EACtB,KAAA,KAAA,CAAA,MAAA,EAAA,OAAA,CAAA;EAAa,IAAA,CAAA;IAAA,MAAA;EACiC,CADjC,EAAA;IACA,MAAA,EKgFgC,SLhFf,CKgFyB,YLhFzB,CAAA;EAAgB,CAAA,CAAA,EKgFwB,OLhFxB,CAAA,IAAA,CAAA;EAAmB,aAAA,EAAA,KAAA,CAAA,MAAA,EAAA,UAAA,GAAA,CAAA;EAC1C,UAAA,EAAA,aAAA;EAAf,SAAA,EAAA,EKmHM,YLnHN;EACO;;;EAQF,qBAAU,EAAA,EAAA,MAAA;EACN,UAAA,EAAA,QAAA,EAAA;EAA0B,cAAA,EAAA,EKqHxB,cLrHwB,EAAA;EACzB,aAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EKuHY,cLvHZ,GAAA,SAAA;EAA0B,gBAAA,EAAA,EK0HvB,aL1HuB;EASnB,UAAA,CAAA,MAAA,EKsHC,aLtHD,CAAA,EKsHiB,OLtHjB,CAAA,IAAA,CAAA;EAAd,IAAA,CAAA,WAAA,CAAA,EK+Hc,WL/Hd,CAAA,EK+HiC,OL/HjC,CK+HyC,UL/HzC,CAAA;EAAL,aAAA,CAAA,OAAA,EKgLM,gBLhLN,CKgLuB,kBLhLvB,CAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EKkLF,OLlLE,CAAA,OAAA,CAAA;EACoB,oBAAA,CAAA,OAAA,EK+Ld,gBL/Lc,CK+LG,iBL/LH,CAAA,EAAA,IAAA,EKgMjB,MLhMiB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EKiMtB,OLjMsB,CKiMd,MLjMc,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;EAAf,cAAA,CAAA,OAAA,EK+MC,gBL/MD,CK+MkB,iBL/MlB,CAAA,EAAA,IAAA,EKgNF,KLhNE,CAAA,EKiNP,OLjNO,CKiNC,KLjND,CAAA;CAAL;AACU,KKyQP,IAAA,GAAO,ULzQA,CAAA,OKyQkB,ULzQlB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mdx-DMZ9tsAa.js","names":["after: (() => Promise<void>) | undefined","docCollection: DocCollectionItem | undefined"],"sources":["../src/loaders/mdx/index.ts"],"sourcesContent":["import { fumaMatter } from '@/utils/fuma-matter';\nimport type { SourceMap } from 'rollup';\nimport type { Loader } from '@/loaders/adapter';\nimport { z } from 'zod';\nimport type { DocCollectionItem } from '@/config/build';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { createHash } from 'node:crypto';\nimport type { ConfigLoader } from '@/loaders/config';\nimport { mdxLoaderGlob } from '..';\n\nconst querySchema = z\n .object({\n only: z.literal(['frontmatter', 'all']).default('all'),\n collection: z.string().optional(),\n workspace: z.string().optional(),\n })\n .loose();\n\nconst cacheEntry = z.object({\n code: z.string(),\n map: z.any().optional(),\n hash: z.string().optional(),\n});\n\ntype CacheEntry = z.infer<typeof cacheEntry>;\n\nexport function createMdxLoader({ getCore }: ConfigLoader): Loader {\n return {\n test: mdxLoaderGlob,\n async load({ getSource, development: isDevelopment, query, compiler, filePath }) {\n let core = await getCore();\n const value = await getSource();\n const matter = fumaMatter(value);\n const { collection: collectionName, workspace, only } = querySchema.parse(query);\n if (workspace) {\n core = core.getWorkspaces().get(workspace) ?? core;\n }\n\n let after: (() => Promise<void>) | undefined;\n\n const { experimentalBuildCache = false } = core.getConfig().global;\n if (!isDevelopment && experimentalBuildCache) {\n const cacheDir = experimentalBuildCache;\n const cacheKey = `${collectionName ?? 'global'}_${generateCacheHash(filePath)}`;\n\n const cached = await fs\n .readFile(path.join(cacheDir, cacheKey))\n .then((content) => cacheEntry.parse(JSON.parse(content.toString())))\n .catch(() => null);\n\n if (cached && cached.hash === generateCacheHash(value)) return cached;\n after = async () => {\n await fs.mkdir(cacheDir, { recursive: true });\n await fs.writeFile(\n path.join(cacheDir, cacheKey),\n JSON.stringify({\n ...out,\n hash: generateCacheHash(value),\n } satisfies CacheEntry),\n );\n };\n }\n\n const collection = collectionName ? core.getCollection(collectionName) : undefined;\n\n let docCollection: DocCollectionItem | undefined;\n switch (collection?.type) {\n case 'doc':\n docCollection = collection;\n break;\n case 'docs':\n docCollection = collection.docs;\n break;\n }\n\n if (docCollection) {\n matter.data = await core.transformFrontmatter(\n { collection: docCollection, filePath, source: value },\n matter.data as Record<string, unknown>,\n );\n }\n\n if (only === 'frontmatter') {\n return {\n code: `export const frontmatter = ${JSON.stringify(matter.data)}`,\n map: null,\n };\n }\n\n const { buildMDX } = await import('@/loaders/mdx/build-mdx');\n const compiled = await buildMDX(core, docCollection, {\n isDevelopment,\n // ensure the line number is correct in errors\n source: '\\n'.repeat(countLines(matter.matter)) + matter.content,\n filePath,\n frontmatter: matter.data as Record<string, unknown>,\n _compiler: compiler,\n environment: 'bundler',\n });\n\n const out = {\n code: String(compiled.value),\n map: compiled.map as SourceMap,\n };\n\n await after?.();\n return out;\n },\n };\n}\n\nfunction generateCacheHash(input: string): string {\n return createHash('md5').update(input).digest('hex');\n}\n\nfunction countLines(s: string) {\n let num = 0;\n\n for (const c of s) {\n if (c === '\\n') num++;\n }\n\n return num;\n}\n"],"mappings":";;;;;;;;AAWA,MAAM,cAAc,EACjB,OAAO;CACN,MAAM,EAAE,QAAQ,CAAC,eAAe,MAAM,CAAC,CAAC,QAAQ,MAAM;CACtD,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC,CACD,OAAO;AAEV,MAAM,aAAa,EAAE,OAAO;CAC1B,MAAM,EAAE,QAAQ;CAChB,KAAK,EAAE,KAAK,CAAC,UAAU;CACvB,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC5B,CAAC;AAIF,SAAgB,gBAAgB,EAAE,WAAiC;AACjE,QAAO;EACL,MAAM;EACN,MAAM,KAAK,EAAE,WAAW,aAAa,eAAe,OAAO,UAAU,YAAY;GAC/E,IAAI,OAAO,MAAM,SAAS;GAC1B,MAAM,QAAQ,MAAM,WAAW;GAC/B,MAAM,SAAS,WAAW,MAAM;GAChC,MAAM,EAAE,YAAY,gBAAgB,WAAW,SAAS,YAAY,MAAM,MAAM;AAChF,OAAI,UACF,QAAO,KAAK,eAAe,CAAC,IAAI,UAAU,IAAI;GAGhD,IAAIA;GAEJ,MAAM,EAAE,yBAAyB,UAAU,KAAK,WAAW,CAAC;AAC5D,OAAI,CAAC,iBAAiB,wBAAwB;IAC5C,MAAM,WAAW;IACjB,MAAM,WAAW,GAAG,kBAAkB,SAAS,GAAG,kBAAkB,SAAS;IAE7E,MAAM,SAAS,MAAM,GAClB,SAAS,KAAK,KAAK,UAAU,SAAS,CAAC,CACvC,MAAM,YAAY,WAAW,MAAM,KAAK,MAAM,QAAQ,UAAU,CAAC,CAAC,CAAC,CACnE,YAAY,KAAK;AAEpB,QAAI,UAAU,OAAO,SAAS,kBAAkB,MAAM,CAAE,QAAO;AAC/D,YAAQ,YAAY;AAClB,WAAM,GAAG,MAAM,UAAU,EAAE,WAAW,MAAM,CAAC;AAC7C,WAAM,GAAG,UACP,KAAK,KAAK,UAAU,SAAS,EAC7B,KAAK,UAAU;MACb,GAAG;MACH,MAAM,kBAAkB,MAAM;MAC/B,CAAsB,CACxB;;;GAIL,MAAM,aAAa,iBAAiB,KAAK,cAAc,eAAe,GAAG;GAEzE,IAAIC;AACJ,WAAQ,YAAY,MAApB;IACE,KAAK;AACH,qBAAgB;AAChB;IACF,KAAK;AACH,qBAAgB,WAAW;AAC3B;;AAGJ,OAAI,cACF,QAAO,OAAO,MAAM,KAAK,qBACvB;IAAE,YAAY;IAAe;IAAU,QAAQ;IAAO,EACtD,OAAO,KACR;AAGH,OAAI,SAAS,cACX,QAAO;IACL,MAAM,8BAA8B,KAAK,UAAU,OAAO,KAAK;IAC/D,KAAK;IACN;GAGH,MAAM,EAAE,aAAa,MAAM,OAAO;GAClC,MAAM,WAAW,MAAM,SAAS,MAAM,eAAe;IACnD;IAEA,QAAQ,KAAK,OAAO,WAAW,OAAO,OAAO,CAAC,GAAG,OAAO;IACxD;IACA,aAAa,OAAO;IACpB,WAAW;IACX,aAAa;IACd,CAAC;GAEF,MAAM,MAAM;IACV,MAAM,OAAO,SAAS,MAAM;IAC5B,KAAK,SAAS;IACf;AAED,SAAM,SAAS;AACf,UAAO;;EAEV;;AAGH,SAAS,kBAAkB,OAAuB;AAChD,QAAO,WAAW,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,MAAM;;AAGtD,SAAS,WAAW,GAAW;CAC7B,IAAI,MAAM;AAEV,MAAK,MAAM,KAAK,EACd,KAAI,MAAM,KAAM;AAGlB,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta-DyieTM4Z.js","names":["metaCollection: MetaCollectionItem | undefined"],"sources":["../src/loaders/meta.ts"],"sourcesContent":["import type { Loader, LoaderInput } from '@/loaders/adapter';\nimport type { ConfigLoader } from '@/loaders/config';\nimport { load } from 'js-yaml';\nimport { z } from 'zod';\nimport { metaLoaderGlob } from '.';\nimport type { MetaCollectionItem } from '@/config/build';\n\nconst querySchema = z\n .object({\n collection: z.string().optional(),\n workspace: z.string().optional(),\n })\n .loose();\n\n/**\n * load meta files, fallback to bundler's built-in plugins when ?collection is unspecified.\n */\nexport function createMetaLoader(\n { getCore }: ConfigLoader,\n resolve: {\n json?: 'json' | 'js';\n yaml?: 'js';\n } = {},\n): Loader {\n const { json: resolveJson = 'js' } = resolve;\n\n function parse(filePath: string, source: string) {\n try {\n if (filePath.endsWith('.json')) return JSON.parse(source);\n if (filePath.endsWith('.yaml')) return load(source);\n } catch (e) {\n throw new Error(`invalid data in ${filePath}`, { cause: e });\n }\n\n throw new Error('Unknown file type ' + filePath);\n }\n\n function onMeta(source: string, { filePath, query }: LoaderInput) {\n const parsed = querySchema.safeParse(query);\n if (!parsed.success || !parsed.data.collection) return null;\n const { collection: collectionName, workspace } = parsed.data;\n\n return async (): Promise<unknown> => {\n let core = await getCore();\n if (workspace) {\n core = core.getWorkspaces().get(workspace) ?? core;\n }\n\n const collection = core.getCollection(collectionName);\n let metaCollection: MetaCollectionItem | undefined;\n\n switch (collection?.type) {\n case 'meta':\n metaCollection = collection;\n break;\n case 'docs':\n metaCollection = collection.meta;\n break;\n }\n\n const data = parse(filePath, source);\n\n if (!metaCollection) return data;\n return core.transformMeta(\n {\n collection: metaCollection,\n filePath,\n source,\n },\n data,\n );\n };\n }\n\n return {\n test: metaLoaderGlob,\n async load(input) {\n const result = onMeta(await input.getSource(), input);\n if (result === null) return null;\n const data = await result();\n\n if (input.filePath.endsWith('.json')) {\n return {\n moduleType: resolveJson,\n code:\n resolveJson === 'json'\n ? JSON.stringify(data)\n : `export default ${JSON.stringify(data)}`,\n };\n } else {\n return {\n moduleType: 'js',\n code: `export default ${JSON.stringify(data)}`,\n };\n }\n },\n bun: {\n load(source, input) {\n const result = onMeta(source, input);\n if (result === null)\n return {\n loader: 'object',\n exports: parse(input.filePath, source),\n };\n\n return result().then((data) => ({\n loader: 'object',\n exports: { default: data },\n }));\n },\n },\n };\n}\n"],"mappings":";;;;;AAOA,MAAM,cAAc,EACjB,OAAO;CACN,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC,CACD,OAAO;;;;AAKV,SAAgB,iBACd,EAAE,WACF,UAGI,EAAE,EACE;CACR,MAAM,EAAE,MAAM,cAAc,SAAS;CAErC,SAAS,MAAM,UAAkB,QAAgB;AAC/C,MAAI;AACF,OAAI,SAAS,SAAS,QAAQ,CAAE,QAAO,KAAK,MAAM,OAAO;AACzD,OAAI,SAAS,SAAS,QAAQ,CAAE,QAAO,KAAK,OAAO;WAC5C,GAAG;AACV,SAAM,IAAI,MAAM,mBAAmB,YAAY,EAAE,OAAO,GAAG,CAAC;;AAG9D,QAAM,IAAI,MAAM,uBAAuB,SAAS;;CAGlD,SAAS,OAAO,QAAgB,EAAE,UAAU,SAAsB;EAChE,MAAM,SAAS,YAAY,UAAU,MAAM;AAC3C,MAAI,CAAC,OAAO,WAAW,CAAC,OAAO,KAAK,WAAY,QAAO;EACvD,MAAM,EAAE,YAAY,gBAAgB,cAAc,OAAO;AAEzD,SAAO,YAA8B;GACnC,IAAI,OAAO,MAAM,SAAS;AAC1B,OAAI,UACF,QAAO,KAAK,eAAe,CAAC,IAAI,UAAU,IAAI;GAGhD,MAAM,aAAa,KAAK,cAAc,eAAe;GACrD,IAAIA;AAEJ,WAAQ,YAAY,MAApB;IACE,KAAK;AACH,sBAAiB;AACjB;IACF,KAAK;AACH,sBAAiB,WAAW;AAC5B;;GAGJ,MAAM,OAAO,MAAM,UAAU,OAAO;AAEpC,OAAI,CAAC,eAAgB,QAAO;AAC5B,UAAO,KAAK,cACV;IACE,YAAY;IACZ;IACA;IACD,EACD,KACD;;;AAIL,QAAO;EACL,MAAM;EACN,MAAM,KAAK,OAAO;GAChB,MAAM,SAAS,OAAO,MAAM,MAAM,WAAW,EAAE,MAAM;AACrD,OAAI,WAAW,KAAM,QAAO;GAC5B,MAAM,OAAO,MAAM,QAAQ;AAE3B,OAAI,MAAM,SAAS,SAAS,QAAQ,CAClC,QAAO;IACL,YAAY;IACZ,MACE,gBAAgB,SACZ,KAAK,UAAU,KAAK,GACpB,kBAAkB,KAAK,UAAU,KAAK;IAC7C;OAED,QAAO;IACL,YAAY;IACZ,MAAM,kBAAkB,KAAK,UAAU,KAAK;IAC7C;;EAGL,KAAK,EACH,KAAK,QAAQ,OAAO;GAClB,MAAM,SAAS,OAAO,QAAQ,MAAM;AACpC,OAAI,WAAW,KACb,QAAO;IACL,QAAQ;IACR,SAAS,MAAM,MAAM,UAAU,OAAO;IACvC;AAEH,UAAO,QAAQ,CAAC,MAAM,UAAU;IAC9B,QAAQ;IACR,SAAS,EAAE,SAAS,MAAM;IAC3B,EAAE;KAEN;EACF"}