fuma-content 1.0.3 → 1.1.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 (202) hide show
  1. package/dist/{async-cache-C0J_pTbk.js → async-cache-U87GzQTb.js} +1 -1
  2. package/dist/{async-cache-C0J_pTbk.js.map → async-cache-U87GzQTb.js.map} +1 -1
  3. package/dist/{build-mdx-DugsQ0sk.js → build-mdx-BZxE8t2a.js} +14 -9
  4. package/dist/build-mdx-BZxE8t2a.js.map +1 -0
  5. package/dist/build-mdx-LhpFasX-.js +4 -0
  6. package/dist/bun/index.d.ts +7 -4
  7. package/dist/bun/index.d.ts.map +1 -1
  8. package/dist/bun/index.js +25 -14
  9. package/dist/bun/index.js.map +1 -1
  10. package/dist/{bun-Br1ReMiq.js → bun-CBROq3I0.js} +2 -2
  11. package/dist/bun-CBROq3I0.js.map +1 -0
  12. package/dist/code-generator-CjC4EEXg.js +102 -0
  13. package/dist/code-generator-CjC4EEXg.js.map +1 -0
  14. package/dist/collections/data/runtime.d.ts +15 -0
  15. package/dist/collections/data/runtime.d.ts.map +1 -0
  16. package/dist/collections/{meta → data}/runtime.js +4 -4
  17. package/dist/collections/data/runtime.js.map +1 -0
  18. package/dist/collections/data.d.ts +47 -0
  19. package/dist/collections/data.d.ts.map +1 -0
  20. package/dist/collections/data.js +5 -0
  21. package/dist/collections/fs.d.ts +3 -0
  22. package/dist/collections/fs.js +3 -0
  23. package/dist/collections/index.d.ts +2 -2
  24. package/dist/collections/index.js +2 -15
  25. package/dist/collections/json/loader-webpack.d.ts +9 -0
  26. package/dist/collections/json/loader-webpack.d.ts.map +1 -0
  27. package/dist/collections/json/loader-webpack.js +15 -0
  28. package/dist/collections/json/loader-webpack.js.map +1 -0
  29. package/dist/collections/mdx/loader-webpack.d.ts +5 -5
  30. package/dist/collections/mdx/loader-webpack.d.ts.map +1 -1
  31. package/dist/collections/mdx/loader-webpack.js +11 -21
  32. package/dist/collections/mdx/loader-webpack.js.map +1 -1
  33. package/dist/collections/mdx/react.d.ts +22 -0
  34. package/dist/collections/mdx/react.d.ts.map +1 -0
  35. package/dist/collections/mdx/react.js +35 -0
  36. package/dist/collections/mdx/react.js.map +1 -0
  37. package/dist/collections/mdx/runtime-browser.d.ts +11 -45
  38. package/dist/collections/mdx/runtime-browser.js +6 -44
  39. package/dist/collections/mdx/runtime-browser.js.map +1 -1
  40. package/dist/collections/mdx/runtime-dynamic.d.ts +16 -28
  41. package/dist/collections/mdx/runtime-dynamic.d.ts.map +1 -1
  42. package/dist/collections/mdx/runtime-dynamic.js +17 -20
  43. package/dist/collections/mdx/runtime-dynamic.js.map +1 -1
  44. package/dist/collections/mdx/runtime.d.ts +10 -49
  45. package/dist/collections/mdx/runtime.js +2 -11
  46. package/dist/collections/mdx/runtime.js.map +1 -1
  47. package/dist/collections/mdx.d.ts +6 -2
  48. package/dist/collections/mdx.js +6 -247
  49. package/dist/collections/runtime/file-store.d.ts +4 -22
  50. package/dist/collections/runtime/file-store.js +15 -14
  51. package/dist/collections/runtime/file-store.js.map +1 -1
  52. package/dist/collections/runtime/store.d.ts +3 -3
  53. package/dist/collections/runtime/store.js +2 -2
  54. package/dist/collections/yaml/loader-webpack.d.ts +9 -0
  55. package/dist/collections/yaml/loader-webpack.d.ts.map +1 -0
  56. package/dist/collections/yaml/loader-webpack.js +15 -0
  57. package/dist/collections/yaml/loader-webpack.js.map +1 -0
  58. package/dist/collections-DNFRdCuB.js +98 -0
  59. package/dist/collections-DNFRdCuB.js.map +1 -0
  60. package/dist/config/index.d.ts +1 -1
  61. package/dist/config/index.js.map +1 -1
  62. package/dist/core-BO3b8jMg.d.ts +313 -0
  63. package/dist/core-BO3b8jMg.d.ts.map +1 -0
  64. package/dist/{core-CnZQDCJ1.js → core-D5QHSKk6.js} +65 -47
  65. package/dist/core-D5QHSKk6.js.map +1 -0
  66. package/dist/data-9h98oZwj.js +158 -0
  67. package/dist/data-9h98oZwj.js.map +1 -0
  68. package/dist/dynamic-CTYYdl7_.d.ts +33 -0
  69. package/dist/dynamic-CTYYdl7_.d.ts.map +1 -0
  70. package/dist/dynamic-DhKTOrIl.js +29 -0
  71. package/dist/dynamic-DhKTOrIl.js.map +1 -0
  72. package/dist/dynamic.d.ts +3 -24
  73. package/dist/dynamic.js +2 -27
  74. package/dist/file-store-laO4IjvB.d.ts +21 -0
  75. package/dist/file-store-laO4IjvB.d.ts.map +1 -0
  76. package/dist/fs-D34Sztbh.d.ts +44 -0
  77. package/dist/fs-D34Sztbh.d.ts.map +1 -0
  78. package/dist/fs-WWbLA7Gx.js +66 -0
  79. package/dist/fs-WWbLA7Gx.js.map +1 -0
  80. package/dist/{fuma-matter-D3kkMkdj.js → fuma-matter-BuBO2w-p.js} +1 -1
  81. package/dist/{fuma-matter-D3kkMkdj.js.map → fuma-matter-BuBO2w-p.js.map} +1 -1
  82. package/dist/git-2CjUW3M5.d.ts +37 -0
  83. package/dist/git-2CjUW3M5.d.ts.map +1 -0
  84. package/dist/git-CQWA37-X.js +60 -0
  85. package/dist/git-CQWA37-X.js.map +1 -0
  86. package/dist/index-Da88Sj8w.d.ts +87 -0
  87. package/dist/index-Da88Sj8w.d.ts.map +1 -0
  88. package/dist/index.d.ts +2 -2
  89. package/dist/index.js +4 -5
  90. package/dist/load-from-file-BZxc_BhC.js +3 -0
  91. package/dist/{load-from-file-XiM8eZha.js → load-from-file-irx0JI6j.js} +4 -6
  92. package/dist/load-from-file-irx0JI6j.js.map +1 -0
  93. package/dist/loader-AIEwGc2f.js +9 -0
  94. package/dist/loader-BhXHF8vy.js +16 -0
  95. package/dist/loader-BhXHF8vy.js.map +1 -0
  96. package/dist/loader-BuR4gkKg.js +77 -0
  97. package/dist/loader-BuR4gkKg.js.map +1 -0
  98. package/dist/loader-BzQpSBvP.js +59 -0
  99. package/dist/loader-BzQpSBvP.js.map +1 -0
  100. package/dist/{loader-C7W_Rwj8.js → loader-D6StkShK.js} +7 -6
  101. package/dist/loader-D6StkShK.js.map +1 -0
  102. package/dist/loader-DCK4RwOh.js +8 -0
  103. package/dist/loader-DwpOcxgh.js +17 -0
  104. package/dist/loader-DwpOcxgh.js.map +1 -0
  105. package/dist/loader-zsTVgQjO.js +8 -0
  106. package/dist/mdx-Dt9hirUu.d.ts +144 -0
  107. package/dist/mdx-Dt9hirUu.d.ts.map +1 -0
  108. package/dist/mdx-iZ2uP27Z.js +303 -0
  109. package/dist/mdx-iZ2uP27Z.js.map +1 -0
  110. package/dist/next/index.d.ts +6 -10
  111. package/dist/next/index.d.ts.map +1 -1
  112. package/dist/next/index.js +20 -28
  113. package/dist/next/index.js.map +1 -1
  114. package/dist/node/index.d.ts +8 -0
  115. package/dist/node/index.d.ts.map +1 -0
  116. package/dist/node/index.js +10 -0
  117. package/dist/node/index.js.map +1 -0
  118. package/dist/node/loader.d.ts +5 -2
  119. package/dist/node/loader.d.ts.map +1 -1
  120. package/dist/node/loader.js +17 -11
  121. package/dist/node/loader.js.map +1 -1
  122. package/dist/{node-CVAU22o3.js → node-2VZOh3P9.js} +7 -5
  123. package/dist/node-2VZOh3P9.js.map +1 -0
  124. package/dist/plugins/git.d.ts +3 -2
  125. package/dist/plugins/git.js +2 -61
  126. package/dist/plugins/json-schema.d.ts +26 -2
  127. package/dist/plugins/json-schema.d.ts.map +1 -0
  128. package/dist/plugins/json-schema.js +41 -50
  129. package/dist/plugins/json-schema.js.map +1 -1
  130. package/dist/plugins/loader/index.d.ts +4 -0
  131. package/dist/plugins/loader/index.js +3 -0
  132. package/dist/plugins/loader/webpack.d.ts +4 -0
  133. package/dist/plugins/loader/webpack.js +60 -0
  134. package/dist/plugins/loader/webpack.js.map +1 -0
  135. package/dist/runtime-HN-HSB0Z.d.ts +31 -0
  136. package/dist/runtime-HN-HSB0Z.d.ts.map +1 -0
  137. package/dist/runtime-browser-BQEk7qjc.d.ts +29 -0
  138. package/dist/runtime-browser-BQEk7qjc.d.ts.map +1 -0
  139. package/dist/store-DiuGdV5M.d.ts +31 -0
  140. package/dist/store-DiuGdV5M.d.ts.map +1 -0
  141. package/dist/{store-D166MOLw.js → store-IvpEBdxi.js} +4 -4
  142. package/dist/store-IvpEBdxi.js.map +1 -0
  143. package/dist/{validation-BYUzZIfc.js → validation-BvVvvLII.js} +1 -1
  144. package/dist/{validation-BYUzZIfc.js.map → validation-BvVvvLII.js.map} +1 -1
  145. package/dist/vite/index.d.ts +5 -15
  146. package/dist/vite/index.d.ts.map +1 -1
  147. package/dist/vite/index.js +18 -21
  148. package/dist/vite/index.js.map +1 -1
  149. package/dist/{vite-6awgG092.js → vite-C1qXY47G.js} +2 -2
  150. package/dist/vite-C1qXY47G.js.map +1 -0
  151. package/package.json +19 -18
  152. package/dist/build-mdx-CSrSOQxF.js +0 -4
  153. package/dist/build-mdx-DugsQ0sk.js.map +0 -1
  154. package/dist/bun-Br1ReMiq.js.map +0 -1
  155. package/dist/code-generator-BvuyL0UO.js +0 -133
  156. package/dist/code-generator-BvuyL0UO.js.map +0 -1
  157. package/dist/collections/handlers/fs.d.ts +0 -2
  158. package/dist/collections/handlers/fs.js +0 -31
  159. package/dist/collections/handlers/fs.js.map +0 -1
  160. package/dist/collections/index.js.map +0 -1
  161. package/dist/collections/mdx/runtime-browser.d.ts.map +0 -1
  162. package/dist/collections/mdx/runtime.d.ts.map +0 -1
  163. package/dist/collections/mdx.js.map +0 -1
  164. package/dist/collections/meta/loader-webpack.d.ts +0 -9
  165. package/dist/collections/meta/loader-webpack.d.ts.map +0 -1
  166. package/dist/collections/meta/loader-webpack.js +0 -25
  167. package/dist/collections/meta/loader-webpack.js.map +0 -1
  168. package/dist/collections/meta/runtime.d.ts +0 -11
  169. package/dist/collections/meta/runtime.d.ts.map +0 -1
  170. package/dist/collections/meta/runtime.js.map +0 -1
  171. package/dist/collections/meta.d.ts +0 -2
  172. package/dist/collections/meta.js +0 -131
  173. package/dist/collections/meta.js.map +0 -1
  174. package/dist/collections/runtime/file-store.d.ts.map +0 -1
  175. package/dist/core-CRWvbE7W.d.ts +0 -588
  176. package/dist/core-CRWvbE7W.d.ts.map +0 -1
  177. package/dist/core-CnZQDCJ1.js.map +0 -1
  178. package/dist/dynamic.d.ts.map +0 -1
  179. package/dist/dynamic.js.map +0 -1
  180. package/dist/load-from-file-BctwhOUd.js +0 -3
  181. package/dist/load-from-file-XiM8eZha.js.map +0 -1
  182. package/dist/loader-BHMDOncZ.js +0 -4
  183. package/dist/loader-C7W_Rwj8.js.map +0 -1
  184. package/dist/loader-DLSJPUiO.js +0 -69
  185. package/dist/loader-DLSJPUiO.js.map +0 -1
  186. package/dist/loader-DkmGoUvo.js +0 -4
  187. package/dist/next/index.cjs +0 -497
  188. package/dist/node-CVAU22o3.js.map +0 -1
  189. package/dist/pipe-UEMV1mRg.js +0 -31
  190. package/dist/pipe-UEMV1mRg.js.map +0 -1
  191. package/dist/plugins/git.js.map +0 -1
  192. package/dist/plugins/with-loader/index.d.ts +0 -2
  193. package/dist/plugins/with-loader/index.js +0 -28
  194. package/dist/plugins/with-loader/index.js.map +0 -1
  195. package/dist/plugins/with-loader/webpack.d.ts +0 -19
  196. package/dist/plugins/with-loader/webpack.d.ts.map +0 -1
  197. package/dist/plugins/with-loader/webpack.js +0 -43
  198. package/dist/plugins/with-loader/webpack.js.map +0 -1
  199. package/dist/store-BtGmZUAC.d.ts +0 -31
  200. package/dist/store-BtGmZUAC.d.ts.map +0 -1
  201. package/dist/store-D166MOLw.js.map +0 -1
  202. package/dist/vite-6awgG092.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"loader-webpack.js","names":["instance: WebpackLoader | undefined"],"sources":["../../../src/collections/mdx/loader-webpack.ts"],"sourcesContent":["import type { LoaderContext } from \"webpack\";\nimport { createDynamicCore } from \"@/dynamic\";\nimport { createMdxLoader } from \"@/collections/mdx/loader\";\nimport {\n getCore,\n toWebpack,\n type WebpackLoader,\n type WebpackLoaderOptions,\n} from \"@/plugins/with-loader/webpack\";\n\nlet instance: WebpackLoader | undefined;\n\nexport default async function loader(\n this: LoaderContext<WebpackLoaderOptions>,\n source: string,\n): Promise<void> {\n const callback = this.async();\n const options = this.getOptions();\n this.cacheable(true);\n this.addDependency(options.absoluteCompiledConfigPath);\n\n if (!instance) {\n instance = toWebpack(\n createMdxLoader(\n createDynamicCore({\n core: getCore(options),\n buildConfig: false,\n mode: options.isDev ? \"dev\" : \"production\",\n }),\n ),\n );\n }\n\n await instance.call(this, source, callback);\n}\n"],"mappings":";;;;;;;;;AAUA,IAAIA;AAEJ,eAA8B,OAE5B,QACe;CACf,MAAM,WAAW,KAAK,OAAO;CAC7B,MAAM,UAAU,KAAK,YAAY;AACjC,MAAK,UAAU,KAAK;AACpB,MAAK,cAAc,QAAQ,2BAA2B;AAEtD,KAAI,CAAC,SACH,YAAW,UACT,gBACE,kBAAkB;EAChB,MAAM,QAAQ,QAAQ;EACtB,aAAa;EACb,MAAM,QAAQ,QAAQ,QAAQ;EAC/B,CAAC,CACH,CACF;AAGH,OAAM,SAAS,KAAK,MAAM,QAAQ,SAAS"}
1
+ {"version":3,"file":"loader-webpack.js","names":[],"sources":["../../../src/collections/mdx/loader-webpack.ts"],"sourcesContent":["import { createMdxLoader } from \"@/collections/mdx/loader\";\nimport { createWebpackLoader } from \"@/plugins/loader/webpack\";\n\nexport default createWebpackLoader(createMdxLoader);\n"],"mappings":";;;;;;;;;;;AAGA,6BAAe,oBAAoB,gBAAgB"}
@@ -0,0 +1,22 @@
1
+ import "../../core-BO3b8jMg.js";
2
+ import "../../dynamic-CTYYdl7_.js";
3
+ import "../../index-Da88Sj8w.js";
4
+ import "../../fs-D34Sztbh.js";
5
+ import "../../store-DiuGdV5M.js";
6
+ import "../../file-store-laO4IjvB.js";
7
+ import { i as CompiledMDX } from "../../mdx-Dt9hirUu.js";
8
+ import { t as MDXStoreBrowserData } from "../../runtime-browser-BQEk7qjc.js";
9
+ import "../../git-2CjUW3M5.js";
10
+ import "../../runtime-HN-HSB0Z.js";
11
+ import { ReactNode } from "react";
12
+
13
+ //#region src/collections/mdx/react.d.ts
14
+ /**
15
+ * Renders content (loaded lazily).
16
+ *
17
+ * It is recommended to use with `<Suspense />`.
18
+ */
19
+ declare function useRenderer<Frontmatter, Attached>(entry: MDXStoreBrowserData<Frontmatter, Attached> | undefined, renderFn: (data: CompiledMDX<Frontmatter> & Attached) => ReactNode): ReactNode;
20
+ //#endregion
21
+ export { useRenderer };
22
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../../../src/collections/mdx/react.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;iBAiBgB,0CACP,oBAAoB,aAAa,wCACvB,YAAY,eAAe,aAAa,YACxD"}
@@ -0,0 +1,35 @@
1
+ import { createElement, lazy } from "react";
2
+
3
+ //#region src/collections/mdx/react.ts
4
+ const renderMap = /* @__PURE__ */ new Map();
5
+ /**
6
+ * Renders content (loaded lazily).
7
+ *
8
+ * It is recommended to use with `<Suspense />`.
9
+ */
10
+ function useRenderer(entry, renderFn) {
11
+ if (!entry) return null;
12
+ const renderKey = `${entry._store.storeId}:${entry.id}`;
13
+ let renderInfo = renderMap.get(renderKey);
14
+ if (!renderInfo) {
15
+ const OnDemand = lazy(async () => {
16
+ const loaded = await entry.preload();
17
+ return { default: () => renderFn(loaded) };
18
+ });
19
+ renderInfo = {
20
+ forceOnDemand: false,
21
+ renderJSX() {
22
+ const v = entry.preload();
23
+ if (!("then" in v) && !this.forceOnDemand) return renderFn(v);
24
+ this.forceOnDemand = true;
25
+ return createElement(OnDemand);
26
+ }
27
+ };
28
+ renderMap.set(renderKey, renderInfo);
29
+ }
30
+ return renderInfo.renderJSX();
31
+ }
32
+
33
+ //#endregion
34
+ export { useRenderer };
35
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","names":[],"sources":["../../../src/collections/mdx/react.ts"],"sourcesContent":["import { ReactNode, lazy, createElement } from \"react\";\nimport { CompiledMDX } from \"./build-mdx\";\nimport { MDXStoreBrowserData } from \"./runtime-browser\";\n\nconst renderMap = new Map<\n string,\n {\n renderJSX: () => ReactNode;\n forceOnDemand: boolean;\n }\n>();\n\n/**\n * Renders content (loaded lazily).\n *\n * It is recommended to use with `<Suspense />`.\n */\nexport function useRenderer<Frontmatter, Attached>(\n entry: MDXStoreBrowserData<Frontmatter, Attached> | undefined,\n renderFn: (data: CompiledMDX<Frontmatter> & Attached) => ReactNode,\n): ReactNode {\n if (!entry) return null;\n const renderKey = `${entry._store.storeId}:${entry.id}`;\n let renderInfo = renderMap.get(renderKey);\n\n if (!renderInfo) {\n const OnDemand = lazy(async () => {\n const loaded = await entry.preload();\n return { default: () => renderFn(loaded) };\n });\n\n renderInfo = {\n forceOnDemand: false,\n renderJSX() {\n const v = entry.preload();\n if (!(\"then\" in v) && !this.forceOnDemand) {\n return renderFn(v);\n }\n\n // ensure it won't unmount React lazy during re-renders\n this.forceOnDemand = true;\n return createElement(OnDemand);\n },\n };\n renderMap.set(renderKey, renderInfo);\n }\n\n return renderInfo.renderJSX();\n}\n"],"mappings":";;;AAIA,MAAM,4BAAY,IAAI,KAMnB;;;;;;AAOH,SAAgB,YACd,OACA,UACW;AACX,KAAI,CAAC,MAAO,QAAO;CACnB,MAAM,YAAY,GAAG,MAAM,OAAO,QAAQ,GAAG,MAAM;CACnD,IAAI,aAAa,UAAU,IAAI,UAAU;AAEzC,KAAI,CAAC,YAAY;EACf,MAAM,WAAW,KAAK,YAAY;GAChC,MAAM,SAAS,MAAM,MAAM,SAAS;AACpC,UAAO,EAAE,eAAe,SAAS,OAAO,EAAE;IAC1C;AAEF,eAAa;GACX,eAAe;GACf,YAAY;IACV,MAAM,IAAI,MAAM,SAAS;AACzB,QAAI,EAAE,UAAU,MAAM,CAAC,KAAK,cAC1B,QAAO,SAAS,EAAE;AAIpB,SAAK,gBAAgB;AACrB,WAAO,cAAc,SAAS;;GAEjC;AACD,YAAU,IAAI,WAAW,WAAW;;AAGtC,QAAO,WAAW,WAAW"}
@@ -1,45 +1,11 @@
1
- import { N as CompiledMDX, Z as ExtractedReference, k as MDXCollection, q as GetCollectionConfig, x as VersionControlFileData } from "../../core-CRWvbE7W.js";
2
- import { n as SimpleCollectionStore } from "../../store-BtGmZUAC.js";
3
- import { ReactNode } from "react";
4
-
5
- //#region src/utils/async-cache.d.ts
6
- interface AsyncCache<V> {
7
- cached: (key: string, fn: () => V | Promise<V>) => V | Promise<V>;
8
- $value: <T>() => AsyncCache<T>;
9
- invalidate: (key: string) => void;
10
- }
11
- //#endregion
12
- //#region src/collections/mdx/runtime-browser.d.ts
13
- interface MDXStoreBrowserData<Frontmatter$1, CustomData$1> {
14
- id: string;
15
- preload: () => (CompiledMDX<Frontmatter$1> & CustomData$1) | Promise<CompiledMDX<Frontmatter$1> & CustomData$1>;
16
- _renderer: StoreRendererData;
17
- }
18
- interface StoreRendererData {
19
- storeId: string;
20
- renderers: Map<string, {
21
- fn: () => ReactNode;
22
- forceOnDemand: boolean;
23
- }>;
24
- }
25
- interface StoreData {
26
- preloaded: AsyncCache<CompiledMDX>;
27
- }
28
- type GetFrontmatter<Config, Name extends string> = GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter> ? _Frontmatter : never;
29
- declare const _internal_data: Map<string, StoreData>;
30
- declare function mdxStoreBrowser<Config, Name extends string>(name: Name, _input: Record<string, () => Promise<unknown>>): SimpleCollectionStore<MDXStoreBrowserData<GetFrontmatter<Config, Name>, unknown>>;
31
- /**
32
- * Renders content with `React.lazy`.
33
- */
34
- declare function useRenderer<Frontmatter$1, CustomData$1>(entry: MDXStoreBrowserData<Frontmatter$1, CustomData$1> | undefined, renderFn: (data: CompiledMDX<Frontmatter$1> & CustomData$1) => ReactNode): ReactNode;
35
- declare function $attachCompiled<Add>(): <T>(data: T) => T extends MDXStoreBrowserData<infer Frontmatter, infer CustomData> ? MDXStoreBrowserData<Frontmatter, CustomData & Add> : T;
36
- declare function $extractedReferences(): <T>(data: T) => T extends MDXStoreBrowserData<infer Frontmatter, infer CustomData> ? MDXStoreBrowserData<Frontmatter, CustomData & {
37
- /**
38
- * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.
39
- */
40
- extractedReferences: ExtractedReference[];
41
- }> : T;
42
- declare function $versionControl(): <T>(data: T) => T extends MDXStoreBrowserData<infer Frontmatter, infer CustomData> ? MDXStoreBrowserData<Frontmatter, CustomData & VersionControlFileData> : T;
43
- //#endregion
44
- export { $attachCompiled, $extractedReferences, $versionControl, MDXStoreBrowserData, _internal_data, mdxStoreBrowser, useRenderer };
45
- //# sourceMappingURL=runtime-browser.d.ts.map
1
+ import "../../core-BO3b8jMg.js";
2
+ import "../../dynamic-CTYYdl7_.js";
3
+ import "../../index-Da88Sj8w.js";
4
+ import "../../fs-D34Sztbh.js";
5
+ import "../../store-DiuGdV5M.js";
6
+ import "../../file-store-laO4IjvB.js";
7
+ import "../../mdx-Dt9hirUu.js";
8
+ import { n as _internal_data, r as mdxStoreBrowser, t as MDXStoreBrowserData } from "../../runtime-browser-BQEk7qjc.js";
9
+ import "../../git-2CjUW3M5.js";
10
+ import { i as WithGit, r as WithExtractedReferences } from "../../runtime-HN-HSB0Z.js";
11
+ export { MDXStoreBrowserData, WithExtractedReferences, WithGit, _internal_data, mdxStoreBrowser };
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { t as createCache } from "../../async-cache-C0J_pTbk.js";
4
- import { t as SimpleCollectionStore } from "../../store-D166MOLw.js";
5
- import { createElement, lazy } from "react";
3
+ import { t as createCache } from "../../async-cache-U87GzQTb.js";
4
+ import { t as MapCollectionStore } from "../../store-IvpEBdxi.js";
6
5
 
7
6
  //#region src/collections/mdx/runtime-browser.ts
8
7
  const _internal_data = /* @__PURE__ */ new Map();
@@ -16,54 +15,17 @@ function mdxStoreBrowser(name, _input) {
16
15
  _internal_data.set(name, store);
17
16
  return store;
18
17
  }
19
- const _renderer = {
20
- storeId: name,
21
- renderers: /* @__PURE__ */ new Map()
22
- };
18
+ const context = { storeId: name };
23
19
  for (const [key, value] of Object.entries(input)) merged.set(key, {
24
20
  id: key,
25
21
  preload() {
26
22
  return getStoreData().preloaded.$value().cached(key, value);
27
23
  },
28
- _renderer
24
+ _store: context
29
25
  });
30
- return new SimpleCollectionStore(merged);
31
- }
32
- /**
33
- * Renders content with `React.lazy`.
34
- */
35
- function useRenderer(entry, renderFn) {
36
- if (!entry) return null;
37
- const { id, _renderer: { renderers } } = entry;
38
- let renderer = renderers.get(id);
39
- if (!renderer) {
40
- const OnDemand = lazy(async () => {
41
- const loaded = await entry.preload();
42
- return { default: () => renderFn(loaded) };
43
- });
44
- renderer = {
45
- forceOnDemand: false,
46
- fn() {
47
- const v = entry.preload();
48
- if (!(v instanceof Promise) && !this.forceOnDemand) return renderFn(v);
49
- this.forceOnDemand = true;
50
- return createElement(OnDemand);
51
- }
52
- };
53
- renderers.set(id, renderer);
54
- }
55
- return renderer.fn();
56
- }
57
- function $attachCompiled() {
58
- return (data) => data;
59
- }
60
- function $extractedReferences() {
61
- return $attachCompiled();
62
- }
63
- function $versionControl() {
64
- return $attachCompiled();
26
+ return new MapCollectionStore(merged);
65
27
  }
66
28
 
67
29
  //#endregion
68
- export { $attachCompiled, $extractedReferences, $versionControl, _internal_data, mdxStoreBrowser, useRenderer };
30
+ export { _internal_data, mdxStoreBrowser };
69
31
  //# sourceMappingURL=runtime-browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-browser.js","names":["_renderer: StoreRendererData"],"sources":["../../../src/collections/mdx/runtime-browser.ts"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode, lazy, createElement } from \"react\";\nimport type { GetCollectionConfig } from \"@/types\";\nimport type { MDXCollection } from \"@/collections/mdx\";\nimport type { ExtractedReference } from \"@/collections/mdx/remark-postprocess\";\nimport { SimpleCollectionStore } from \"@/collections/runtime/store\";\nimport type { VersionControlFileData } from \"@/plugins/git\";\nimport { type AsyncCache, createCache } from \"@/utils/async-cache\";\nimport type { CompiledMDX } from \"@/collections/mdx/build-mdx\";\n\nexport interface MDXStoreBrowserData<Frontmatter, CustomData> {\n id: string;\n preload: () =>\n | (CompiledMDX<Frontmatter> & CustomData)\n | Promise<CompiledMDX<Frontmatter> & CustomData>;\n _renderer: StoreRendererData;\n}\n\ninterface StoreRendererData {\n storeId: string;\n renderers: Map<\n string,\n {\n fn: () => ReactNode;\n forceOnDemand: boolean;\n }\n >;\n}\n\ninterface StoreData {\n preloaded: AsyncCache<CompiledMDX>;\n}\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter>\n ? _Frontmatter\n : never;\n\nexport const _internal_data = new Map<string, StoreData>();\n\nexport function mdxStoreBrowser<Config, Name extends string>(\n name: Name,\n _input: Record<string, () => Promise<unknown>>,\n): SimpleCollectionStore<MDXStoreBrowserData<GetFrontmatter<Config, Name>, unknown>> {\n const input = _input as Record<string, () => Promise<CompiledMDX<GetFrontmatter<Config, Name>>>>;\n const merged = new Map<string, MDXStoreBrowserData<GetFrontmatter<Config, Name>, unknown>>();\n function getStoreData(): StoreData {\n let store = _internal_data.get(name);\n if (store) return store;\n\n store = {\n preloaded: createCache(),\n };\n _internal_data.set(name, store);\n return store;\n }\n\n const _renderer: StoreRendererData = {\n storeId: name,\n renderers: new Map(),\n };\n\n for (const [key, value] of Object.entries(input)) {\n merged.set(key, {\n id: key,\n preload() {\n return getStoreData()\n .preloaded.$value<CompiledMDX<GetFrontmatter<Config, Name>>>()\n .cached(key, value);\n },\n _renderer,\n });\n }\n\n return new SimpleCollectionStore(merged);\n}\n\n/**\n * Renders content with `React.lazy`.\n */\nexport function useRenderer<Frontmatter, CustomData>(\n entry: MDXStoreBrowserData<Frontmatter, CustomData> | undefined,\n renderFn: (data: CompiledMDX<Frontmatter> & CustomData) => ReactNode,\n): ReactNode {\n if (!entry) return null;\n const {\n id,\n _renderer: { renderers },\n } = entry;\n let renderer = renderers.get(id);\n\n if (!renderer) {\n const OnDemand = lazy(async () => {\n const loaded = await entry.preload();\n return { default: () => renderFn(loaded) };\n });\n\n renderer = {\n forceOnDemand: false,\n fn() {\n const v = entry.preload();\n if (!(v instanceof Promise) && !this.forceOnDemand) {\n return renderFn(v);\n }\n\n // ensure it won't unmount React lazy during re-renders\n this.forceOnDemand = true;\n return createElement(OnDemand);\n },\n };\n renderers.set(id, renderer);\n }\n\n return renderer.fn();\n}\n\nexport function $attachCompiled<Add>() {\n return <T>(data: T) =>\n data as T extends MDXStoreBrowserData<infer Frontmatter, infer CustomData>\n ? MDXStoreBrowserData<Frontmatter, CustomData & Add>\n : T;\n}\n\nexport function $extractedReferences() {\n return $attachCompiled<{\n /**\n * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.\n */\n extractedReferences: ExtractedReference[];\n }>();\n}\n\nexport function $versionControl() {\n return $attachCompiled<VersionControlFileData>();\n}\n"],"mappings":";;;;;;;AAuCA,MAAa,iCAAiB,IAAI,KAAwB;AAE1D,SAAgB,gBACd,MACA,QACmF;CACnF,MAAM,QAAQ;CACd,MAAM,yBAAS,IAAI,KAAyE;CAC5F,SAAS,eAA0B;EACjC,IAAI,QAAQ,eAAe,IAAI,KAAK;AACpC,MAAI,MAAO,QAAO;AAElB,UAAQ,EACN,WAAW,aAAa,EACzB;AACD,iBAAe,IAAI,MAAM,MAAM;AAC/B,SAAO;;CAGT,MAAMA,YAA+B;EACnC,SAAS;EACT,2BAAW,IAAI,KAAK;EACrB;AAED,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,QAAO,IAAI,KAAK;EACd,IAAI;EACJ,UAAU;AACR,UAAO,cAAc,CAClB,UAAU,QAAmD,CAC7D,OAAO,KAAK,MAAM;;EAEvB;EACD,CAAC;AAGJ,QAAO,IAAI,sBAAsB,OAAO;;;;;AAM1C,SAAgB,YACd,OACA,UACW;AACX,KAAI,CAAC,MAAO,QAAO;CACnB,MAAM,EACJ,IACA,WAAW,EAAE,gBACX;CACJ,IAAI,WAAW,UAAU,IAAI,GAAG;AAEhC,KAAI,CAAC,UAAU;EACb,MAAM,WAAW,KAAK,YAAY;GAChC,MAAM,SAAS,MAAM,MAAM,SAAS;AACpC,UAAO,EAAE,eAAe,SAAS,OAAO,EAAE;IAC1C;AAEF,aAAW;GACT,eAAe;GACf,KAAK;IACH,MAAM,IAAI,MAAM,SAAS;AACzB,QAAI,EAAE,aAAa,YAAY,CAAC,KAAK,cACnC,QAAO,SAAS,EAAE;AAIpB,SAAK,gBAAgB;AACrB,WAAO,cAAc,SAAS;;GAEjC;AACD,YAAU,IAAI,IAAI,SAAS;;AAG7B,QAAO,SAAS,IAAI;;AAGtB,SAAgB,kBAAuB;AACrC,SAAW,SACT;;AAKJ,SAAgB,uBAAuB;AACrC,QAAO,iBAKH;;AAGN,SAAgB,kBAAkB;AAChC,QAAO,iBAAyC"}
1
+ {"version":3,"file":"runtime-browser.js","names":["context: StoreContext"],"sources":["../../../src/collections/mdx/runtime-browser.ts"],"sourcesContent":["\"use client\";\n\nimport type { Awaitable, GetCollectionConfig } from \"@/types\";\nimport { MapCollectionStore } from \"@/collections/runtime/store\";\nimport { type AsyncCache, createCache } from \"@/utils/async-cache\";\nimport type { CompiledMDX } from \"@/collections/mdx/build-mdx\";\nimport type { MDXCollection } from \"../mdx\";\n\nexport interface MDXStoreBrowserData<Frontmatter, Attached = unknown> {\n id: string;\n preload: () => Awaitable<CompiledMDX<Frontmatter> & Attached>;\n _store: StoreContext;\n}\n\ninterface StoreContext {\n storeId: string;\n}\n\ninterface StoreData {\n preloaded: AsyncCache<CompiledMDX>;\n}\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection\n ? GetCollectionConfig<Config, Name>[\"$inferFrontmatter\"]\n : never;\n\nexport const _internal_data = new Map<string, StoreData>();\n\nexport function mdxStoreBrowser<Config, Name extends string, Attached>(\n name: Name,\n _input: Record<string, () => Promise<unknown>>,\n): MapCollectionStore<string, MDXStoreBrowserData<GetFrontmatter<Config, Name>, Attached>> {\n const input = _input as Record<\n string,\n () => Promise<CompiledMDX<GetFrontmatter<Config, Name>> & Attached>\n >;\n const merged = new Map<string, MDXStoreBrowserData<GetFrontmatter<Config, Name>, Attached>>();\n function getStoreData(): StoreData {\n let store = _internal_data.get(name);\n if (store) return store;\n\n store = {\n preloaded: createCache(),\n };\n _internal_data.set(name, store);\n return store;\n }\n\n const context: StoreContext = {\n storeId: name,\n };\n\n for (const [key, value] of Object.entries(input)) {\n merged.set(key, {\n id: key,\n preload() {\n return getStoreData()\n .preloaded.$value<CompiledMDX<GetFrontmatter<Config, Name>> & Attached>()\n .cached(key, value);\n },\n _store: context,\n });\n }\n\n return new MapCollectionStore(merged);\n}\n\nexport type { WithExtractedReferences, WithGit } from \"./runtime\";\n"],"mappings":";;;;;;AA2BA,MAAa,iCAAiB,IAAI,KAAwB;AAE1D,SAAgB,gBACd,MACA,QACyF;CACzF,MAAM,QAAQ;CAId,MAAM,yBAAS,IAAI,KAA0E;CAC7F,SAAS,eAA0B;EACjC,IAAI,QAAQ,eAAe,IAAI,KAAK;AACpC,MAAI,MAAO,QAAO;AAElB,UAAQ,EACN,WAAW,aAAa,EACzB;AACD,iBAAe,IAAI,MAAM,MAAM;AAC/B,SAAO;;CAGT,MAAMA,UAAwB,EAC5B,SAAS,MACV;AAED,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,QAAO,IAAI,KAAK;EACd,IAAI;EACJ,UAAU;AACR,UAAO,cAAc,CAClB,UAAU,QAA8D,CACxE,OAAO,KAAK,MAAM;;EAEvB,QAAQ;EACT,CAAC;AAGJ,QAAO,IAAI,mBAAmB,OAAO"}
@@ -1,35 +1,23 @@
1
- import { N as CompiledMDX, Z as ExtractedReference, k as MDXCollection, n as CoreOptions, q as GetCollectionConfig, x as VersionControlFileData } from "../../core-CRWvbE7W.js";
2
- import "../../store-BtGmZUAC.js";
3
- import { FileCollectionStore } from "../runtime/file-store.js";
4
- import { FC } from "react";
5
- import { MDXComponents } from "mdx/types";
1
+ import { D as GetCollectionConfig, n as CoreOptions } from "../../core-BO3b8jMg.js";
2
+ import "../../dynamic-CTYYdl7_.js";
3
+ import "../../index-Da88Sj8w.js";
4
+ import "../../fs-D34Sztbh.js";
5
+ import "../../store-DiuGdV5M.js";
6
+ import { t as FileCollectionStore } from "../../file-store-laO4IjvB.js";
7
+ import { i as CompiledMDX, t as MDXCollection } from "../../mdx-Dt9hirUu.js";
8
+ import "../../git-2CjUW3M5.js";
9
+ import { i as WithGit, r as WithExtractedReferences } from "../../runtime-HN-HSB0Z.js";
10
+ import { MDXContent } from "mdx/types";
6
11
 
7
12
  //#region src/collections/mdx/runtime-dynamic.d.ts
8
-
9
- interface MDXStoreDynamicData<Frontmatter> {
13
+ interface MDXStoreDynamicData<Frontmatter, Attached = unknown> {
10
14
  id: string;
11
15
  frontmatter: Frontmatter;
12
- compile: () => Promise<CompiledMDX<Frontmatter>>;
16
+ compile: () => Promise<CompiledMDX<Frontmatter> & Attached>;
13
17
  }
14
- type GetFrontmatter<Config, Name extends string> = GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter> ? _Frontmatter : never;
15
- declare function mdxStoreDynamic<Config, Name extends string>(config: Config, coreOptions: CoreOptions, name: Name, base: string, _frontmatter: Record<string, unknown>): Promise<FileCollectionStore<MDXStoreDynamicData<GetFrontmatter<Config, Name>>>>;
16
- type MdxContent = FC<{
17
- components?: MDXComponents;
18
- }>;
19
- declare function $attachCompiled<Add>(): <T>(data: T) => T extends MDXStoreDynamicData<unknown> ? T & {
20
- compile: () => Promise<Awaited<ReturnType<T["compile"]>> & Add>;
21
- } : T;
22
- declare function $extractedReferences(): <T>(data: T) => T extends MDXStoreDynamicData<unknown> ? T & {
23
- compile: () => Promise<Awaited<ReturnType<T["compile"]>> & {
24
- /**
25
- * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.
26
- */
27
- extractedReferences: ExtractedReference[];
28
- }>;
29
- } : T;
30
- declare function $versionControl(): <T>(data: T) => T extends MDXStoreDynamicData<unknown> ? T & {
31
- compile: () => Promise<Awaited<ReturnType<T["compile"]>> & VersionControlFileData>;
32
- } : T;
18
+ type GetFrontmatter<Config, Name extends string> = GetCollectionConfig<Config, Name> extends MDXCollection ? GetCollectionConfig<Config, Name>["$inferFrontmatter"] : never;
19
+ declare function mdxStoreDynamic<Config, Name extends string, Attached>(config: Config, coreOptions: CoreOptions, name: Name, base: string, _frontmatter: Record<string, unknown>, jsxRuntime: unknown): Promise<FileCollectionStore<MDXStoreDynamicData<GetFrontmatter<Config, Name>, Attached>>>;
20
+ type MdxContent = MDXContent;
33
21
  //#endregion
34
- export { $attachCompiled, $extractedReferences, $versionControl, MDXStoreDynamicData, MdxContent, mdxStoreDynamic };
22
+ export { MDXStoreDynamicData, MdxContent, type WithExtractedReferences, type WithGit, mdxStoreDynamic };
35
23
  //# sourceMappingURL=runtime-dynamic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-dynamic.d.ts","names":[],"sources":["../../../src/collections/mdx/runtime-dynamic.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAmBqC,UAHpB,mBAGoB,CAAA,WAAA,CAAA,CAAA;EAAZ,EAAA,EAAA,MAAA;EAAR,WAAA,EADF,WACE;EAAO,OAAA,EAAA,GAAA,GAAP,OAAO,CAAC,WAAD,CAAa,WAAb,CAAA,CAAA;AACvB;KAII,cACiB,CAAA,MAAA,EAAA,aAAA,MAAA,CAAA,GAApB,mBAAoB,CAAA,MAAA,EAAQ,IAAR,CAAA,SAAsB,aAAtB,CAAA,KAAA,aAAA,CAAA,GAAA,YAAA,GAAA,KAAA;AAAQ,iBAIR,eAJQ,CAAA,MAAA,EAAA,aAAA,MAAA,CAAA,CAAA,MAAA,EAKpB,MALoB,EAAA,WAAA,EAMf,WANe,EAAA,IAAA,EAOtB,IAPsB,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EASd,MATc,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAU3B,OAV2B,CAUnB,mBAVmB,CAUC,mBAVD,CAUqB,cAVrB,CAUoC,MAVpC,EAU4C,IAV5C,CAAA,CAAA,CAAA,CAAA;AAA5B,KAuDU,UAAA,GAAa,EAvDvB,CAAA;EAA0C,UAAA,CAAA,EAuDD,aAvDC;CAAa,CAAA;AAInC,iBA+EN,eA/EqB,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAgFlB,CAhFkB,EAAA,GAiFzB,CAjFyB,SAiFf,mBAjFe,CAAA,OAAA,CAAA,GAkF7B,CAlF6B,GAAA;EAC3B,OAAA,EAAA,GAAA,GAkFe,OAlFf,CAkFuB,OAlFvB,CAkF+B,UAlF/B,CAkF0C,CAlF1C,CAAA,SAAA,CAAA,CAAA,CAAA,GAkF2D,GAlF3D,CAAA;CACK,GAmFP,CAnFO;AACP,iBAqFQ,oBAAA,CAAA,CArFR,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EA6EG,CA7EH,EAAA,GA6EG,CA7EH,SA6EG,mBA7EH,CAAA,OAAA,CAAA,GA6EG,CA7EH,GAAA;EAEQ,OAAA,EAAA,GAAA,UAAA,QAAA,WAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,GAAA;IACkD;;;IAAnC,mBAAA,EAuFN,kBAvFM,EAAA;EAApB,CAAA,CAAA;CAAR,IAAA;AAAO,iBA2FM,eAAA,CAAA,CA3FN,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EA0EC,CA1ED,EAAA,GA0EC,CA1ED,SA0EC,mBA1ED,CAAA,OAAA,CAAA,GA0EC,CA1ED,GAAA;EA6CE,OAAA,EAAA,GAAA,UAAU,QAAqB,WAAlB,EAAE,CAAA,SAAA,CAAA,CAAA,CAAA,yBAAA,CAAA;AA4B3B,CAAA,IAAgB"}
1
+ {"version":3,"file":"runtime-dynamic.d.ts","names":[],"sources":["../../../src/collections/mdx/runtime-dynamic.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAYiB;;eAEF;iBACE,QAAQ,YAAY,eAAe;;KAK/C,8CACH,oBAAoB,QAAQ,cAAc,gBACtC,oBAAoB,QAAQ;AAVjB,iBAaK,eAbc,CAAA,MAAA,EAAA,aAAA,MAAA,EAAA,QAAA,CAAA,CAAA,MAAA,EAc1B,MAd0B,EAAA,WAAA,EAerB,WAfqB,EAAA,IAAA,EAgB5B,IAhB4B,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAkBpB,MAlBoB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAoBjC,OApBiC,CAoBzB,mBApByB,CAoBL,mBApBK,CAoBe,cApBf,CAoB8B,MApB9B,EAoBsC,IApBtC,CAAA,EAoB6C,QApB7C,CAAA,CAAA,CAAA;AAErB,KAiEH,UAAA,GAAa,UAjEV"}
@@ -1,17 +1,20 @@
1
- import { t as createCache } from "../../async-cache-C0J_pTbk.js";
2
- import "../../code-generator-BvuyL0UO.js";
3
- import { t as Core } from "../../core-CnZQDCJ1.js";
4
- import { t as fumaMatter } from "../../fuma-matter-D3kkMkdj.js";
5
- import { t as buildMDX } from "../../build-mdx-DugsQ0sk.js";
1
+ import { t as Core } from "../../core-D5QHSKk6.js";
2
+ import "../../validation-BvVvvLII.js";
3
+ import { t as createCache } from "../../async-cache-U87GzQTb.js";
4
+ import "../../loader-BuR4gkKg.js";
5
+ import "../../fs-WWbLA7Gx.js";
6
+ import "../../git-CQWA37-X.js";
7
+ import { t as MDXCollection } from "../../mdx-iZ2uP27Z.js";
6
8
  import { FileCollectionStore } from "../runtime/file-store.js";
9
+ import { t as fumaMatter } from "../../fuma-matter-BuBO2w-p.js";
10
+ import { t as buildMDX } from "../../build-mdx-BZxE8t2a.js";
7
11
  import fs from "node:fs/promises";
8
12
  import path from "node:path";
9
13
  import { pathToFileURL } from "node:url";
10
- import jsxRuntimeDefault from "react/jsx-runtime";
11
14
 
12
15
  //#region src/collections/mdx/runtime-dynamic.ts
13
16
  let corePromise;
14
- async function mdxStoreDynamic(config, coreOptions, name, base, _frontmatter) {
17
+ async function mdxStoreDynamic(config, coreOptions, name, base, _frontmatter, jsxRuntime) {
15
18
  corePromise ??= (async () => {
16
19
  const core$1 = new Core(coreOptions);
17
20
  await core$1.init({ config });
@@ -20,7 +23,7 @@ async function mdxStoreDynamic(config, coreOptions, name, base, _frontmatter) {
20
23
  const core = await corePromise;
21
24
  const frontmatter = _frontmatter;
22
25
  const collection = core.getCollection(name);
23
- if (!collection || !collection.handlers.mdx) throw new Error("invalid collection name");
26
+ if (!collection || !(collection instanceof MDXCollection)) throw new Error("invalid collection name");
24
27
  const merged = {};
25
28
  const cache = createCache();
26
29
  for (const [k, v] of Object.entries(frontmatter)) merged[k] = {
@@ -38,7 +41,10 @@ async function mdxStoreDynamic(config, coreOptions, name, base, _frontmatter) {
38
41
  isDevelopment: false,
39
42
  environment: "runtime"
40
43
  });
41
- return await executeMdx(String(compiled.value), { baseUrl: pathToFileURL(filePath) });
44
+ return await executeMdx(String(compiled.value), {
45
+ baseUrl: pathToFileURL(filePath),
46
+ jsxRuntime
47
+ });
42
48
  });
43
49
  }
44
50
  };
@@ -50,7 +56,7 @@ async function executeMdx(compiled, options = {}) {
50
56
  const fullScope = {
51
57
  opts: {
52
58
  ...scopeOpts,
53
- ...options.jsxRuntime ?? jsxRuntimeDefault,
59
+ ...options.jsxRuntime,
54
60
  baseUrl: options.baseUrl
55
61
  },
56
62
  ...scope
@@ -58,16 +64,7 @@ async function executeMdx(compiled, options = {}) {
58
64
  const hydrateFn = new AsyncFunction(...Object.keys(fullScope), compiled);
59
65
  return await hydrateFn.apply(hydrateFn, Object.values(fullScope));
60
66
  }
61
- function $attachCompiled() {
62
- return (data) => data;
63
- }
64
- function $extractedReferences() {
65
- return $attachCompiled();
66
- }
67
- function $versionControl() {
68
- return $attachCompiled();
69
- }
70
67
 
71
68
  //#endregion
72
- export { $attachCompiled, $extractedReferences, $versionControl, mdxStoreDynamic };
69
+ export { mdxStoreDynamic };
73
70
  //# sourceMappingURL=runtime-dynamic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-dynamic.js","names":["corePromise: Promise<Core>","core","merged: Record<string, MDXStoreDynamicData<GetFrontmatter<Config, Name>>>","AsyncFunction: new (...args: string[]) => (...args: unknown[]) => Promise<unknown>"],"sources":["../../../src/collections/mdx/runtime-dynamic.ts"],"sourcesContent":["import { buildMDX, type CompiledMDX } from \"@/collections/mdx/build-mdx\";\nimport { pathToFileURL } from \"node:url\";\nimport { fumaMatter } from \"@/collections/mdx/fuma-matter\";\nimport fs from \"node:fs/promises\";\nimport { type CoreOptions, Core } from \"@/core\";\nimport type { MDXComponents } from \"mdx/types\";\nimport type { FC } from \"react\";\nimport jsxRuntimeDefault from \"react/jsx-runtime\";\nimport { FileCollectionStore } from \"@/collections/runtime/file-store\";\nimport type { GetCollectionConfig } from \"@/types\";\nimport type { MDXCollection } from \"@/collections/mdx\";\nimport path from \"node:path\";\nimport { createCache } from \"@/utils/async-cache\";\nimport type { ExtractedReference } from \"@/collections/mdx/remark-postprocess\";\nimport type { VersionControlFileData } from \"@/plugins/git\";\n\nexport interface MDXStoreDynamicData<Frontmatter> {\n id: string;\n frontmatter: Frontmatter;\n compile: () => Promise<CompiledMDX<Frontmatter>>;\n}\n\nlet corePromise: Promise<Core>;\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter>\n ? _Frontmatter\n : never;\n\nexport async function mdxStoreDynamic<Config, Name extends string>(\n config: Config,\n coreOptions: CoreOptions,\n name: Name,\n base: string,\n _frontmatter: Record<string, unknown>,\n): Promise<FileCollectionStore<MDXStoreDynamicData<GetFrontmatter<Config, Name>>>> {\n corePromise ??= (async () => {\n const core = new Core(coreOptions);\n await core.init({\n config: config as Record<string, unknown>,\n });\n return core;\n })();\n const core = await corePromise;\n const frontmatter = _frontmatter as Record<string, GetFrontmatter<Config, Name>>;\n const collection = core.getCollection(name);\n if (!collection || !collection.handlers.mdx) throw new Error(\"invalid collection name\");\n\n const merged: Record<string, MDXStoreDynamicData<GetFrontmatter<Config, Name>>> = {};\n const cache = createCache<CompiledMDX<GetFrontmatter<Config, Name>>>();\n\n for (const [k, v] of Object.entries(frontmatter)) {\n merged[k] = {\n id: k,\n frontmatter: v,\n async compile() {\n return cache.cached(k, async () => {\n const filePath = path.join(base, k);\n let content = (await fs.readFile(filePath)).toString();\n content = fumaMatter(content).content;\n\n const compiled = await buildMDX(core, collection, {\n filePath,\n source: content,\n frontmatter: v as unknown as Record<string, unknown>,\n isDevelopment: false,\n environment: \"runtime\",\n });\n\n return (await executeMdx(String(compiled.value), {\n baseUrl: pathToFileURL(filePath),\n })) as CompiledMDX<GetFrontmatter<Config, Name>>;\n });\n },\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport type MdxContent = FC<{ components?: MDXComponents }>;\n\ninterface Options {\n scope?: Record<string, unknown>;\n baseUrl?: string | URL;\n jsxRuntime?: unknown;\n}\n\nconst AsyncFunction: new (...args: string[]) => (...args: unknown[]) => Promise<unknown> =\n Object.getPrototypeOf(executeMdx).constructor;\n\nasync function executeMdx(compiled: string, options: Options = {}) {\n const { opts: scopeOpts, ...scope } = options.scope ?? {};\n const fullScope = {\n opts: {\n ...(scopeOpts as object),\n ...(options.jsxRuntime ?? jsxRuntimeDefault),\n baseUrl: options.baseUrl,\n },\n ...scope,\n };\n\n const hydrateFn = new AsyncFunction(...Object.keys(fullScope), compiled);\n return (await hydrateFn.apply(hydrateFn, Object.values(fullScope))) as {\n default: MdxContent;\n };\n}\n\nexport function $attachCompiled<Add>() {\n return <T>(data: T) =>\n data as T extends MDXStoreDynamicData<unknown>\n ? T & {\n compile: () => Promise<Awaited<ReturnType<T[\"compile\"]>> & Add>;\n }\n : T;\n}\n\nexport function $extractedReferences() {\n return $attachCompiled<{\n /**\n * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.\n */\n extractedReferences: ExtractedReference[];\n }>();\n}\n\nexport function $versionControl() {\n return $attachCompiled<VersionControlFileData>();\n}\n"],"mappings":";;;;;;;;;;;;AAsBA,IAAIA;AAOJ,eAAsB,gBACpB,QACA,aACA,MACA,MACA,cACiF;AACjF,kBAAiB,YAAY;EAC3B,MAAMC,SAAO,IAAI,KAAK,YAAY;AAClC,QAAMA,OAAK,KAAK,EACN,QACT,CAAC;AACF,SAAOA;KACL;CACJ,MAAM,OAAO,MAAM;CACnB,MAAM,cAAc;CACpB,MAAM,aAAa,KAAK,cAAc,KAAK;AAC3C,KAAI,CAAC,cAAc,CAAC,WAAW,SAAS,IAAK,OAAM,IAAI,MAAM,0BAA0B;CAEvF,MAAMC,SAA4E,EAAE;CACpF,MAAM,QAAQ,aAAwD;AAEtE,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,YAAY,CAC9C,QAAO,KAAK;EACV,IAAI;EACJ,aAAa;EACb,MAAM,UAAU;AACd,UAAO,MAAM,OAAO,GAAG,YAAY;IACjC,MAAM,WAAW,KAAK,KAAK,MAAM,EAAE;IACnC,IAAI,WAAW,MAAM,GAAG,SAAS,SAAS,EAAE,UAAU;AACtD,cAAU,WAAW,QAAQ,CAAC;IAE9B,MAAM,WAAW,MAAM,SAAS,MAAM,YAAY;KAChD;KACA,QAAQ;KACR,aAAa;KACb,eAAe;KACf,aAAa;KACd,CAAC;AAEF,WAAQ,MAAM,WAAW,OAAO,SAAS,MAAM,EAAE,EAC/C,SAAS,cAAc,SAAS,EACjC,CAAC;KACF;;EAEL;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO;;AAW9C,MAAMC,gBACJ,OAAO,eAAe,WAAW,CAAC;AAEpC,eAAe,WAAW,UAAkB,UAAmB,EAAE,EAAE;CACjE,MAAM,EAAE,MAAM,WAAW,GAAG,UAAU,QAAQ,SAAS,EAAE;CACzD,MAAM,YAAY;EAChB,MAAM;GACJ,GAAI;GACJ,GAAI,QAAQ,cAAc;GAC1B,SAAS,QAAQ;GAClB;EACD,GAAG;EACJ;CAED,MAAM,YAAY,IAAI,cAAc,GAAG,OAAO,KAAK,UAAU,EAAE,SAAS;AACxE,QAAQ,MAAM,UAAU,MAAM,WAAW,OAAO,OAAO,UAAU,CAAC;;AAKpE,SAAgB,kBAAuB;AACrC,SAAW,SACT;;AAOJ,SAAgB,uBAAuB;AACrC,QAAO,iBAKH;;AAGN,SAAgB,kBAAkB;AAChC,QAAO,iBAAyC"}
1
+ {"version":3,"file":"runtime-dynamic.js","names":["corePromise: Promise<Core>","core","merged: Record<string, MDXStoreDynamicData<GetFrontmatter<Config, Name>, Attached>>","AsyncFunction: new (...args: string[]) => (...args: unknown[]) => Promise<unknown>"],"sources":["../../../src/collections/mdx/runtime-dynamic.ts"],"sourcesContent":["import { buildMDX, type CompiledMDX } from \"@/collections/mdx/build-mdx\";\nimport { pathToFileURL } from \"node:url\";\nimport { fumaMatter } from \"@/collections/mdx/fuma-matter\";\nimport fs from \"node:fs/promises\";\nimport { type CoreOptions, Core } from \"@/core\";\nimport type { MDXContent } from \"mdx/types\";\nimport { FileCollectionStore } from \"@/collections/runtime/file-store\";\nimport type { GetCollectionConfig } from \"@/types\";\nimport { MDXCollection } from \"@/collections/mdx\";\nimport path from \"node:path\";\nimport { createCache } from \"@/utils/async-cache\";\n\nexport interface MDXStoreDynamicData<Frontmatter, Attached = unknown> {\n id: string;\n frontmatter: Frontmatter;\n compile: () => Promise<CompiledMDX<Frontmatter> & Attached>;\n}\n\nlet corePromise: Promise<Core>;\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection\n ? GetCollectionConfig<Config, Name>[\"$inferFrontmatter\"]\n : never;\n\nexport async function mdxStoreDynamic<Config, Name extends string, Attached>(\n config: Config,\n coreOptions: CoreOptions,\n name: Name,\n base: string,\n _frontmatter: Record<string, unknown>,\n jsxRuntime: unknown,\n): Promise<FileCollectionStore<MDXStoreDynamicData<GetFrontmatter<Config, Name>, Attached>>> {\n corePromise ??= (async () => {\n const core = new Core(coreOptions);\n await core.init({\n config: config as Record<string, unknown>,\n });\n return core;\n })();\n const core = await corePromise;\n const frontmatter = _frontmatter as Record<string, GetFrontmatter<Config, Name>>;\n const collection = core.getCollection(name);\n if (!collection || !(collection instanceof MDXCollection))\n throw new Error(\"invalid collection name\");\n\n const merged: Record<string, MDXStoreDynamicData<GetFrontmatter<Config, Name>, Attached>> = {};\n const cache = createCache<CompiledMDX<GetFrontmatter<Config, Name>> & Attached>();\n\n for (const [k, v] of Object.entries(frontmatter)) {\n merged[k] = {\n id: k,\n frontmatter: v,\n async compile() {\n return cache.cached(k, async () => {\n const filePath = path.join(base, k);\n let content = (await fs.readFile(filePath)).toString();\n content = fumaMatter(content).content;\n\n const compiled = await buildMDX(core, collection, {\n filePath,\n source: content,\n frontmatter: v as unknown as Record<string, unknown>,\n isDevelopment: false,\n environment: \"runtime\",\n });\n\n return (await executeMdx(String(compiled.value), {\n baseUrl: pathToFileURL(filePath),\n jsxRuntime,\n })) as CompiledMDX<GetFrontmatter<Config, Name>> & Attached;\n });\n },\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport type MdxContent = MDXContent;\n\ninterface Options {\n scope?: Record<string, unknown>;\n baseUrl?: string | URL;\n jsxRuntime?: unknown;\n}\n\nconst AsyncFunction: new (...args: string[]) => (...args: unknown[]) => Promise<unknown> =\n Object.getPrototypeOf(executeMdx).constructor;\n\nasync function executeMdx(compiled: string, options: Options = {}) {\n const { opts: scopeOpts, ...scope } = options.scope ?? {};\n const fullScope = {\n opts: {\n ...(scopeOpts as object),\n ...(options.jsxRuntime as object),\n baseUrl: options.baseUrl,\n },\n ...scope,\n };\n\n const hydrateFn = new AsyncFunction(...Object.keys(fullScope), compiled);\n return (await hydrateFn.apply(hydrateFn, Object.values(fullScope))) as {\n default: MdxContent;\n };\n}\n\nexport type { WithExtractedReferences, WithGit } from \"./runtime\";\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,IAAIA;AAOJ,eAAsB,gBACpB,QACA,aACA,MACA,MACA,cACA,YAC2F;AAC3F,kBAAiB,YAAY;EAC3B,MAAMC,SAAO,IAAI,KAAK,YAAY;AAClC,QAAMA,OAAK,KAAK,EACN,QACT,CAAC;AACF,SAAOA;KACL;CACJ,MAAM,OAAO,MAAM;CACnB,MAAM,cAAc;CACpB,MAAM,aAAa,KAAK,cAAc,KAAK;AAC3C,KAAI,CAAC,cAAc,EAAE,sBAAsB,eACzC,OAAM,IAAI,MAAM,0BAA0B;CAE5C,MAAMC,SAAsF,EAAE;CAC9F,MAAM,QAAQ,aAAmE;AAEjF,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,YAAY,CAC9C,QAAO,KAAK;EACV,IAAI;EACJ,aAAa;EACb,MAAM,UAAU;AACd,UAAO,MAAM,OAAO,GAAG,YAAY;IACjC,MAAM,WAAW,KAAK,KAAK,MAAM,EAAE;IACnC,IAAI,WAAW,MAAM,GAAG,SAAS,SAAS,EAAE,UAAU;AACtD,cAAU,WAAW,QAAQ,CAAC;IAE9B,MAAM,WAAW,MAAM,SAAS,MAAM,YAAY;KAChD;KACA,QAAQ;KACR,aAAa;KACb,eAAe;KACf,aAAa;KACd,CAAC;AAEF,WAAQ,MAAM,WAAW,OAAO,SAAS,MAAM,EAAE;KAC/C,SAAS,cAAc,SAAS;KAChC;KACD,CAAC;KACF;;EAEL;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO;;AAW9C,MAAMC,gBACJ,OAAO,eAAe,WAAW,CAAC;AAEpC,eAAe,WAAW,UAAkB,UAAmB,EAAE,EAAE;CACjE,MAAM,EAAE,MAAM,WAAW,GAAG,UAAU,QAAQ,SAAS,EAAE;CACzD,MAAM,YAAY;EAChB,MAAM;GACJ,GAAI;GACJ,GAAI,QAAQ;GACZ,SAAS,QAAQ;GAClB;EACD,GAAG;EACJ;CAED,MAAM,YAAY,IAAI,cAAc,GAAG,OAAO,KAAK,UAAU,EAAE,SAAS;AACxE,QAAQ,MAAM,UAAU,MAAM,WAAW,OAAO,OAAO,UAAU,CAAC"}
@@ -1,49 +1,10 @@
1
- import { N as CompiledMDX, Z as ExtractedReference, k as MDXCollection, q as GetCollectionConfig, x as VersionControlFileData } from "../../core-CRWvbE7W.js";
2
- import "../../store-BtGmZUAC.js";
3
- import { FileCollectionStore } from "../runtime/file-store.js";
4
-
5
- //#region src/collections/mdx/runtime.d.ts
6
-
7
- interface MDXStoreData<Frontmatter> {
8
- id: string;
9
- compiled: CompiledMDX<Frontmatter>;
10
- }
11
- type GetFrontmatter<Config, Name extends string> = GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter> ? _Frontmatter : never;
12
- declare function mdxStore<Config, Name extends string>(_name: Name, base: string, _input: Record<string, unknown>): FileCollectionStore<MDXStoreData<GetFrontmatter<Config, Name>>>;
13
- interface MDXStoreLazyData<Frontmatter> {
14
- id: string;
15
- frontmatter: Frontmatter;
16
- load: () => Promise<CompiledMDX<Frontmatter>>;
17
- }
18
- declare function mdxStoreLazy<Config, Name extends string>(_name: Name, base: string, _input: {
19
- head: Record<string, unknown>;
20
- body: Record<string, () => Promise<unknown>>;
21
- }): FileCollectionStore<MDXStoreLazyData<GetFrontmatter<Config, Name>>>;
22
- declare function $attachCompiled<Add>(): <T>(data: T) => T extends MDXStoreData<unknown> ? T & {
23
- compiled: Add;
24
- } : T extends MDXStoreLazyData<unknown> ? T & {
25
- load: () => Promise<Awaited<ReturnType<T["load"]>> & Add>;
26
- } : T;
27
- declare function $extractedReferences(): <T>(data: T) => T extends MDXStoreData<unknown> ? T & {
28
- compiled: {
29
- /**
30
- * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.
31
- */
32
- extractedReferences: ExtractedReference[];
33
- };
34
- } : T extends MDXStoreLazyData<unknown> ? T & {
35
- load: () => Promise<Awaited<ReturnType<T["load"]>> & {
36
- /**
37
- * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.
38
- */
39
- extractedReferences: ExtractedReference[];
40
- }>;
41
- } : T;
42
- declare function $versionControl(): <T>(data: T) => T extends MDXStoreData<unknown> ? T & {
43
- compiled: VersionControlFileData;
44
- } : T extends MDXStoreLazyData<unknown> ? T & {
45
- load: () => Promise<Awaited<ReturnType<T["load"]>> & VersionControlFileData>;
46
- } : T;
47
- //#endregion
48
- export { $attachCompiled, $extractedReferences, $versionControl, MDXStoreData, MDXStoreLazyData, mdxStore, mdxStoreLazy };
49
- //# sourceMappingURL=runtime.d.ts.map
1
+ import "../../core-BO3b8jMg.js";
2
+ import "../../dynamic-CTYYdl7_.js";
3
+ import "../../index-Da88Sj8w.js";
4
+ import "../../fs-D34Sztbh.js";
5
+ import "../../store-DiuGdV5M.js";
6
+ import "../../file-store-laO4IjvB.js";
7
+ import "../../mdx-Dt9hirUu.js";
8
+ import "../../git-2CjUW3M5.js";
9
+ import { a as mdxStore, i as WithGit, n as MDXStoreLazyData, o as mdxStoreLazy, r as WithExtractedReferences, t as MDXStoreData } from "../../runtime-HN-HSB0Z.js";
10
+ export { MDXStoreData, MDXStoreLazyData, WithExtractedReferences, WithGit, mdxStore, mdxStoreLazy };
@@ -3,7 +3,7 @@ import { FileCollectionStore } from "../runtime/file-store.js";
3
3
  //#region src/collections/mdx/runtime.ts
4
4
  function mdxStore(_name, base, _input) {
5
5
  const input = _input;
6
- const merged = input;
6
+ const merged = {};
7
7
  for (const [key, value] of Object.entries(input)) merged[key] = {
8
8
  id: key,
9
9
  compiled: value
@@ -20,16 +20,7 @@ function mdxStoreLazy(_name, base, _input) {
20
20
  };
21
21
  return new FileCollectionStore(base, merged);
22
22
  }
23
- function $attachCompiled() {
24
- return (data) => data;
25
- }
26
- function $extractedReferences() {
27
- return $attachCompiled();
28
- }
29
- function $versionControl() {
30
- return $attachCompiled();
31
- }
32
23
 
33
24
  //#endregion
34
- export { $attachCompiled, $extractedReferences, $versionControl, mdxStore, mdxStoreLazy };
25
+ export { mdxStore, mdxStoreLazy };
35
26
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","names":["merged: Record<string, MDXStoreLazyData<GetFrontmatter<Config, Name>>>"],"sources":["../../../src/collections/mdx/runtime.ts"],"sourcesContent":["import type { GetCollectionConfig } from \"@/types\";\nimport type { MDXCollection } from \"@/collections/mdx\";\nimport { FileCollectionStore } from \"@/collections/runtime/file-store\";\nimport type { ExtractedReference } from \"@/collections/mdx/remark-postprocess\";\nimport type { VersionControlFileData } from \"@/plugins/git\";\nimport type { CompiledMDX } from \"@/collections/mdx/build-mdx\";\n\nexport interface MDXStoreData<Frontmatter> {\n id: string;\n compiled: CompiledMDX<Frontmatter>;\n}\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection<infer _Frontmatter>\n ? _Frontmatter\n : never;\n\nexport function mdxStore<Config, Name extends string>(\n _name: Name,\n base: string,\n _input: Record<string, unknown>,\n): FileCollectionStore<MDXStoreData<GetFrontmatter<Config, Name>>> {\n const input = _input as Record<string, CompiledMDX<GetFrontmatter<Config, Name>>>;\n const merged = input as unknown as Record<string, MDXStoreData<GetFrontmatter<Config, Name>>>;\n\n for (const [key, value] of Object.entries(input)) {\n merged[key] = {\n id: key,\n compiled: value,\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport interface MDXStoreLazyData<Frontmatter> {\n id: string;\n frontmatter: Frontmatter;\n load: () => Promise<CompiledMDX<Frontmatter>>;\n}\n\nexport function mdxStoreLazy<Config, Name extends string>(\n _name: Name,\n base: string,\n _input: {\n head: Record<string, unknown>;\n body: Record<string, () => Promise<unknown>>;\n },\n): FileCollectionStore<MDXStoreLazyData<GetFrontmatter<Config, Name>>> {\n const input = _input as {\n head: Record<string, GetFrontmatter<Config, Name>>;\n body: Record<string, () => Promise<CompiledMDX<GetFrontmatter<Config, Name>>>>;\n };\n const merged: Record<string, MDXStoreLazyData<GetFrontmatter<Config, Name>>> = {};\n\n for (const [key, value] of Object.entries(input.head)) {\n merged[key] = {\n id: key,\n frontmatter: value,\n load: input.body[key],\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport function $attachCompiled<Add>() {\n return <T>(data: T) =>\n data as T extends MDXStoreData<unknown>\n ? T & {\n compiled: Add;\n }\n : T extends MDXStoreLazyData<unknown>\n ? T & {\n load: () => Promise<Awaited<ReturnType<T[\"load\"]>> & Add>;\n }\n : T;\n}\n\nexport function $extractedReferences() {\n return $attachCompiled<{\n /**\n * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.\n */\n extractedReferences: ExtractedReference[];\n }>();\n}\n\nexport function $versionControl() {\n return $attachCompiled<VersionControlFileData>();\n}\n"],"mappings":";;;AAiBA,SAAgB,SACd,OACA,MACA,QACiE;CACjE,MAAM,QAAQ;CACd,MAAM,SAAS;AAEf,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,QAAO,OAAO;EACZ,IAAI;EACJ,UAAU;EACX;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO;;AAS9C,SAAgB,aACd,OACA,MACA,QAIqE;CACrE,MAAM,QAAQ;CAId,MAAMA,SAAyE,EAAE;AAEjF,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,KAAK,CACnD,QAAO,OAAO;EACZ,IAAI;EACJ,aAAa;EACb,MAAM,MAAM,KAAK;EAClB;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO;;AAG9C,SAAgB,kBAAuB;AACrC,SAAW,SACT;;AAWJ,SAAgB,uBAAuB;AACrC,QAAO,iBAKH;;AAGN,SAAgB,kBAAkB;AAChC,QAAO,iBAAyC"}
1
+ {"version":3,"file":"runtime.js","names":["merged: Record<string, MDXStoreData<GetFrontmatter<Config, Name>, Attached>>","merged: Record<string, MDXStoreLazyData<GetFrontmatter<Config, Name>, Attached>>"],"sources":["../../../src/collections/mdx/runtime.ts"],"sourcesContent":["import type { GetCollectionConfig } from \"@/types\";\nimport type { MDXCollection } from \"@/collections/mdx\";\nimport { FileCollectionStore } from \"@/collections/runtime/file-store\";\nimport type { ExtractedReference } from \"@/collections/mdx/remark-postprocess\";\nimport type { GitFileData } from \"@/plugins/git\";\nimport type { CompiledMDX } from \"@/collections/mdx/build-mdx\";\n\nexport interface MDXStoreData<Frontmatter, Attached = unknown> {\n id: string;\n compiled: CompiledMDX<Frontmatter> & Attached;\n}\n\ntype GetFrontmatter<Config, Name extends string> =\n GetCollectionConfig<Config, Name> extends MDXCollection\n ? GetCollectionConfig<Config, Name>[\"$inferFrontmatter\"]\n : never;\n\nexport function mdxStore<Config, Name extends string, Attached>(\n _name: Name,\n base: string,\n _input: Record<string, unknown>,\n): FileCollectionStore<MDXStoreData<GetFrontmatter<Config, Name>, Attached>> {\n const input = _input as Record<string, CompiledMDX<GetFrontmatter<Config, Name>> & Attached>;\n const merged: Record<string, MDXStoreData<GetFrontmatter<Config, Name>, Attached>> = {};\n\n for (const [key, value] of Object.entries(input)) {\n merged[key] = {\n id: key,\n compiled: value,\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport interface MDXStoreLazyData<Frontmatter, Attached> {\n id: string;\n frontmatter: Frontmatter;\n load: () => Promise<CompiledMDX<Frontmatter> & Attached>;\n}\n\nexport function mdxStoreLazy<Config, Name extends string, Attached>(\n _name: Name,\n base: string,\n _input: {\n head: Record<string, unknown>;\n body: Record<string, () => Promise<unknown>>;\n },\n): FileCollectionStore<MDXStoreLazyData<GetFrontmatter<Config, Name>, Attached>> {\n const input = _input as {\n head: Record<string, GetFrontmatter<Config, Name>>;\n body: Record<string, () => Promise<CompiledMDX<GetFrontmatter<Config, Name>> & Attached>>;\n };\n const merged: Record<string, MDXStoreLazyData<GetFrontmatter<Config, Name>, Attached>> = {};\n\n for (const [key, value] of Object.entries(input.head)) {\n merged[key] = {\n id: key,\n frontmatter: value,\n load: input.body[key],\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n\nexport interface WithExtractedReferences {\n /**\n * extracted references (e.g. hrefs, paths), useful for analyzing relationships between pages.\n */\n extractedReferences: ExtractedReference[];\n}\n\nexport type WithGit = GitFileData;\n"],"mappings":";;;AAiBA,SAAgB,SACd,OACA,MACA,QAC2E;CAC3E,MAAM,QAAQ;CACd,MAAMA,SAA+E,EAAE;AAEvF,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,QAAO,OAAO;EACZ,IAAI;EACJ,UAAU;EACX;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO;;AAS9C,SAAgB,aACd,OACA,MACA,QAI+E;CAC/E,MAAM,QAAQ;CAId,MAAMC,SAAmF,EAAE;AAE3F,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,KAAK,CACnD,QAAO,OAAO;EACZ,IAAI;EACJ,aAAa;EACb,MAAM,MAAM,KAAK;EAClB;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO"}
@@ -1,2 +1,6 @@
1
- import { A as MDXCollectionConfig, M as defineMDX, N as CompiledMDX, P as CompiledMDXData, Z as ExtractedReference, j as MDXCollectionHandler, k as MDXCollection } from "../core-CRWvbE7W.js";
2
- export { CompiledMDX, CompiledMDXData, ExtractedReference, MDXCollection, MDXCollectionConfig, MDXCollectionHandler, defineMDX };
1
+ import "../core-BO3b8jMg.js";
2
+ import "../dynamic-CTYYdl7_.js";
3
+ import "../index-Da88Sj8w.js";
4
+ import "../fs-D34Sztbh.js";
5
+ import { a as ExtractedReference, i as CompiledMDX, n as MDXCollectionConfig, r as mdxCollection, t as MDXCollection } from "../mdx-Dt9hirUu.js";
6
+ export { CompiledMDX, ExtractedReference, MDXCollection, MDXCollectionConfig, mdxCollection };