fuma-content 1.2.1 → 1.2.2

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 (70) hide show
  1. package/dist/bun/index.d.ts +1 -1
  2. package/dist/bun/index.js +1 -1
  3. package/dist/collections/data/runtime.d.ts +2 -2
  4. package/dist/collections/data.d.ts +3 -3
  5. package/dist/collections/data.js +1 -1
  6. package/dist/collections/fs.d.ts +1 -1
  7. package/dist/collections/fs.js +1 -1
  8. package/dist/collections/index.d.ts +1 -1
  9. package/dist/collections/index.js +1 -1
  10. package/dist/collections/json/loader-webpack.d.ts +1 -1
  11. package/dist/collections/mdx/loader-webpack.d.ts +1 -1
  12. package/dist/collections/mdx/react.d.ts +2 -2
  13. package/dist/collections/mdx/runtime-browser.d.ts +2 -2
  14. package/dist/collections/mdx/runtime-dynamic.d.ts +4 -4
  15. package/dist/collections/mdx/runtime-dynamic.js +1 -1
  16. package/dist/collections/mdx/runtime.d.ts +1 -1
  17. package/dist/collections/mdx/vue.d.ts +2 -2
  18. package/dist/collections/mdx.d.ts +1 -1
  19. package/dist/collections/mdx.js +1 -1
  20. package/dist/collections/obsidian.d.ts +1 -1
  21. package/dist/collections/runtime/file-store.d.ts +1 -1
  22. package/dist/collections/runtime/store.d.ts +1 -1
  23. package/dist/collections/yaml/loader-webpack.d.ts +1 -1
  24. package/dist/{collections-BuskUhft.js → collections-Cl-23FUa.js} +8 -4
  25. package/dist/collections-Cl-23FUa.js.map +1 -0
  26. package/dist/config/index.d.ts +1 -1
  27. package/dist/{core-15rgY8JW.d.ts → core-1dkeRoD-.d.ts} +3 -2
  28. package/dist/{core-15rgY8JW.d.ts.map → core-1dkeRoD-.d.ts.map} +1 -1
  29. package/dist/{core-BfIQeHzH.js → core-Dkl2eUwU.js} +2 -2
  30. package/dist/{core-BfIQeHzH.js.map → core-Dkl2eUwU.js.map} +1 -1
  31. package/dist/{dynamic-CwBRfhBm.d.ts → dynamic-DGbONJ46.d.ts} +2 -2
  32. package/dist/{dynamic-CwBRfhBm.d.ts.map → dynamic-DGbONJ46.d.ts.map} +1 -1
  33. package/dist/dynamic.d.ts +1 -1
  34. package/dist/{file-store-270Y4Sx7.d.ts → file-store-NLjnayNa.d.ts} +2 -2
  35. package/dist/{file-store-270Y4Sx7.d.ts.map → file-store-NLjnayNa.d.ts.map} +1 -1
  36. package/dist/{fs-DDVhjRBi.d.ts → fs-C8dHWQw9.d.ts} +2 -2
  37. package/dist/{fs-DDVhjRBi.d.ts.map → fs-C8dHWQw9.d.ts.map} +1 -1
  38. package/dist/{git-Ce7r2zfM.d.ts → git-W7QH8hQh.d.ts} +2 -2
  39. package/dist/{git-Ce7r2zfM.d.ts.map → git-W7QH8hQh.d.ts.map} +1 -1
  40. package/dist/{index-B9DAFF8c.d.ts → index-h97OPng4.d.ts} +3 -3
  41. package/dist/{index-B9DAFF8c.d.ts.map → index-h97OPng4.d.ts.map} +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +2 -2
  44. package/dist/{mdx-BfaapI6d.d.ts → mdx-CBjuia2v.d.ts} +3 -3
  45. package/dist/{mdx-BfaapI6d.d.ts.map → mdx-CBjuia2v.d.ts.map} +1 -1
  46. package/dist/next/index.d.ts +1 -1
  47. package/dist/next/index.js +1 -1
  48. package/dist/node/loader.d.ts +1 -1
  49. package/dist/node/loader.js +1 -1
  50. package/dist/plugins/git.d.ts +1 -1
  51. package/dist/plugins/git.js +2 -2
  52. package/dist/plugins/git.js.map +1 -1
  53. package/dist/plugins/json-schema.d.ts +1 -1
  54. package/dist/plugins/json-schema.js +2 -2
  55. package/dist/plugins/json-schema.js.map +1 -1
  56. package/dist/plugins/loader/index.d.ts +1 -1
  57. package/dist/plugins/loader/index.js +4 -7
  58. package/dist/plugins/loader/index.js.map +1 -1
  59. package/dist/plugins/loader/webpack.d.ts +1 -1
  60. package/dist/plugins/loader/webpack.js +1 -1
  61. package/dist/{runtime-bpro4VYw.d.ts → runtime-CY1liEj_.d.ts} +5 -5
  62. package/dist/{runtime-bpro4VYw.d.ts.map → runtime-CY1liEj_.d.ts.map} +1 -1
  63. package/dist/{runtime-browser-BT3GpIH7.d.ts → runtime-browser-BqhaLAei.d.ts} +4 -4
  64. package/dist/{runtime-browser-BT3GpIH7.d.ts.map → runtime-browser-BqhaLAei.d.ts.map} +1 -1
  65. package/dist/{store-Cc6y2CDE.d.ts → store-DySTeDAM.d.ts} +2 -2
  66. package/dist/{store-Cc6y2CDE.d.ts.map → store-DySTeDAM.d.ts.map} +1 -1
  67. package/dist/vite/index.d.ts +1 -1
  68. package/dist/vite/index.js +1 -1
  69. package/package.json +1 -1
  70. package/dist/collections-BuskUhft.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { n as CoreOptions, t as Core } from "../core-15rgY8JW.js";
1
+ import { n as CoreOptions, t as Core } from "../core-1dkeRoD-.js";
2
2
  import { BunPlugin } from "bun";
3
3
 
4
4
  //#region src/bun/index.d.ts
package/dist/bun/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as Core } from "../core-BfIQeHzH.js";
1
+ import { t as Core } from "../core-Dkl2eUwU.js";
2
2
  import { loaderPlugin } from "../plugins/loader/index.js";
3
3
  import { pathToFileURL } from "node:url";
4
4
  //#region src/bun/index.ts
@@ -1,6 +1,6 @@
1
- import { D as GetCollectionConfig } from "../../core-15rgY8JW.js";
1
+ import { D as GetCollectionConfig } from "../../core-1dkeRoD-.js";
2
2
  import { DataCollection } from "../data.js";
3
- import { t as FileCollectionStore } from "../../file-store-270Y4Sx7.js";
3
+ import { t as FileCollectionStore } from "../../file-store-NLjnayNa.js";
4
4
 
5
5
  //#region src/collections/data/runtime.d.ts
6
6
  declare function dataStore<Config, Name extends string>(_name: Name, base: string, input: Record<string, unknown>): FileCollectionStore<{
@@ -1,6 +1,6 @@
1
- import { v as AsyncPipe } from "../core-15rgY8JW.js";
2
- import { n as LoaderConfig } from "../index-B9DAFF8c.js";
3
- import { n as FileSystemCollectionConfig, t as FileSystemCollection } from "../fs-DDVhjRBi.js";
1
+ import { v as AsyncPipe } from "../core-1dkeRoD-.js";
2
+ import { n as LoaderConfig } from "../index-h97OPng4.js";
3
+ import { n as FileSystemCollectionConfig, t as FileSystemCollection } from "../fs-C8dHWQw9.js";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
5
 
6
6
  //#region src/collections/data.d.ts
@@ -1,4 +1,4 @@
1
- import { r as asyncPipe } from "../collections-BuskUhft.js";
1
+ import { r as asyncPipe } from "../collections-Cl-23FUa.js";
2
2
  import { n as slash } from "../code-generator-pLUE7Rk7.js";
3
3
  import { loaderHook } from "../plugins/loader/index.js";
4
4
  import { FileSystemCollection } from "./fs.js";
@@ -1,2 +1,2 @@
1
- import { n as FileSystemCollectionConfig, r as fileSystemCollection, t as FileSystemCollection } from "../fs-DDVhjRBi.js";
1
+ import { n as FileSystemCollectionConfig, r as fileSystemCollection, t as FileSystemCollection } from "../fs-C8dHWQw9.js";
2
2
  export { FileSystemCollection, FileSystemCollectionConfig, fileSystemCollection };
@@ -1,4 +1,4 @@
1
- import { t as Collection } from "../collections-BuskUhft.js";
1
+ import { t as Collection } from "../collections-Cl-23FUa.js";
2
2
  import { t as createCache } from "../async-cache-C47yxLCv.js";
3
3
  import path from "node:path";
4
4
  import picomatch from "picomatch";
@@ -1,2 +1,2 @@
1
- import { _ as defineCollectionHook, g as CollectionHookContext, h as CollectionHook, m as Collection } from "../core-15rgY8JW.js";
1
+ import { _ as defineCollectionHook, g as CollectionHookContext, h as CollectionHook, m as Collection } from "../core-1dkeRoD-.js";
2
2
  export { Collection, CollectionHook, CollectionHookContext, defineCollectionHook };
@@ -1,2 +1,2 @@
1
- import { n as defineCollectionHook, t as Collection } from "../collections-BuskUhft.js";
1
+ import { n as defineCollectionHook, t as Collection } from "../collections-Cl-23FUa.js";
2
2
  export { Collection, defineCollectionHook };
@@ -1,4 +1,4 @@
1
- import { c as WebpackLoader } from "../../index-B9DAFF8c.js";
1
+ import { c as WebpackLoader } from "../../index-h97OPng4.js";
2
2
 
3
3
  //#region src/collections/json/loader-webpack.d.ts
4
4
  declare const _default: WebpackLoader;
@@ -1,4 +1,4 @@
1
- import { c as WebpackLoader } from "../../index-B9DAFF8c.js";
1
+ import { c as WebpackLoader } from "../../index-h97OPng4.js";
2
2
 
3
3
  //#region src/collections/mdx/loader-webpack.d.ts
4
4
  declare const _default: WebpackLoader;
@@ -1,5 +1,5 @@
1
- import { i as CompiledMDX } from "../../mdx-BfaapI6d.js";
2
- import { t as MDXStoreBrowserData } from "../../runtime-browser-BT3GpIH7.js";
1
+ import { i as CompiledMDX } from "../../mdx-CBjuia2v.js";
2
+ import { t as MDXStoreBrowserData } from "../../runtime-browser-BqhaLAei.js";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/collections/mdx/react.d.ts
@@ -1,3 +1,3 @@
1
- import { n as _internal_data, r as mdxStoreBrowser, t as MDXStoreBrowserData } from "../../runtime-browser-BT3GpIH7.js";
2
- import { r as WithGit } from "../../runtime-bpro4VYw.js";
1
+ import { n as _internal_data, r as mdxStoreBrowser, t as MDXStoreBrowserData } from "../../runtime-browser-BqhaLAei.js";
2
+ import { r as WithGit } from "../../runtime-CY1liEj_.js";
3
3
  export { MDXStoreBrowserData, WithGit, _internal_data, mdxStoreBrowser };
@@ -1,7 +1,7 @@
1
- import { D as GetCollectionConfig, n as CoreOptions } from "../../core-15rgY8JW.js";
2
- import { t as FileCollectionStore } from "../../file-store-270Y4Sx7.js";
3
- import { i as CompiledMDX, t as MDXCollection } from "../../mdx-BfaapI6d.js";
4
- import { r as WithGit } from "../../runtime-bpro4VYw.js";
1
+ import { D as GetCollectionConfig, n as CoreOptions } from "../../core-1dkeRoD-.js";
2
+ import { t as FileCollectionStore } from "../../file-store-NLjnayNa.js";
3
+ import { i as CompiledMDX, t as MDXCollection } from "../../mdx-CBjuia2v.js";
4
+ import { r as WithGit } from "../../runtime-CY1liEj_.js";
5
5
  import { MDXContent } from "mdx/types";
6
6
 
7
7
  //#region src/collections/mdx/runtime-dynamic.d.ts
@@ -1,4 +1,4 @@
1
- import { t as Core } from "../../core-BfIQeHzH.js";
1
+ import { t as Core } from "../../core-Dkl2eUwU.js";
2
2
  import "../../validation-Bf_v2L3p.js";
3
3
  import { t as createCache } from "../../async-cache-C47yxLCv.js";
4
4
  import { MDXCollection } from "../mdx.js";
@@ -1,2 +1,2 @@
1
- import { a as mdxStoreLazy, i as mdxStore, n as MDXStoreLazyData, r as WithGit, t as MDXStoreData } from "../../runtime-bpro4VYw.js";
1
+ import { a as mdxStoreLazy, i as mdxStore, n as MDXStoreLazyData, r as WithGit, t as MDXStoreData } from "../../runtime-CY1liEj_.js";
2
2
  export { MDXStoreData, MDXStoreLazyData, WithGit, mdxStore, mdxStoreLazy };
@@ -1,5 +1,5 @@
1
- import { i as CompiledMDX } from "../../mdx-BfaapI6d.js";
2
- import { t as MDXStoreBrowserData } from "../../runtime-browser-BT3GpIH7.js";
1
+ import { i as CompiledMDX } from "../../mdx-CBjuia2v.js";
2
+ import { t as MDXStoreBrowserData } from "../../runtime-browser-BqhaLAei.js";
3
3
  import * as vue from "vue";
4
4
 
5
5
  //#region src/collections/mdx/vue.vue.d.ts
@@ -1,2 +1,2 @@
1
- import { a as LinkReference, i as CompiledMDX, n as MDXCollectionConfig, r as mdxCollection, t as MDXCollection } from "../mdx-BfaapI6d.js";
1
+ import { a as LinkReference, i as CompiledMDX, n as MDXCollectionConfig, r as mdxCollection, t as MDXCollection } from "../mdx-CBjuia2v.js";
2
2
  export { CompiledMDX, LinkReference, MDXCollection, MDXCollectionConfig, mdxCollection };
@@ -1,4 +1,4 @@
1
- import { i as pipe, r as asyncPipe } from "../collections-BuskUhft.js";
1
+ import { i as pipe, r as asyncPipe } from "../collections-Cl-23FUa.js";
2
2
  import { n as slash } from "../code-generator-pLUE7Rk7.js";
3
3
  import { r as validate } from "../validation-Bf_v2L3p.js";
4
4
  import { t as createCache } from "../async-cache-C47yxLCv.js";
@@ -1,4 +1,4 @@
1
- import { n as MDXCollectionConfig, t as MDXCollection } from "../mdx-BfaapI6d.js";
1
+ import { n as MDXCollectionConfig, t as MDXCollection } from "../mdx-CBjuia2v.js";
2
2
  import { StandardSchemaV1 } from "@standard-schema/spec";
3
3
 
4
4
  //#region src/collections/obsidian.d.ts
@@ -1,2 +1,2 @@
1
- import { n as FileInfo, t as FileCollectionStore } from "../../file-store-270Y4Sx7.js";
1
+ import { n as FileInfo, t as FileCollectionStore } from "../../file-store-NLjnayNa.js";
2
2
  export { FileCollectionStore, FileInfo };
@@ -1,2 +1,2 @@
1
- import { n as MapCollectionStore, t as CollectionStore } from "../../store-Cc6y2CDE.js";
1
+ import { n as MapCollectionStore, t as CollectionStore } from "../../store-DySTeDAM.js";
2
2
  export { CollectionStore, MapCollectionStore };
@@ -1,4 +1,4 @@
1
- import { c as WebpackLoader } from "../../index-B9DAFF8c.js";
1
+ import { c as WebpackLoader } from "../../index-h97OPng4.js";
2
2
 
3
3
  //#region src/collections/yaml/loader-webpack.d.ts
4
4
  declare const _default: WebpackLoader;
@@ -78,13 +78,17 @@ var Collection = class {
78
78
  return this.pluginHooks.get(hook.id);
79
79
  }
80
80
  };
81
- function defineCollectionHook(init) {
82
- return {
81
+ function defineCollectionHook(...args) {
82
+ if (args.length === 1) return {
83
83
  id: Symbol(),
84
- create: init
84
+ create: args[0]
85
+ };
86
+ return {
87
+ id: args[0],
88
+ create: args[1]
85
89
  };
86
90
  }
87
91
  //#endregion
88
92
  export { asyncHook as a, pipe as i, defineCollectionHook as n, hook as o, asyncPipe as r, Collection as t };
89
93
 
90
- //# sourceMappingURL=collections-BuskUhft.js.map
94
+ //# sourceMappingURL=collections-Cl-23FUa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections-Cl-23FUa.js","names":[],"sources":["../src/utils/hook.ts","../src/utils/pipe.ts","../src/collections/index.ts"],"sourcesContent":["import type { Awaitable } from \"@/types\";\n\nexport interface Hook<Context = undefined> {\n /**\n * add a hook\n *\n * @returns the same pipe instance\n */\n hook: (fn: (context: Context) => void) => Hook<Context>;\n run: (context: Context) => void;\n $inferHandler: (context: Context) => Awaitable<void>;\n}\n\nexport interface AsyncHook<Context = undefined> {\n /**\n * add a hook\n *\n * @returns the same pipe instance\n */\n hook: (fn: (context: Context) => Awaitable<void>) => AsyncHook<Context>;\n run: (context: Context) => Awaitable<void>;\n $inferHandler: (context: Context) => Awaitable<void>;\n}\n\nexport function hook<Context>(steps: ((ctx: Context) => void)[] = []): Hook<Context> {\n return {\n async run(ctx) {\n for (const step of steps) step(ctx);\n },\n hook(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n\nexport function asyncHook<Context>(\n steps: ((ctx: Context) => Awaitable<void>)[] = [],\n): AsyncHook<Context> {\n return {\n async run(ctx) {\n await Promise.all(steps.map((step) => step(ctx)));\n },\n hook(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n","import type { Awaitable } from \"@/types\";\n\nexport interface Pipe<Data, Context = undefined> {\n /**\n * add a transformation step\n *\n * @returns the same pipe instance\n */\n pipe: (fn: (data: Data, context: Context) => Data) => Pipe<Data, Context>;\n run: (data: Data, context: Context) => Data;\n $inferHandler: (data: Data, context: Context) => Data;\n}\n\nexport interface AsyncPipe<Data, Context = undefined> {\n /**\n * add a transformation step\n *\n * @returns the same pipe instance\n */\n pipe: (fn: (data: Data, context: Context) => Awaitable<Data>) => AsyncPipe<Data, Context>;\n run: (data: Data, context: Context) => Awaitable<Data>;\n $inferHandler: (data: Data, context: Context) => Awaitable<Data>;\n}\n\nexport function pipe<Data, Context>(\n steps: ((data: Data, context: Context) => Data)[] = [],\n): Pipe<Data, Context> {\n return {\n run(data, ctx) {\n for (const step of steps) {\n data = step(data, ctx);\n }\n return data;\n },\n pipe(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n\nexport function asyncPipe<Data, Context>(\n steps: ((data: Data, context: Context) => Awaitable<Data>)[] = [],\n): AsyncPipe<Data, Context> {\n return {\n async run(data, ctx) {\n for (const step of steps) {\n data = await step(data, ctx);\n }\n return data;\n },\n pipe(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n","import { Core, EmitContext, EmitEntry, PluginOption, ResolvedConfig, ServerContext } from \"@/core\";\nimport { asyncHook, hook } from \"@/utils/hook\";\nimport { asyncPipe } from \"@/utils/pipe\";\n\nexport interface CollectionHookContext {\n core: Core;\n}\n\nexport class Collection {\n private readonly pluginHooks = new Map<symbol | string, unknown>();\n name = null as unknown as string;\n\n /**\n * on config loaded/updated\n */\n readonly onConfig = hook<CollectionHookContext & { config: ResolvedConfig }>();\n /**\n * Configure watch/dev server\n */\n readonly onServer = hook<CollectionHookContext & { server: ServerContext }>();\n readonly onInit = asyncHook<\n CollectionHookContext & {\n /**\n * You can add other collections to load from here\n */\n pendingCollections: Map<string, Collection>;\n }\n >();\n readonly onEmit = asyncPipe<EmitEntry[], EmitContext>();\n readonly plugins: PluginOption[] = [];\n\n pluginHook<T, Options>(hook: CollectionHook<T, Options>, options: Options): T;\n pluginHook<T>(hook: CollectionHook<T>): T;\n\n pluginHook<T, O>(hook: CollectionHook<T, O>, options?: O): T {\n let created = this.pluginHooks.get(hook.id) as T | undefined;\n if (created) return created;\n\n created = hook.create(this, options as O);\n this.pluginHooks.set(hook.id, created);\n return created;\n }\n\n getPluginHook<T>(hook: CollectionHook<T>): T | undefined {\n return this.pluginHooks.get(hook.id) as T | undefined;\n }\n}\n\nexport interface CollectionHook<T = unknown, Options = undefined> {\n id: string | symbol;\n create: (collection: Collection, options: Options) => T;\n}\n\nexport function defineCollectionHook<T, Options = undefined>(\n init: (collection: Collection, options: Options) => T,\n): CollectionHook<T, Options>;\n\nexport function defineCollectionHook<T, Options = undefined>(\n id: string,\n init: (collection: Collection, options: Options) => T,\n): CollectionHook<T, Options>;\n\nexport function defineCollectionHook<T, Options = undefined>(\n ...args:\n | [init: (collection: Collection, options: Options) => T]\n | [id: string, init: (collection: Collection, options: Options) => T]\n): CollectionHook<T, Options> {\n if (args.length === 1)\n return {\n id: Symbol(),\n create: args[0],\n };\n\n return {\n id: args[0],\n create: args[1],\n };\n}\n"],"mappings":";AAwBA,SAAgB,KAAc,QAAoC,EAAE,EAAiB;AACnF,QAAO;EACL,MAAM,IAAI,KAAK;AACb,QAAK,MAAM,QAAQ,MAAO,MAAK,IAAI;;EAErC,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;AAGH,SAAgB,UACd,QAA+C,EAAE,EAC7B;AACpB,QAAO;EACL,MAAM,IAAI,KAAK;AACb,SAAM,QAAQ,IAAI,MAAM,KAAK,SAAS,KAAK,IAAI,CAAC,CAAC;;EAEnD,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;;;ACzBH,SAAgB,KACd,QAAoD,EAAE,EACjC;AACrB,QAAO;EACL,IAAI,MAAM,KAAK;AACb,QAAK,MAAM,QAAQ,MACjB,QAAO,KAAK,MAAM,IAAI;AAExB,UAAO;;EAET,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;AAGH,SAAgB,UACd,QAA+D,EAAE,EACvC;AAC1B,QAAO;EACL,MAAM,IAAI,MAAM,KAAK;AACnB,QAAK,MAAM,QAAQ,MACjB,QAAO,MAAM,KAAK,MAAM,IAAI;AAE9B,UAAO;;EAET,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;;;ACjDH,IAAa,aAAb,MAAwB;CACtB,8BAA+B,IAAI,KAA+B;CAClE,OAAO;;;;CAKP,WAAoB,MAA0D;;;;CAI9E,WAAoB,MAAyD;CAC7E,SAAkB,WAOf;CACH,SAAkB,WAAqC;CACvD,UAAmC,EAAE;CAKrC,WAAiB,MAA4B,SAAgB;EAC3D,IAAI,UAAU,KAAK,YAAY,IAAI,KAAK,GAAG;AAC3C,MAAI,QAAS,QAAO;AAEpB,YAAU,KAAK,OAAO,MAAM,QAAa;AACzC,OAAK,YAAY,IAAI,KAAK,IAAI,QAAQ;AACtC,SAAO;;CAGT,cAAiB,MAAwC;AACvD,SAAO,KAAK,YAAY,IAAI,KAAK,GAAG;;;AAkBxC,SAAgB,qBACd,GAAG,MAGyB;AAC5B,KAAI,KAAK,WAAW,EAClB,QAAO;EACL,IAAI,QAAQ;EACZ,QAAQ,KAAK;EACd;AAEH,QAAO;EACL,IAAI,KAAK;EACT,QAAQ,KAAK;EACd"}
@@ -1,2 +1,2 @@
1
- import { A as WorkspaceConfig, O as EmitConfig, j as defineConfig, k as GlobalConfig } from "../core-15rgY8JW.js";
1
+ import { A as WorkspaceConfig, O as EmitConfig, j as defineConfig, k as GlobalConfig } from "../core-1dkeRoD-.js";
2
2
  export { EmitConfig, GlobalConfig, WorkspaceConfig, defineConfig };
@@ -119,10 +119,11 @@ declare class Collection {
119
119
  getPluginHook<T>(hook: CollectionHook<T>): T | undefined;
120
120
  }
121
121
  interface CollectionHook<T = unknown, Options = undefined> {
122
- id: symbol;
122
+ id: string | symbol;
123
123
  create: (collection: Collection, options: Options) => T;
124
124
  }
125
125
  declare function defineCollectionHook<T, Options = undefined>(init: (collection: Collection, options: Options) => T): CollectionHook<T, Options>;
126
+ declare function defineCollectionHook<T, Options = undefined>(id: string, init: (collection: Collection, options: Options) => T): CollectionHook<T, Options>;
126
127
  //#endregion
127
128
  //#region src/utils/code-generator.d.ts
128
129
  interface CodeGeneratorOptions extends EmitConfig {
@@ -311,4 +312,4 @@ declare class Core {
311
312
  }
312
313
  //#endregion
313
314
  export { WorkspaceConfig as A, Hook as C, GetCollectionConfig as D, Awaitable as E, EmitConfig as O, AsyncHook as S, hook as T, defineCollectionHook as _, EmitOptions as a, asyncPipe as b, PluginContext as c, ResolvedCoreOptions as d, ServerContext as f, CollectionHookContext as g, CollectionHook as h, EmitEntry as i, defineConfig as j, GlobalConfig as k, PluginOption$1 as l, Collection as m, CoreOptions as n, EmitOutput as o, CodeGenerator as p, EmitContext as r, Plugin as s, Core as t, ResolvedConfig as u, AsyncPipe as v, asyncHook as w, pipe as x, Pipe as y };
314
- //# sourceMappingURL=core-15rgY8JW.d.ts.map
315
+ //# sourceMappingURL=core-1dkeRoD-.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-15rgY8JW.d.ts","names":[],"sources":["../src/config/index.ts","../src/types.ts","../src/utils/hook.ts","../src/utils/pipe.ts","../src/collections/index.ts","../src/utils/code-generator.ts","../src/core.ts"],"mappings":"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"}
1
+ {"version":3,"file":"core-1dkeRoD-.d.ts","names":[],"sources":["../src/config/index.ts","../src/types.ts","../src/utils/hook.ts","../src/utils/pipe.ts","../src/collections/index.ts","../src/utils/code-generator.ts","../src/core.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as Collection } from "./collections-BuskUhft.js";
1
+ import { t as Collection } from "./collections-Cl-23FUa.js";
2
2
  import { t as CodeGenerator } from "./code-generator-pLUE7Rk7.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
@@ -218,4 +218,4 @@ var Core = class Core {
218
218
  //#endregion
219
219
  export { Core as t };
220
220
 
221
- //# sourceMappingURL=core-BfIQeHzH.js.map
221
+ //# sourceMappingURL=core-Dkl2eUwU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-BfIQeHzH.js","names":[],"sources":["../src/core.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type { FSWatcher } from \"chokidar\";\nimport { Collection } from \"@/collections\";\nimport type * as Vite from \"vite\";\nimport type { NextConfig } from \"next\";\nimport type { LoadHook } from \"node:module\";\nimport { CodeGenerator } from \"@/utils/code-generator\";\nimport type { Awaitable } from \"@/types\";\nimport type { GlobalConfig } from \"./config\";\n\nexport interface ResolvedConfig extends Omit<GlobalConfig, \"collections\"> {\n collections: Map<string, Collection>;\n}\n\nexport interface EmitEntry {\n /**\n * path relative to output directory\n */\n path: string;\n content: string;\n}\n\nexport interface PluginContext {\n core: Core;\n}\n\nexport interface EmitContext extends PluginContext {\n createCodeGenerator: (\n path: string,\n content: (ctx: { codegen: CodeGenerator }) => Awaitable<void>,\n ) => Promise<EmitEntry>;\n}\n\nexport interface Plugin {\n /**\n * unique name for plugin\n *\n * @example `my-package:my-plugin`\n */\n name: string;\n\n /** when `true`, only keep the last plugin with same `name`. */\n dedupe?: boolean;\n\n /**\n * on config loaded/updated\n */\n config?: (this: PluginContext, config: ResolvedConfig) => Awaitable<void | ResolvedConfig>;\n\n /**\n * called after collection initialization\n */\n collection?: (this: PluginContext, collection: Collection) => Awaitable<void>;\n\n /**\n * Configure watch/dev server\n */\n configureServer?: (this: PluginContext, server: ServerContext) => void;\n\n vite?: {\n createPlugin?: (this: PluginContext) => Vite.PluginOption;\n };\n\n bun?: {\n setup?: (this: PluginContext, build: Bun.PluginBuilder) => Awaitable<void>;\n };\n\n next?: {\n config?: (this: PluginContext, config: NextConfig) => NextConfig;\n };\n\n node?: {\n createLoad?: (this: PluginContext) => Awaitable<LoadHook>;\n };\n}\n\nexport type PluginOption = Awaitable<Plugin | PluginOption[] | false | undefined>;\n\nexport interface ServerContext {\n /**\n * the file watcher, by default all content files are watched, along with other files.\n *\n * make sure to filter when listening to events\n */\n watcher?: FSWatcher;\n}\n\nexport type CoreOptions = Partial<ResolvedCoreOptions>;\n\n/**\n * the resolved options, all paths are absolute\n */\nexport interface ResolvedCoreOptions {\n cwd: string;\n /**\n * Path to source configuration file\n *\n * @defaultValue content.config.ts\n */\n configPath: string;\n /**\n * Directory for output files\n *\n * @defaultValue '.content'\n */\n outDir: string;\n /**\n * the workspace info if this instance is created as a workspace\n */\n workspace?: {\n parent: Core;\n name: string;\n dir: string;\n };\n plugins?: PluginOption;\n}\n\nexport interface EmitOptions {\n /**\n * filter the collections to run emit\n */\n filterCollection?: (collection: Collection) => boolean;\n\n /**\n * filter the workspaces to run emit\n */\n filterWorkspace?: (workspace: string) => boolean;\n\n /**\n * write files\n */\n write?: boolean;\n}\n\nexport interface EmitOutput {\n entries: EmitEntry[];\n workspaces: Record<string, EmitEntry[]>;\n}\n\nasync function getPlugins(pluginOptions: PluginOption[], dedupe = true): Promise<Plugin[]> {\n const plugins: Plugin[] = [];\n for (const option of await Promise.all(pluginOptions)) {\n if (!option) continue;\n if (Array.isArray(option)) plugins.push(...(await getPlugins(option, false)));\n else plugins.push(option);\n }\n\n if (!dedupe) return plugins;\n\n const excludedName = new Set<string>();\n const deduped: Plugin[] = [];\n for (let i = plugins.length - 1; i >= 0; i--) {\n const plugin = plugins[i];\n if (excludedName.has(plugin.name)) continue;\n deduped.unshift(plugin);\n if (plugin.dedupe) excludedName.add(plugin.name);\n }\n return deduped;\n}\n\nexport class Core {\n private readonly workspaces = new Map<string, Core>();\n private readonly options: ResolvedCoreOptions;\n private plugins: Plugin[] = [];\n private config!: ResolvedConfig;\n static defaultOptions = {\n configPath: \"content.config.ts\",\n outDir: \".content\",\n };\n\n /**\n * Convenient cache store, reset when config changes.\n *\n * You can group namespaces in cache key with \":\", like `my-plugin:data`\n */\n readonly cache = new Map<string, unknown>();\n\n constructor(options: CoreOptions = {}) {\n const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();\n this.options = {\n ...options,\n cwd,\n outDir: path.resolve(cwd, options.outDir ?? Core.defaultOptions.outDir),\n configPath: path.resolve(cwd, options.configPath ?? Core.defaultOptions.configPath),\n };\n }\n\n async init({\n config: newConfig,\n }: {\n /**\n * either the default export or all exports of config file.\n */\n config: Awaitable<Record<string, unknown>>;\n }) {\n this.config = await this.initConfig(await newConfig);\n this.cache.clear();\n this.workspaces.clear();\n this.plugins = await getPlugins([\n this.options.plugins,\n this.config.plugins,\n ...this.config.collections.values().map((collection) => collection.plugins),\n ]);\n\n const ctx = this.getPluginContext();\n for (const plugin of this.plugins) {\n const out = await plugin.config?.call(ctx, this.config);\n if (out) this.config = out;\n }\n\n await Promise.all(\n this.config.collections.values().map(async (collection) => {\n collection.onConfig.run({ core: this, config: this.config });\n\n for (const plugin of this.plugins) {\n await plugin.collection?.call(ctx, collection);\n }\n }),\n );\n\n // only support workspaces with max depth 1\n if (!this.options.workspace && this.config.workspaces) {\n await Promise.all(\n Object.entries(this.config.workspaces).map(async ([name, workspace]) => {\n const child = new Core({\n ...this.options,\n cwd: path.resolve(this.options.cwd, workspace.dir),\n workspace: {\n name,\n parent: this,\n dir: workspace.dir,\n },\n });\n\n await child.init({ config: workspace.config as Record<string, unknown> });\n this.workspaces.set(name, child);\n }),\n );\n }\n }\n\n getWorkspace() {\n return this.options.workspace;\n }\n getWorkspaces() {\n return this.workspaces;\n }\n getOptions() {\n return this.options;\n }\n getConfig(): ResolvedConfig {\n return this.config;\n }\n /**\n * The file path of compiled config file, the file may not exist (e.g. on Vite, or still compiling)\n */\n getCompiledConfigPath(): string {\n return path.join(this.options.outDir, \"content.config.mjs\");\n }\n getPlugins(workspace = false) {\n if (workspace) {\n const plugins = [...this.plugins];\n for (const workspace of this.workspaces.values()) {\n plugins.push(...workspace.plugins);\n }\n return plugins;\n }\n\n return this.plugins;\n }\n getCollections(workspace = false): Collection[] {\n const list = Array.from(this.config.collections.values());\n if (workspace) {\n for (const workspace of this.workspaces.values()) {\n list.push(...workspace.getCollections());\n }\n }\n return list;\n }\n getCollection(name: string): Collection | undefined {\n return this.config.collections.get(name);\n }\n getPluginContext(): PluginContext {\n return {\n core: this,\n };\n }\n async initServer(server: ServerContext) {\n const ctx = this.getPluginContext();\n\n server.watcher?.add(this.options.configPath);\n for (const plugin of this.plugins) {\n plugin.configureServer?.call(ctx, server);\n }\n for (const collection of this.getCollections()) {\n collection.onServer.run({ core: this, server });\n }\n for (const workspace of this.workspaces.values()) {\n await workspace.initServer(server);\n }\n }\n\n async clearOutputDirectory() {\n await fs.rm(this.options.outDir, { recursive: true, force: true });\n }\n\n async emit(emitOptions: EmitOptions = {}): Promise<EmitOutput> {\n const emitConfig = this.config.emit;\n const { workspace, outDir } = this.options;\n const { filterCollection, filterWorkspace, write = false } = emitOptions;\n const start = performance.now();\n const ctx: EmitContext = {\n core: this,\n async createCodeGenerator(path, content) {\n const codegen = new CodeGenerator({\n ...emitConfig,\n outDir,\n });\n await content({\n codegen,\n });\n return {\n path,\n content: codegen.toString(),\n };\n },\n };\n\n const out: EmitOutput = {\n entries: [],\n workspaces: {},\n };\n\n const entryMap = new Map<string, EmitEntry>();\n const generated: Awaitable<EmitEntry[]>[] = [];\n for (const collection of this.getCollections()) {\n if (filterCollection && !filterCollection(collection)) continue;\n generated.push(collection.onEmit.run([], ctx));\n }\n for (const entries of await Promise.all(generated)) {\n for (const item of entries) {\n entryMap.set(item.path, item);\n }\n }\n out.entries = Array.from(entryMap.values());\n\n if (write) {\n await Promise.all(\n out.entries.map(async (entry) => {\n const file = path.join(outDir, entry.path);\n await fs.mkdir(path.dirname(file), { recursive: true });\n await fs.writeFile(file, entry.content);\n }),\n );\n\n console.log(\n workspace\n ? `[fuma-content: ${workspace.name}] generated files in ${performance.now() - start}ms`\n : `[fuma-content] generated files in ${performance.now() - start}ms`,\n );\n }\n\n for (const [name, workspace] of this.workspaces.entries()) {\n if (filterWorkspace && !filterWorkspace(name)) continue;\n out.workspaces[name] = (await workspace.emit(emitOptions)).entries;\n }\n\n return out;\n }\n\n /**\n * convert absolute path into a runtime path (relative to **runtime** cwd)\n */\n _toRuntimePath(absolutePath: string) {\n return path.relative(process.cwd(), absolutePath);\n }\n\n private async initConfig(config: Record<string, unknown>): Promise<ResolvedConfig> {\n const collections = new Map<string, Collection>();\n let globalConfig: GlobalConfig;\n\n if (\"default\" in config) {\n globalConfig = config.default as GlobalConfig;\n for (const [k, v] of Object.entries(config)) {\n if (v instanceof Collection) {\n globalConfig.collections ??= {};\n globalConfig.collections[k] = v;\n }\n }\n } else {\n globalConfig = config as GlobalConfig;\n }\n\n globalConfig.collections ??= {};\n const pendingCollections = new Map<string, Collection>(\n Object.entries(globalConfig.collections),\n );\n while (pendingCollections.size > 0) {\n const entries = Array.from(pendingCollections.entries());\n pendingCollections.clear();\n\n await Promise.all(\n entries.map(async ([name, collection]) => {\n if (collections.has(name)) {\n throw new Error(`collection name \"${name}\" was taken.`);\n }\n\n collection.name = name;\n collections.set(name, collection);\n // `pendingCollections` can be updated below\n await collection.onInit.run({ core: this, pendingCollections });\n }),\n );\n }\n\n return {\n ...globalConfig,\n collections,\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"core-Dkl2eUwU.js","names":[],"sources":["../src/core.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type { FSWatcher } from \"chokidar\";\nimport { Collection } from \"@/collections\";\nimport type * as Vite from \"vite\";\nimport type { NextConfig } from \"next\";\nimport type { LoadHook } from \"node:module\";\nimport { CodeGenerator } from \"@/utils/code-generator\";\nimport type { Awaitable } from \"@/types\";\nimport type { GlobalConfig } from \"./config\";\n\nexport interface ResolvedConfig extends Omit<GlobalConfig, \"collections\"> {\n collections: Map<string, Collection>;\n}\n\nexport interface EmitEntry {\n /**\n * path relative to output directory\n */\n path: string;\n content: string;\n}\n\nexport interface PluginContext {\n core: Core;\n}\n\nexport interface EmitContext extends PluginContext {\n createCodeGenerator: (\n path: string,\n content: (ctx: { codegen: CodeGenerator }) => Awaitable<void>,\n ) => Promise<EmitEntry>;\n}\n\nexport interface Plugin {\n /**\n * unique name for plugin\n *\n * @example `my-package:my-plugin`\n */\n name: string;\n\n /** when `true`, only keep the last plugin with same `name`. */\n dedupe?: boolean;\n\n /**\n * on config loaded/updated\n */\n config?: (this: PluginContext, config: ResolvedConfig) => Awaitable<void | ResolvedConfig>;\n\n /**\n * called after collection initialization\n */\n collection?: (this: PluginContext, collection: Collection) => Awaitable<void>;\n\n /**\n * Configure watch/dev server\n */\n configureServer?: (this: PluginContext, server: ServerContext) => void;\n\n vite?: {\n createPlugin?: (this: PluginContext) => Vite.PluginOption;\n };\n\n bun?: {\n setup?: (this: PluginContext, build: Bun.PluginBuilder) => Awaitable<void>;\n };\n\n next?: {\n config?: (this: PluginContext, config: NextConfig) => NextConfig;\n };\n\n node?: {\n createLoad?: (this: PluginContext) => Awaitable<LoadHook>;\n };\n}\n\nexport type PluginOption = Awaitable<Plugin | PluginOption[] | false | undefined>;\n\nexport interface ServerContext {\n /**\n * the file watcher, by default all content files are watched, along with other files.\n *\n * make sure to filter when listening to events\n */\n watcher?: FSWatcher;\n}\n\nexport type CoreOptions = Partial<ResolvedCoreOptions>;\n\n/**\n * the resolved options, all paths are absolute\n */\nexport interface ResolvedCoreOptions {\n cwd: string;\n /**\n * Path to source configuration file\n *\n * @defaultValue content.config.ts\n */\n configPath: string;\n /**\n * Directory for output files\n *\n * @defaultValue '.content'\n */\n outDir: string;\n /**\n * the workspace info if this instance is created as a workspace\n */\n workspace?: {\n parent: Core;\n name: string;\n dir: string;\n };\n plugins?: PluginOption;\n}\n\nexport interface EmitOptions {\n /**\n * filter the collections to run emit\n */\n filterCollection?: (collection: Collection) => boolean;\n\n /**\n * filter the workspaces to run emit\n */\n filterWorkspace?: (workspace: string) => boolean;\n\n /**\n * write files\n */\n write?: boolean;\n}\n\nexport interface EmitOutput {\n entries: EmitEntry[];\n workspaces: Record<string, EmitEntry[]>;\n}\n\nasync function getPlugins(pluginOptions: PluginOption[], dedupe = true): Promise<Plugin[]> {\n const plugins: Plugin[] = [];\n for (const option of await Promise.all(pluginOptions)) {\n if (!option) continue;\n if (Array.isArray(option)) plugins.push(...(await getPlugins(option, false)));\n else plugins.push(option);\n }\n\n if (!dedupe) return plugins;\n\n const excludedName = new Set<string>();\n const deduped: Plugin[] = [];\n for (let i = plugins.length - 1; i >= 0; i--) {\n const plugin = plugins[i];\n if (excludedName.has(plugin.name)) continue;\n deduped.unshift(plugin);\n if (plugin.dedupe) excludedName.add(plugin.name);\n }\n return deduped;\n}\n\nexport class Core {\n private readonly workspaces = new Map<string, Core>();\n private readonly options: ResolvedCoreOptions;\n private plugins: Plugin[] = [];\n private config!: ResolvedConfig;\n static defaultOptions = {\n configPath: \"content.config.ts\",\n outDir: \".content\",\n };\n\n /**\n * Convenient cache store, reset when config changes.\n *\n * You can group namespaces in cache key with \":\", like `my-plugin:data`\n */\n readonly cache = new Map<string, unknown>();\n\n constructor(options: CoreOptions = {}) {\n const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();\n this.options = {\n ...options,\n cwd,\n outDir: path.resolve(cwd, options.outDir ?? Core.defaultOptions.outDir),\n configPath: path.resolve(cwd, options.configPath ?? Core.defaultOptions.configPath),\n };\n }\n\n async init({\n config: newConfig,\n }: {\n /**\n * either the default export or all exports of config file.\n */\n config: Awaitable<Record<string, unknown>>;\n }) {\n this.config = await this.initConfig(await newConfig);\n this.cache.clear();\n this.workspaces.clear();\n this.plugins = await getPlugins([\n this.options.plugins,\n this.config.plugins,\n ...this.config.collections.values().map((collection) => collection.plugins),\n ]);\n\n const ctx = this.getPluginContext();\n for (const plugin of this.plugins) {\n const out = await plugin.config?.call(ctx, this.config);\n if (out) this.config = out;\n }\n\n await Promise.all(\n this.config.collections.values().map(async (collection) => {\n collection.onConfig.run({ core: this, config: this.config });\n\n for (const plugin of this.plugins) {\n await plugin.collection?.call(ctx, collection);\n }\n }),\n );\n\n // only support workspaces with max depth 1\n if (!this.options.workspace && this.config.workspaces) {\n await Promise.all(\n Object.entries(this.config.workspaces).map(async ([name, workspace]) => {\n const child = new Core({\n ...this.options,\n cwd: path.resolve(this.options.cwd, workspace.dir),\n workspace: {\n name,\n parent: this,\n dir: workspace.dir,\n },\n });\n\n await child.init({ config: workspace.config as Record<string, unknown> });\n this.workspaces.set(name, child);\n }),\n );\n }\n }\n\n getWorkspace() {\n return this.options.workspace;\n }\n getWorkspaces() {\n return this.workspaces;\n }\n getOptions() {\n return this.options;\n }\n getConfig(): ResolvedConfig {\n return this.config;\n }\n /**\n * The file path of compiled config file, the file may not exist (e.g. on Vite, or still compiling)\n */\n getCompiledConfigPath(): string {\n return path.join(this.options.outDir, \"content.config.mjs\");\n }\n getPlugins(workspace = false) {\n if (workspace) {\n const plugins = [...this.plugins];\n for (const workspace of this.workspaces.values()) {\n plugins.push(...workspace.plugins);\n }\n return plugins;\n }\n\n return this.plugins;\n }\n getCollections(workspace = false): Collection[] {\n const list = Array.from(this.config.collections.values());\n if (workspace) {\n for (const workspace of this.workspaces.values()) {\n list.push(...workspace.getCollections());\n }\n }\n return list;\n }\n getCollection(name: string): Collection | undefined {\n return this.config.collections.get(name);\n }\n getPluginContext(): PluginContext {\n return {\n core: this,\n };\n }\n async initServer(server: ServerContext) {\n const ctx = this.getPluginContext();\n\n server.watcher?.add(this.options.configPath);\n for (const plugin of this.plugins) {\n plugin.configureServer?.call(ctx, server);\n }\n for (const collection of this.getCollections()) {\n collection.onServer.run({ core: this, server });\n }\n for (const workspace of this.workspaces.values()) {\n await workspace.initServer(server);\n }\n }\n\n async clearOutputDirectory() {\n await fs.rm(this.options.outDir, { recursive: true, force: true });\n }\n\n async emit(emitOptions: EmitOptions = {}): Promise<EmitOutput> {\n const emitConfig = this.config.emit;\n const { workspace, outDir } = this.options;\n const { filterCollection, filterWorkspace, write = false } = emitOptions;\n const start = performance.now();\n const ctx: EmitContext = {\n core: this,\n async createCodeGenerator(path, content) {\n const codegen = new CodeGenerator({\n ...emitConfig,\n outDir,\n });\n await content({\n codegen,\n });\n return {\n path,\n content: codegen.toString(),\n };\n },\n };\n\n const out: EmitOutput = {\n entries: [],\n workspaces: {},\n };\n\n const entryMap = new Map<string, EmitEntry>();\n const generated: Awaitable<EmitEntry[]>[] = [];\n for (const collection of this.getCollections()) {\n if (filterCollection && !filterCollection(collection)) continue;\n generated.push(collection.onEmit.run([], ctx));\n }\n for (const entries of await Promise.all(generated)) {\n for (const item of entries) {\n entryMap.set(item.path, item);\n }\n }\n out.entries = Array.from(entryMap.values());\n\n if (write) {\n await Promise.all(\n out.entries.map(async (entry) => {\n const file = path.join(outDir, entry.path);\n await fs.mkdir(path.dirname(file), { recursive: true });\n await fs.writeFile(file, entry.content);\n }),\n );\n\n console.log(\n workspace\n ? `[fuma-content: ${workspace.name}] generated files in ${performance.now() - start}ms`\n : `[fuma-content] generated files in ${performance.now() - start}ms`,\n );\n }\n\n for (const [name, workspace] of this.workspaces.entries()) {\n if (filterWorkspace && !filterWorkspace(name)) continue;\n out.workspaces[name] = (await workspace.emit(emitOptions)).entries;\n }\n\n return out;\n }\n\n /**\n * convert absolute path into a runtime path (relative to **runtime** cwd)\n */\n _toRuntimePath(absolutePath: string) {\n return path.relative(process.cwd(), absolutePath);\n }\n\n private async initConfig(config: Record<string, unknown>): Promise<ResolvedConfig> {\n const collections = new Map<string, Collection>();\n let globalConfig: GlobalConfig;\n\n if (\"default\" in config) {\n globalConfig = config.default as GlobalConfig;\n for (const [k, v] of Object.entries(config)) {\n if (v instanceof Collection) {\n globalConfig.collections ??= {};\n globalConfig.collections[k] = v;\n }\n }\n } else {\n globalConfig = config as GlobalConfig;\n }\n\n globalConfig.collections ??= {};\n const pendingCollections = new Map<string, Collection>(\n Object.entries(globalConfig.collections),\n );\n while (pendingCollections.size > 0) {\n const entries = Array.from(pendingCollections.entries());\n pendingCollections.clear();\n\n await Promise.all(\n entries.map(async ([name, collection]) => {\n if (collections.has(name)) {\n throw new Error(`collection name \"${name}\" was taken.`);\n }\n\n collection.name = name;\n collections.set(name, collection);\n // `pendingCollections` can be updated below\n await collection.onInit.run({ core: this, pendingCollections });\n }),\n );\n }\n\n return {\n ...globalConfig,\n collections,\n };\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as Core } from "./core-15rgY8JW.js";
1
+ import { t as Core } from "./core-1dkeRoD-.js";
2
2
 
3
3
  //#region src/config/load-from-file.d.ts
4
4
  /**
@@ -29,4 +29,4 @@ declare function createDynamicCore({
29
29
  }): DynamicCore;
30
30
  //#endregion
31
31
  export { createDynamicCore as n, DynamicCore as t };
32
- //# sourceMappingURL=dynamic-CwBRfhBm.d.ts.map
32
+ //# sourceMappingURL=dynamic-DGbONJ46.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-CwBRfhBm.d.ts","names":[],"sources":["../src/config/load-from-file.ts","../src/dynamic.ts"],"mappings":";;;;;AAQA;;;KAAY,WAAA;;;UCJK,WAAA;EACf,OAAA,IAAW,IAAA,GAAO,OAAA,CAAQ,IAAA;AAAA;AAAA,iBAGZ,iBAAA,CAAA;EACd,IAAA;EACA,WAAA;EACA;AAAA;EDHqB;;;ECQrB,IAAA,EAAM,IAAA;EACN,WAAA,GAAc,WAAA;EAbC;;;EAiBf,IAAA;AAAA,IACE,WAAA"}
1
+ {"version":3,"file":"dynamic-DGbONJ46.d.ts","names":[],"sources":["../src/config/load-from-file.ts","../src/dynamic.ts"],"mappings":";;;;;AAQA;;;KAAY,WAAA;;;UCJK,WAAA;EACf,OAAA,IAAW,IAAA,GAAO,OAAA,CAAQ,IAAA;AAAA;AAAA,iBAGZ,iBAAA,CAAA;EACd,IAAA;EACA,WAAA;EACA;AAAA;EDHqB;;;ECQrB,IAAA,EAAM,IAAA;EACN,WAAA,GAAc,WAAA;EAbC;;;EAiBf,IAAA;AAAA,IACE,WAAA"}
package/dist/dynamic.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { n as createDynamicCore, t as DynamicCore } from "./dynamic-CwBRfhBm.js";
1
+ import { n as createDynamicCore, t as DynamicCore } from "./dynamic-DGbONJ46.js";
2
2
  export { DynamicCore, createDynamicCore };
@@ -1,4 +1,4 @@
1
- import { n as MapCollectionStore } from "./store-Cc6y2CDE.js";
1
+ import { n as MapCollectionStore } from "./store-DySTeDAM.js";
2
2
 
3
3
  //#region src/collections/runtime/file-store.d.ts
4
4
  interface FileInfo {
@@ -17,4 +17,4 @@ declare class FileCollectionStore<V> extends MapCollectionStore<string, FileInfo
17
17
  }
18
18
  //#endregion
19
19
  export { FileInfo as n, FileCollectionStore as t };
20
- //# sourceMappingURL=file-store-270Y4Sx7.d.ts.map
20
+ //# sourceMappingURL=file-store-NLjnayNa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-store-270Y4Sx7.d.ts","names":[],"sources":["../src/collections/runtime/file-store.ts"],"mappings":";;;UAGiB,QAAA;;AAAjB;;EAIE,IAAA;EAAA;;AAgBF;EAXE,QAAA;AAAA;AAAA,cAWW,mBAAA,YAA+B,kBAAA,SAA2B,QAAA,GAAW,CAAA;cACpE,IAAA,UAAc,IAAA,EAAM,MAAA,SAAe,CAAA;EAa/C,QAAA,GAAA,CAAY,KAAA,GAAQ,KAAA,EAAO,QAAA,GAAW,CAAA,KAAM,QAAA,GAAW,CAAA,GAAI,mBAAA,CAAoB,CAAA;AAAA"}
1
+ {"version":3,"file":"file-store-NLjnayNa.d.ts","names":[],"sources":["../src/collections/runtime/file-store.ts"],"mappings":";;;UAGiB,QAAA;;AAAjB;;EAIE,IAAA;EAAA;;AAgBF;EAXE,QAAA;AAAA;AAAA,cAWW,mBAAA,YAA+B,kBAAA,SAA2B,QAAA,GAAW,CAAA;cACpE,IAAA,UAAc,IAAA,EAAM,MAAA,SAAe,CAAA;EAa/C,QAAA,GAAA,CAAY,KAAA,GAAQ,KAAA,EAAO,QAAA,GAAW,CAAA,KAAM,QAAA,GAAW,CAAA,GAAI,mBAAA,CAAoB,CAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { m as Collection } from "./core-15rgY8JW.js";
1
+ import { m as Collection } from "./core-1dkeRoD-.js";
2
2
 
3
3
  //#region src/collections/fs.d.ts
4
4
  declare class FileSystemCollection extends Collection {
@@ -41,4 +41,4 @@ interface FileSystemCollectionConfig {
41
41
  declare function fileSystemCollection(config: FileSystemCollectionConfig): FileSystemCollection;
42
42
  //#endregion
43
43
  export { FileSystemCollectionConfig as n, fileSystemCollection as r, FileSystemCollection as t };
44
- //# sourceMappingURL=fs-DDVhjRBi.d.ts.map
44
+ //# sourceMappingURL=fs-C8dHWQw9.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs-DDVhjRBi.d.ts","names":[],"sources":["../src/collections/fs.ts"],"mappings":";;;cAKa,oBAAA,SAA6B,UAAA;EAAA,QAChC,OAAA;EADG;;;EAKX,GAAA;EAAA,iBACiB,UAAA;EANuB;EAAA,iBAQvB,QAAA;EAAA,SACR,oBAAA;cAEG,MAAA,EAAQ,0BAAA;EAmBpB,eAAA,CAAgB,QAAA;EAzBhB;;;;;EAmCM,QAAA,CAAA,GAAQ,OAAA;EASd,OAAA,CAAQ,QAAA;EASR,eAAA,CAAA;AAAA;AAAA,UAKe,0BAAA;EAvBD;;;EA2Bd,GAAA;EATe;;AAKjB;;;EAWE,KAAA;EAPA;;;EAYA,gBAAA;AAAA;AAAA,iBAGc,oBAAA,CAAqB,MAAA,EAAQ,0BAAA,GAA0B,oBAAA"}
1
+ {"version":3,"file":"fs-C8dHWQw9.d.ts","names":[],"sources":["../src/collections/fs.ts"],"mappings":";;;cAKa,oBAAA,SAA6B,UAAA;EAAA,QAChC,OAAA;EADG;;;EAKX,GAAA;EAAA,iBACiB,UAAA;EANuB;EAAA,iBAQvB,QAAA;EAAA,SACR,oBAAA;cAEG,MAAA,EAAQ,0BAAA;EAmBpB,eAAA,CAAgB,QAAA;EAzBhB;;;;;EAmCM,QAAA,CAAA,GAAQ,OAAA;EASd,OAAA,CAAQ,QAAA;EASR,eAAA,CAAA;AAAA;AAAA,UAKe,0BAAA;EAvBD;;;EA2Bd,GAAA;EATe;;AAKjB;;;EAWE,KAAA;EAPA;;;EAYA,gBAAA;AAAA;AAAA,iBAGc,oBAAA,CAAqB,MAAA,EAAQ,0BAAA,GAA0B,oBAAA"}
@@ -1,4 +1,4 @@
1
- import { S as AsyncHook, h as CollectionHook, s as Plugin } from "./core-15rgY8JW.js";
1
+ import { S as AsyncHook, h as CollectionHook, s as Plugin } from "./core-1dkeRoD-.js";
2
2
 
3
3
  //#region src/plugins/git.d.ts
4
4
  interface GitFileData {
@@ -34,4 +34,4 @@ interface GitClient {
34
34
  }
35
35
  //#endregion
36
36
  export { gitHook as a, git as i, GitFileData as n, GitHook as r, GitClient as t };
37
- //# sourceMappingURL=git-Ce7r2zfM.d.ts.map
37
+ //# sourceMappingURL=git-W7QH8hQh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-Ce7r2zfM.d.ts","names":[],"sources":["../src/plugins/git.ts"],"mappings":";;;UAOiB,WAAA;EAAA;;;EAIf,YAAA,EAAc,IAAA;EAAd;;;EAIA,YAAA,EAAc,IAAA;AAAA;AAAA,UAGC,OAAA;EAAA;;;EAIf,QAAA,EAAU,SAAA;IAAY,MAAA,EAAQ,SAAA;EAAA;AAAA;AAAA,cAGnB,OAAA,EAAO,cAAA,CAAA,OAAA;;;AAApB;;;;iBAUwB,GAAA,CAAA,GAAO,MAAA;AAAA,UAed,SAAA;EACf,WAAA,GAAc,OAAA;IAAW,QAAA;EAAA,MAAuB,OAAA,CAAQ,WAAA;AAAA"}
1
+ {"version":3,"file":"git-W7QH8hQh.d.ts","names":[],"sources":["../src/plugins/git.ts"],"mappings":";;;UAOiB,WAAA;EAAA;;;EAIf,YAAA,EAAc,IAAA;EAAd;;;EAIA,YAAA,EAAc,IAAA;AAAA;AAAA,UAGC,OAAA;EAAA;;;EAIf,QAAA,EAAU,SAAA;IAAY,MAAA,EAAQ,SAAA;EAAA;AAAA;AAAA,cAGnB,OAAA,EAAO,cAAA,CAAA,OAAA;;;AAApB;;;;iBAUwB,GAAA,CAAA,GAAO,MAAA;AAAA,UAed,SAAA;EACf,WAAA,GAAc,OAAA;IAAW,QAAA;EAAA,MAAuB,OAAA,CAAQ,WAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { c as PluginContext, h as CollectionHook, s as Plugin } from "./core-15rgY8JW.js";
2
- import { t as DynamicCore } from "./dynamic-CwBRfhBm.js";
1
+ import { c as PluginContext, h as CollectionHook, s as Plugin } from "./core-1dkeRoD-.js";
2
+ import { t as DynamicCore } from "./dynamic-DGbONJ46.js";
3
3
  import { NextConfig } from "next";
4
4
  import { LoaderContext } from "webpack";
5
5
 
@@ -81,4 +81,4 @@ interface LoaderHook {
81
81
  declare const loaderHook: CollectionHook<LoaderHook, undefined>;
82
82
  //#endregion
83
83
  export { LoaderOutput as a, WebpackLoader as c, LoaderInput as i, WebpackLoaderOptions as l, LoaderConfig as n, loaderHook as o, LoaderHook as r, loaderPlugin as s, Loader as t, createWebpackLoader as u };
84
- //# sourceMappingURL=index-B9DAFF8c.d.ts.map
84
+ //# sourceMappingURL=index-h97OPng4.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-B9DAFF8c.d.ts","names":[],"sources":["../src/plugins/loader/webpack.ts","../src/plugins/loader/index.ts"],"mappings":";;;;;;UAQiB,oBAAA;EACf,0BAAA;EACA,UAAA;EACA,MAAA;EACA,KAAA;AAAA;AAAA,KAGU,aAAA,IAAiB,IAAA,EAAM,aAAA,CAAc,oBAAA,GAAuB,MAAA;;;;iBAqBxD,mBAAA,CAAoB,aAAA,GAAgB,IAAA,EAAM,WAAA,KAAgB,MAAA,GAAS,aAAA;;;KC7B9E,SAAA,MAAe,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,KAE3B,iBAAA;AAAA,UAEY,MAAA;EDHA;;;;;;;ECWf,IAAA,GAAO,KAAA,EAAO,WAAA,KAAgB,SAAA,CAAU,YAAA;EAExC,GAAA;IDTK;AAGP;;;ICWI,IAAA,IAAQ,MAAA,UAAgB,KAAA,EAAO,WAAA,KAAgB,SAAA,CAAU,GAAA,CAAI,YAAA;EAAA;AAAA;AAAA,UAIhD,WAAA;EACf,WAAA;EAEA,QAAA;EACA,KAAA,EAAO,MAAA;EACP,SAAA,iBAA0B,OAAA;EAC1B,aAAA,GAAgB,IAAA;AAAA;AAAA,UAGD,YAAA;EACf,IAAA;EACA,GAAA;EDL8F;;;;;ECY9F,UAAA;AAAA;AAAA,UAGQ,iBAAA,SAA0B,aAAA;EAClC,gBAAA,QAAwB,oBAAA;AAAA;AAAA,UAGT,YAAA;;EAEf,EAAA;EAlDY;;;;;EAyDZ,IAAA,GAAO,MAAA;EAzDsB;;;EA8D7B,YAAA,GAAe,IAAA,EAAM,aAAA,EAAe,WAAA,EAAa,iBAAA,KAAsB,OAAA,CAAQ,MAAA;EAC/E,aAAA,IAAiB,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,KAAe,UAAA;AAAA;;AA/DhC;;iBA2EjB,YAAA,CAAA,GAAgB,MAAA;AAAA,UAsFf,UAAA;EACf,OAAA,EAAS,YAAA;AAAA;AAAA,cAGE,UAAA,EAAU,cAAA,CAAA,UAAA"}
1
+ {"version":3,"file":"index-h97OPng4.d.ts","names":[],"sources":["../src/plugins/loader/webpack.ts","../src/plugins/loader/index.ts"],"mappings":";;;;;;UAQiB,oBAAA;EACf,0BAAA;EACA,UAAA;EACA,MAAA;EACA,KAAA;AAAA;AAAA,KAGU,aAAA,IAAiB,IAAA,EAAM,aAAA,CAAc,oBAAA,GAAuB,MAAA;;;;iBAqBxD,mBAAA,CAAoB,aAAA,GAAgB,IAAA,EAAM,WAAA,KAAgB,MAAA,GAAS,aAAA;;;KC7B9E,SAAA,MAAe,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,KAE3B,iBAAA;AAAA,UAEY,MAAA;EDHA;;;;;;;ECWf,IAAA,GAAO,KAAA,EAAO,WAAA,KAAgB,SAAA,CAAU,YAAA;EAExC,GAAA;IDTK;AAGP;;;ICWI,IAAA,IAAQ,MAAA,UAAgB,KAAA,EAAO,WAAA,KAAgB,SAAA,CAAU,GAAA,CAAI,YAAA;EAAA;AAAA;AAAA,UAIhD,WAAA;EACf,WAAA;EAEA,QAAA;EACA,KAAA,EAAO,MAAA;EACP,SAAA,iBAA0B,OAAA;EAC1B,aAAA,GAAgB,IAAA;AAAA;AAAA,UAGD,YAAA;EACf,IAAA;EACA,GAAA;EDL8F;;;;;ECY9F,UAAA;AAAA;AAAA,UAGQ,iBAAA,SAA0B,aAAA;EAClC,gBAAA,QAAwB,oBAAA;AAAA;AAAA,UAGT,YAAA;;EAEf,EAAA;EAlDY;;;;;EAyDZ,IAAA,GAAO,MAAA;EAzDsB;;;EA8D7B,YAAA,GAAe,IAAA,EAAM,aAAA,EAAe,WAAA,EAAa,iBAAA,KAAsB,OAAA,CAAQ,MAAA;EAC/E,aAAA,IAAiB,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,KAAe,UAAA;AAAA;;AA/DhC;;iBA2EjB,YAAA,CAAA,GAAgB,MAAA;AAAA,UAoFf,UAAA;EACf,OAAA,EAAS,YAAA;AAAA;AAAA,cAGE,UAAA,EAAU,cAAA,CAAA,UAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { C as Hook, D as GetCollectionConfig, S as AsyncHook, T as hook, a as EmitOptions, b as asyncPipe, c as PluginContext, d as ResolvedCoreOptions, f as ServerContext, i as EmitEntry, l as PluginOption, n as CoreOptions, o as EmitOutput, r as EmitContext, s as Plugin, t as Core, u as ResolvedConfig, v as AsyncPipe, w as asyncHook, x as pipe, y as Pipe } from "./core-15rgY8JW.js";
1
+ import { C as Hook, D as GetCollectionConfig, S as AsyncHook, T as hook, a as EmitOptions, b as asyncPipe, c as PluginContext, d as ResolvedCoreOptions, f as ServerContext, i as EmitEntry, l as PluginOption, n as CoreOptions, o as EmitOutput, r as EmitContext, s as Plugin, t as Core, u as ResolvedConfig, v as AsyncPipe, w as asyncHook, x as pipe, y as Pipe } from "./core-1dkeRoD-.js";
2
2
  import { StandardSchemaV1 } from "@standard-schema/spec";
3
3
 
4
4
  //#region src/utils/validation.d.ts
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as asyncHook, i as pipe, o as hook, r as asyncPipe } from "./collections-BuskUhft.js";
2
- import { t as Core } from "./core-BfIQeHzH.js";
1
+ import { a as asyncHook, i as pipe, o as hook, r as asyncPipe } from "./collections-Cl-23FUa.js";
2
+ import { t as Core } from "./core-Dkl2eUwU.js";
3
3
  import { n as getJSONSchema, r as validate, t as ValidationError } from "./validation-Bf_v2L3p.js";
4
4
  export { Core, ValidationError, asyncHook, asyncPipe, getJSONSchema, hook, pipe, validate };
@@ -1,5 +1,5 @@
1
- import { E as Awaitable, m as Collection, p as CodeGenerator, t as Core, v as AsyncPipe, y as Pipe } from "./core-15rgY8JW.js";
2
- import { n as FileSystemCollectionConfig, t as FileSystemCollection } from "./fs-DDVhjRBi.js";
1
+ import { E as Awaitable, m as Collection, p as CodeGenerator, t as Core, v as AsyncPipe, y as Pipe } from "./core-1dkeRoD-.js";
2
+ import { n as FileSystemCollectionConfig, t as FileSystemCollection } from "./fs-C8dHWQw9.js";
3
3
  import { VFile } from "vfile";
4
4
  import { ProcessorOptions, createProcessor } from "@mdx-js/mdx";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -135,4 +135,4 @@ declare class MDXCollection<FrontmatterSchema extends StandardSchemaV1 | undefin
135
135
  declare function mdxCollection<FrontmatterSchema extends StandardSchemaV1 | undefined = undefined>(config: MDXCollectionConfig<FrontmatterSchema>): MDXCollection<FrontmatterSchema>;
136
136
  //#endregion
137
137
  export { LinkReference as a, CompiledMDX as i, MDXCollectionConfig as n, mdxCollection as r, MDXCollection as t };
138
- //# sourceMappingURL=mdx-BfaapI6d.d.ts.map
138
+ //# sourceMappingURL=mdx-CBjuia2v.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdx-BfaapI6d.d.ts","names":[],"sources":["../src/collections/mdx/remark-postprocess.ts","../src/collections/mdx/build-mdx.ts","../src/collections/mdx.ts"],"mappings":";;;;;;;;;;UASiB,aAAA;EACf,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,OAAA;;;;EAKA,aAAA;EAV4B;;;EAe5B,iBAAA;IAGM,EAAA;IAd2B;;;IAkB3B,UAAA;EAAA;EAPN;;;EAaA,cAAA;IAGM,EAAA;EAAA;EASA;;;EAHN,KAAA;IAGM,EAAA;IACA,cAAA;EAAA;AAAA;;;KCvCH,YAAA,GAAe,UAAA,QAAkB,eAAA;AAAA,UAE5B,kBAAA;EACR,aAAA,GAAgB,IAAA;EAChB,UAAA,EAAY,aAAA;EACZ,IAAA,EAAM,IAAA;AAAA;AAAA,UAkBS,2BAAA,SAAoC,IAAA,CAAK,gBAAA;EACxD,aAAA,GACI,aAAA,KACE,OAAA;IAAW,UAAA,EAAY,aAAA;IAAe,WAAA,EAAa,aAAA;EAAA,MAAoB,aAAA;AAAA;AAAA,UAK9D,kBAAA;;AAlCwB;;EAsCvC,WAAA,GAAc,MAAA;EAnCI;;AAAiC;EAwCnD,YAAA;IAAiB,IAAA;IAAc,KAAA;EAAA;EArCf;;;EA0ChB,SAAA,GAAY,kBAAA;EAxCN;;;EA6CN,aAAA,IAAiB,MAAA,mBAAyB,SAAA,CAAU,YAAA;AAAA;AAAA;EAAA,UAK1C,OAAA,SAAgB,kBAAA;AAAA;AAAA,UAGX,WAAA,eAA0B,MAAA,2BAAiC,MAAA;EAI1E,WAAA,EAAa,WAAA;EACb,OAAA,EAAS,UAAA;AAAA;;;UCxDD,kBAAA;EACR,UAAA,EAAY,UAAA;EACZ,QAAA;EACA,MAAA;AAAA;AAAA,UAGe,mBAAA,2BACW,gBAAA,eAA+B,gBAAA,sBACjD,IAAA,CAAK,0BAAA;EACb,WAAA,GAAc,OAAA,CAAQ,kBAAA;EACtB,WAAA,GAAc,iBAAA;EACd,OAAA,GACI,2BAAA,KACE,WAAA,4BAAuC,SAAA,CAAU,2BAAA;EACvD,IAAA;EACA,OAAA;AAAA;AAAA,UASQ,eAAA;EACR,EAAA;EACA,UAAA,GAAa,MAAA,UAAgB,IAAA,UAAc,QAAA;EAC3C,MAAA;AAAA;AAAA,cAOW,aAAA,2BACe,gBAAA,eAA+B,gBAAA,sBACjD,oBAAA;EAAA;WACC,OAAA;EAAA,SACA,IAAA;EAAA,SACA,WAAA,GAAc,OAAA,CAAQ,kBAAA;EAIzB,aAAA,CAAc,WAAA,0BAAqC,OAAA,CAAQ,2BAAA;;;;EAWjE,iBAAA,GAAoB,iBAAA;ED7DL;;;ECiEf,WAAA,EAAW,SAAA,CAAA,MAAA,+BAAA,kBAAA;ED/DH;;;ECmER,KAAA,EAAK,SAAA,CAAA,KAAA,EAAA,kBAAA;EDlEL;;;ECsEA,gBAAA,EAG0B,IAAA,CAHV,eAAA;aAGH,aAAA;;;EAKb,iBAAA,EAAmB,iBAAA,SAA0B,gBAAA,GACzC,gBAAA,CAAiB,WAAA,CAAY,iBAAA,IAC7B,MAAA;cAEQ,MAAA,EAAQ,mBAAA,CAAoB,iBAAA;EAAA,QAiN1B,oCAAA;EAAA,QA2BA,yBAAA;AAAA;AAAA,iBAuBA,aAAA,2BAAwC,gBAAA,yBAAA,CACtD,MAAA,EAAQ,mBAAA,CAAoB,iBAAA,IAAkB,aAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"mdx-CBjuia2v.d.ts","names":[],"sources":["../src/collections/mdx/remark-postprocess.ts","../src/collections/mdx/build-mdx.ts","../src/collections/mdx.ts"],"mappings":";;;;;;;;;;UASiB,aAAA;EACf,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,OAAA;;;;EAKA,aAAA;EAV4B;;;EAe5B,iBAAA;IAGM,EAAA;IAd2B;;;IAkB3B,UAAA;EAAA;EAPN;;;EAaA,cAAA;IAGM,EAAA;EAAA;EASA;;;EAHN,KAAA;IAGM,EAAA;IACA,cAAA;EAAA;AAAA;;;KCvCH,YAAA,GAAe,UAAA,QAAkB,eAAA;AAAA,UAE5B,kBAAA;EACR,aAAA,GAAgB,IAAA;EAChB,UAAA,EAAY,aAAA;EACZ,IAAA,EAAM,IAAA;AAAA;AAAA,UAkBS,2BAAA,SAAoC,IAAA,CAAK,gBAAA;EACxD,aAAA,GACI,aAAA,KACE,OAAA;IAAW,UAAA,EAAY,aAAA;IAAe,WAAA,EAAa,aAAA;EAAA,MAAoB,aAAA;AAAA;AAAA,UAK9D,kBAAA;;AAlCwB;;EAsCvC,WAAA,GAAc,MAAA;EAnCI;;AAAiC;EAwCnD,YAAA;IAAiB,IAAA;IAAc,KAAA;EAAA;EArCf;;;EA0ChB,SAAA,GAAY,kBAAA;EAxCN;;;EA6CN,aAAA,IAAiB,MAAA,mBAAyB,SAAA,CAAU,YAAA;AAAA;AAAA;EAAA,UAK1C,OAAA,SAAgB,kBAAA;AAAA;AAAA,UAGX,WAAA,eAA0B,MAAA,2BAAiC,MAAA;EAI1E,WAAA,EAAa,WAAA;EACb,OAAA,EAAS,UAAA;AAAA;;;UCxDD,kBAAA;EACR,UAAA,EAAY,UAAA;EACZ,QAAA;EACA,MAAA;AAAA;AAAA,UAGe,mBAAA,2BACW,gBAAA,eAA+B,gBAAA,sBACjD,IAAA,CAAK,0BAAA;EACb,WAAA,GAAc,OAAA,CAAQ,kBAAA;EACtB,WAAA,GAAc,iBAAA;EACd,OAAA,GACI,2BAAA,KACE,WAAA,4BAAuC,SAAA,CAAU,2BAAA;EACvD,IAAA;EACA,OAAA;AAAA;AAAA,UASQ,eAAA;EACR,EAAA;EACA,UAAA,GAAa,MAAA,UAAgB,IAAA,UAAc,QAAA;EAC3C,MAAA;AAAA;AAAA,cAOW,aAAA,2BACe,gBAAA,eAA+B,gBAAA,sBACjD,oBAAA;EAAA;WACC,OAAA;EAAA,SACA,IAAA;EAAA,SACA,WAAA,GAAc,OAAA,CAAQ,kBAAA;EAIzB,aAAA,CAAc,WAAA,0BAAqC,OAAA,CAAQ,2BAAA;;;;EAWjE,iBAAA,GAAoB,iBAAA;ED7DL;;;ECiEf,WAAA,EAAW,SAAA,CAAA,MAAA,+BAAA,kBAAA;ED/DH;;;ECmER,KAAA,EAAK,SAAA,CAAA,KAAA,EAAA,kBAAA;EDlEL;;;ECsEA,gBAAA,EAG0B,IAAA,CAHV,eAAA;aAGH,aAAA;;;EAKb,iBAAA,EAAmB,iBAAA,SAA0B,gBAAA,GACzC,gBAAA,CAAiB,WAAA,CAAY,iBAAA,IAC7B,MAAA;cAEQ,MAAA,EAAQ,mBAAA,CAAoB,iBAAA;EAAA,QAiN1B,oCAAA;EAAA,QA2BA,yBAAA;AAAA;AAAA,iBAuBA,aAAA,2BAAwC,gBAAA,yBAAA,CACtD,MAAA,EAAQ,mBAAA,CAAoB,iBAAA,IAAkB,aAAA,CAAA,iBAAA"}
@@ -1,4 +1,4 @@
1
- import { n as CoreOptions, t as Core } from "../core-15rgY8JW.js";
1
+ import { n as CoreOptions, t as Core } from "../core-1dkeRoD-.js";
2
2
  import { NextConfig } from "next";
3
3
 
4
4
  //#region src/next/index.d.ts
@@ -1,4 +1,4 @@
1
- import { t as Core } from "../core-BfIQeHzH.js";
1
+ import { t as Core } from "../core-Dkl2eUwU.js";
2
2
  import { loaderPlugin } from "../plugins/loader/index.js";
3
3
  import { t as loadConfig } from "../load-from-file-C3CnD8mJ.js";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { n as CoreOptions } from "../core-15rgY8JW.js";
1
+ import { n as CoreOptions } from "../core-1dkeRoD-.js";
2
2
  import { InitializeHook, LoadHook } from "node:module";
3
3
 
4
4
  //#region src/node/loader.d.ts
@@ -1,5 +1,5 @@
1
1
  import { createDynamicCore } from "../dynamic.js";
2
- import { t as Core } from "../core-BfIQeHzH.js";
2
+ import { t as Core } from "../core-Dkl2eUwU.js";
3
3
  import { t as createCache } from "../async-cache-C47yxLCv.js";
4
4
  import { loaderPlugin } from "../plugins/loader/index.js";
5
5
  //#region src/node/loader.ts
@@ -1,2 +1,2 @@
1
- import { a as gitHook, i as git, n as GitFileData, r as GitHook, t as GitClient } from "../git-Ce7r2zfM.js";
1
+ import { a as gitHook, i as git, n as GitFileData, r as GitHook, t as GitClient } from "../git-W7QH8hQh.js";
2
2
  export { GitClient, GitFileData, GitHook, git as default, gitHook };
@@ -1,9 +1,9 @@
1
- import { a as asyncHook, n as defineCollectionHook } from "../collections-BuskUhft.js";
1
+ import { a as asyncHook, n as defineCollectionHook } from "../collections-Cl-23FUa.js";
2
2
  import { t as createCache } from "../async-cache-C47yxLCv.js";
3
3
  import path from "node:path";
4
4
  import { x } from "tinyexec";
5
5
  //#region src/plugins/git.ts
6
- const gitHook = defineCollectionHook(() => ({ onClient: asyncHook() }));
6
+ const gitHook = defineCollectionHook("git", () => ({ onClient: asyncHook() }));
7
7
  /**
8
8
  * Add version control integration for Git.
9
9
  * 1. Injects `creationDate` & `lastModified` properties to page exports.
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","names":[],"sources":["../../src/plugins/git.ts"],"sourcesContent":["import path from \"node:path\";\nimport { type Output, x } from \"tinyexec\";\nimport type { Plugin } from \"@/core\";\nimport { createCache } from \"@/utils/async-cache\";\nimport { defineCollectionHook } from \"@/collections\";\nimport { asyncHook, AsyncHook } from \"@/utils/hook\";\n\nexport interface GitFileData {\n /**\n * Last modified date of file, obtained from version control.\n */\n lastModified: Date | null;\n /**\n * Creation date of file, obtained from version control.\n */\n creationDate: Date | null;\n}\n\nexport interface GitHook {\n /**\n * receive the client.\n */\n onClient: AsyncHook<{ client: GitClient }>;\n}\n\nexport const gitHook = defineCollectionHook<GitHook>(() => ({\n onClient: asyncHook(),\n}));\n\n/**\n * Add version control integration for Git.\n * 1. Injects `creationDate` & `lastModified` properties to page exports.\n *\n * @remarks If you are using Vercel, please set `VERCEL_DEEP_CLONE` environment variable to `true`. This ensures the client can access the full commit history of Git.\n */\nexport default function git(): Plugin {\n let client: GitClient;\n\n return {\n name: \"git\",\n config() {\n const { cwd } = this.core.getOptions();\n client = createGitClient(cwd);\n },\n async collection(collection) {\n await collection.getPluginHook(gitHook)?.onClient.run({ client });\n },\n };\n}\n\nexport interface GitClient {\n getFileData: (options: { filePath: string }) => Promise<GitFileData>;\n}\n\nfunction createGitClient(cwd: string): GitClient {\n const cache = createCache<GitFileData>();\n\n function mapDate(out: Output): Date | null {\n if (out.exitCode !== 0) return null;\n const date = new Date(out.stdout);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n\n return {\n async getFileData({ filePath }) {\n return cache.cached(filePath, async () => {\n const relativePath = path.relative(cwd, filePath);\n const [mod, create] = await Promise.all([\n x(\"git\", [\"log\", \"-1\", \"--pretty=%ai\", relativePath], {\n nodeOptions: {\n cwd,\n },\n }),\n x(\"git\", [\"log\", \"--diff-filter=A\", \"--follow\", \"--format=%ai\", \"-1\", relativePath], {\n nodeOptions: {\n cwd,\n },\n }),\n ]);\n\n return {\n lastModified: mapDate(mod),\n creationDate: mapDate(create),\n };\n });\n },\n };\n}\n"],"mappings":";;;;;AAyBA,MAAa,UAAU,4BAAqC,EAC1D,UAAU,WAAW,EACtB,EAAE;;;;;;;AAQH,SAAwB,MAAc;CACpC,IAAI;AAEJ,QAAO;EACL,MAAM;EACN,SAAS;GACP,MAAM,EAAE,QAAQ,KAAK,KAAK,YAAY;AACtC,YAAS,gBAAgB,IAAI;;EAE/B,MAAM,WAAW,YAAY;AAC3B,SAAM,WAAW,cAAc,QAAQ,EAAE,SAAS,IAAI,EAAE,QAAQ,CAAC;;EAEpE;;AAOH,SAAS,gBAAgB,KAAwB;CAC/C,MAAM,QAAQ,aAA0B;CAExC,SAAS,QAAQ,KAA0B;AACzC,MAAI,IAAI,aAAa,EAAG,QAAO;EAC/B,MAAM,OAAO,IAAI,KAAK,IAAI,OAAO;AACjC,SAAO,OAAO,MAAM,KAAK,SAAS,CAAC,GAAG,OAAO;;AAG/C,QAAO,EACL,MAAM,YAAY,EAAE,YAAY;AAC9B,SAAO,MAAM,OAAO,UAAU,YAAY;GACxC,MAAM,eAAe,KAAK,SAAS,KAAK,SAAS;GACjD,MAAM,CAAC,KAAK,UAAU,MAAM,QAAQ,IAAI,CACtC,EAAE,OAAO;IAAC;IAAO;IAAM;IAAgB;IAAa,EAAE,EACpD,aAAa,EACX,KACD,EACF,CAAC,EACF,EAAE,OAAO;IAAC;IAAO;IAAmB;IAAY;IAAgB;IAAM;IAAa,EAAE,EACnF,aAAa,EACX,KACD,EACF,CAAC,CACH,CAAC;AAEF,UAAO;IACL,cAAc,QAAQ,IAAI;IAC1B,cAAc,QAAQ,OAAO;IAC9B;IACD;IAEL"}
1
+ {"version":3,"file":"git.js","names":[],"sources":["../../src/plugins/git.ts"],"sourcesContent":["import path from \"node:path\";\nimport { type Output, x } from \"tinyexec\";\nimport type { Plugin } from \"@/core\";\nimport { createCache } from \"@/utils/async-cache\";\nimport { defineCollectionHook } from \"@/collections\";\nimport { asyncHook, AsyncHook } from \"@/utils/hook\";\n\nexport interface GitFileData {\n /**\n * Last modified date of file, obtained from version control.\n */\n lastModified: Date | null;\n /**\n * Creation date of file, obtained from version control.\n */\n creationDate: Date | null;\n}\n\nexport interface GitHook {\n /**\n * receive the client.\n */\n onClient: AsyncHook<{ client: GitClient }>;\n}\n\nexport const gitHook = defineCollectionHook<GitHook>(\"git\", () => ({\n onClient: asyncHook(),\n}));\n\n/**\n * Add version control integration for Git.\n * 1. Injects `creationDate` & `lastModified` properties to page exports.\n *\n * @remarks If you are using Vercel, please set `VERCEL_DEEP_CLONE` environment variable to `true`. This ensures the client can access the full commit history of Git.\n */\nexport default function git(): Plugin {\n let client: GitClient;\n\n return {\n name: \"git\",\n config() {\n const { cwd } = this.core.getOptions();\n client = createGitClient(cwd);\n },\n async collection(collection) {\n await collection.getPluginHook(gitHook)?.onClient.run({ client });\n },\n };\n}\n\nexport interface GitClient {\n getFileData: (options: { filePath: string }) => Promise<GitFileData>;\n}\n\nfunction createGitClient(cwd: string): GitClient {\n const cache = createCache<GitFileData>();\n\n function mapDate(out: Output): Date | null {\n if (out.exitCode !== 0) return null;\n const date = new Date(out.stdout);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n\n return {\n async getFileData({ filePath }) {\n return cache.cached(filePath, async () => {\n const relativePath = path.relative(cwd, filePath);\n const [mod, create] = await Promise.all([\n x(\"git\", [\"log\", \"-1\", \"--pretty=%ai\", relativePath], {\n nodeOptions: {\n cwd,\n },\n }),\n x(\"git\", [\"log\", \"--diff-filter=A\", \"--follow\", \"--format=%ai\", \"-1\", relativePath], {\n nodeOptions: {\n cwd,\n },\n }),\n ]);\n\n return {\n lastModified: mapDate(mod),\n creationDate: mapDate(create),\n };\n });\n },\n };\n}\n"],"mappings":";;;;;AAyBA,MAAa,UAAU,qBAA8B,cAAc,EACjE,UAAU,WAAW,EACtB,EAAE;;;;;;;AAQH,SAAwB,MAAc;CACpC,IAAI;AAEJ,QAAO;EACL,MAAM;EACN,SAAS;GACP,MAAM,EAAE,QAAQ,KAAK,KAAK,YAAY;AACtC,YAAS,gBAAgB,IAAI;;EAE/B,MAAM,WAAW,YAAY;AAC3B,SAAM,WAAW,cAAc,QAAQ,EAAE,SAAS,IAAI,EAAE,QAAQ,CAAC;;EAEpE;;AAOH,SAAS,gBAAgB,KAAwB;CAC/C,MAAM,QAAQ,aAA0B;CAExC,SAAS,QAAQ,KAA0B;AACzC,MAAI,IAAI,aAAa,EAAG,QAAO;EAC/B,MAAM,OAAO,IAAI,KAAK,IAAI,OAAO;AACjC,SAAO,OAAO,MAAM,KAAK,SAAS,CAAC,GAAG,OAAO;;AAG/C,QAAO,EACL,MAAM,YAAY,EAAE,YAAY;AAC9B,SAAO,MAAM,OAAO,UAAU,YAAY;GACxC,MAAM,eAAe,KAAK,SAAS,KAAK,SAAS;GACjD,MAAM,CAAC,KAAK,UAAU,MAAM,QAAQ,IAAI,CACtC,EAAE,OAAO;IAAC;IAAO;IAAM;IAAgB;IAAa,EAAE,EACpD,aAAa,EACX,KACD,EACF,CAAC,EACF,EAAE,OAAO;IAAC;IAAO;IAAmB;IAAY;IAAgB;IAAM;IAAa,EAAE,EACnF,aAAa,EACX,KACD,EACF,CAAC,CACH,CAAC;AAEF,UAAO;IACL,cAAc,QAAQ,IAAI;IAC1B,cAAc,QAAQ,OAAO;IAC9B;IACD;IAEL"}
@@ -1,4 +1,4 @@
1
- import { E as Awaitable, h as CollectionHook } from "../core-15rgY8JW.js";
1
+ import { E as Awaitable, h as CollectionHook } from "../core-1dkeRoD-.js";
2
2
 
3
3
  //#region src/plugins/json-schema.d.ts
4
4
  interface JSONSchemaOptions {
@@ -1,4 +1,4 @@
1
- import { n as defineCollectionHook } from "../collections-BuskUhft.js";
1
+ import { n as defineCollectionHook } from "../collections-Cl-23FUa.js";
2
2
  import { FileSystemCollection } from "../collections/fs.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
@@ -6,7 +6,7 @@ import path from "node:path";
6
6
  /**
7
7
  * Generate JSON schemas locally for collection schemas.
8
8
  */
9
- const jsonSchemaHook = defineCollectionHook((collection, { insert = false, create }) => {
9
+ const jsonSchemaHook = defineCollectionHook("json-schema", (collection, { insert = false, create }) => {
10
10
  const hook = {
11
11
  create,
12
12
  getSchemaPath() {
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.js","names":[],"sources":["../../src/plugins/json-schema.ts"],"sourcesContent":["import { defineCollectionHook } from \"@/collections\";\nimport { FileSystemCollection } from \"@/collections/fs\";\nimport { Awaitable } from \"@/types\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport interface JSONSchemaOptions {\n /**\n * insert `$schema` field to JSON files on creation.\n *\n * @defaultValue false\n */\n insert?: boolean;\n\n /**\n * create JSON schema\n */\n create?: () => Awaitable<object | undefined>;\n}\n\nexport interface JSONSchemaHook {\n getSchemaPath: () => string;\n create?: () => Awaitable<object | undefined>;\n}\n\n/**\n * Generate JSON schemas locally for collection schemas.\n */\nexport const jsonSchemaHook = defineCollectionHook<JSONSchemaHook, JSONSchemaOptions>(\n (collection, { insert = false, create }) => {\n const hook: JSONSchemaHook = {\n create,\n getSchemaPath() {\n return `json-schema/${collection.name}.json`;\n },\n };\n\n collection.onServer.hook(({ core, server }) => {\n const { outDir } = core.getOptions();\n if (!server.watcher || !insert || !(collection instanceof FileSystemCollection)) return;\n\n server.watcher.on(\"add\", async (file) => {\n if (!collection.hasFile(file) || !file.endsWith(\".json\")) return;\n\n let obj: object;\n try {\n const content = (await fs.readFile(file)).toString();\n obj = content.length > 0 ? JSON.parse(content) : {};\n } catch {\n return;\n }\n\n if (\"$schema\" in obj) return;\n const schemaPath = path.join(outDir, hook.getSchemaPath());\n const updated = {\n $schema: path.relative(path.dirname(file), schemaPath),\n ...obj,\n };\n\n await fs.writeFile(file, JSON.stringify(updated, null, 2));\n });\n });\n collection.onEmit.pipe(async (entries) => {\n const jsonSchema = await hook.create?.();\n if (!jsonSchema) return entries;\n entries.push({\n path: hook.getSchemaPath(),\n content: JSON.stringify(jsonSchema, null, 2),\n });\n return entries;\n });\n return hook;\n },\n);\n"],"mappings":";;;;;;;;AA4BA,MAAa,iBAAiB,sBAC3B,YAAY,EAAE,SAAS,OAAO,aAAa;CAC1C,MAAM,OAAuB;EAC3B;EACA,gBAAgB;AACd,UAAO,eAAe,WAAW,KAAK;;EAEzC;AAED,YAAW,SAAS,MAAM,EAAE,MAAM,aAAa;EAC7C,MAAM,EAAE,WAAW,KAAK,YAAY;AACpC,MAAI,CAAC,OAAO,WAAW,CAAC,UAAU,EAAE,sBAAsB,sBAAuB;AAEjF,SAAO,QAAQ,GAAG,OAAO,OAAO,SAAS;AACvC,OAAI,CAAC,WAAW,QAAQ,KAAK,IAAI,CAAC,KAAK,SAAS,QAAQ,CAAE;GAE1D,IAAI;AACJ,OAAI;IACF,MAAM,WAAW,MAAM,GAAG,SAAS,KAAK,EAAE,UAAU;AACpD,UAAM,QAAQ,SAAS,IAAI,KAAK,MAAM,QAAQ,GAAG,EAAE;WAC7C;AACN;;AAGF,OAAI,aAAa,IAAK;GACtB,MAAM,aAAa,KAAK,KAAK,QAAQ,KAAK,eAAe,CAAC;GAC1D,MAAM,UAAU;IACd,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,EAAE,WAAW;IACtD,GAAG;IACJ;AAED,SAAM,GAAG,UAAU,MAAM,KAAK,UAAU,SAAS,MAAM,EAAE,CAAC;IAC1D;GACF;AACF,YAAW,OAAO,KAAK,OAAO,YAAY;EACxC,MAAM,aAAa,MAAM,KAAK,UAAU;AACxC,MAAI,CAAC,WAAY,QAAO;AACxB,UAAQ,KAAK;GACX,MAAM,KAAK,eAAe;GAC1B,SAAS,KAAK,UAAU,YAAY,MAAM,EAAE;GAC7C,CAAC;AACF,SAAO;GACP;AACF,QAAO;EAEV"}
1
+ {"version":3,"file":"json-schema.js","names":[],"sources":["../../src/plugins/json-schema.ts"],"sourcesContent":["import { defineCollectionHook } from \"@/collections\";\nimport { FileSystemCollection } from \"@/collections/fs\";\nimport { Awaitable } from \"@/types\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport interface JSONSchemaOptions {\n /**\n * insert `$schema` field to JSON files on creation.\n *\n * @defaultValue false\n */\n insert?: boolean;\n\n /**\n * create JSON schema\n */\n create?: () => Awaitable<object | undefined>;\n}\n\nexport interface JSONSchemaHook {\n getSchemaPath: () => string;\n create?: () => Awaitable<object | undefined>;\n}\n\n/**\n * Generate JSON schemas locally for collection schemas.\n */\nexport const jsonSchemaHook = defineCollectionHook<JSONSchemaHook, JSONSchemaOptions>(\n \"json-schema\",\n (collection, { insert = false, create }) => {\n const hook: JSONSchemaHook = {\n create,\n getSchemaPath() {\n return `json-schema/${collection.name}.json`;\n },\n };\n\n collection.onServer.hook(({ core, server }) => {\n const { outDir } = core.getOptions();\n if (!server.watcher || !insert || !(collection instanceof FileSystemCollection)) return;\n\n server.watcher.on(\"add\", async (file) => {\n if (!collection.hasFile(file) || !file.endsWith(\".json\")) return;\n\n let obj: object;\n try {\n const content = (await fs.readFile(file)).toString();\n obj = content.length > 0 ? JSON.parse(content) : {};\n } catch {\n return;\n }\n\n if (\"$schema\" in obj) return;\n const schemaPath = path.join(outDir, hook.getSchemaPath());\n const updated = {\n $schema: path.relative(path.dirname(file), schemaPath),\n ...obj,\n };\n\n await fs.writeFile(file, JSON.stringify(updated, null, 2));\n });\n });\n collection.onEmit.pipe(async (entries) => {\n const jsonSchema = await hook.create?.();\n if (!jsonSchema) return entries;\n entries.push({\n path: hook.getSchemaPath(),\n content: JSON.stringify(jsonSchema, null, 2),\n });\n return entries;\n });\n return hook;\n },\n);\n"],"mappings":";;;;;;;;AA4BA,MAAa,iBAAiB,qBAC5B,gBACC,YAAY,EAAE,SAAS,OAAO,aAAa;CAC1C,MAAM,OAAuB;EAC3B;EACA,gBAAgB;AACd,UAAO,eAAe,WAAW,KAAK;;EAEzC;AAED,YAAW,SAAS,MAAM,EAAE,MAAM,aAAa;EAC7C,MAAM,EAAE,WAAW,KAAK,YAAY;AACpC,MAAI,CAAC,OAAO,WAAW,CAAC,UAAU,EAAE,sBAAsB,sBAAuB;AAEjF,SAAO,QAAQ,GAAG,OAAO,OAAO,SAAS;AACvC,OAAI,CAAC,WAAW,QAAQ,KAAK,IAAI,CAAC,KAAK,SAAS,QAAQ,CAAE;GAE1D,IAAI;AACJ,OAAI;IACF,MAAM,WAAW,MAAM,GAAG,SAAS,KAAK,EAAE,UAAU;AACpD,UAAM,QAAQ,SAAS,IAAI,KAAK,MAAM,QAAQ,GAAG,EAAE;WAC7C;AACN;;AAGF,OAAI,aAAa,IAAK;GACtB,MAAM,aAAa,KAAK,KAAK,QAAQ,KAAK,eAAe,CAAC;GAC1D,MAAM,UAAU;IACd,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,EAAE,WAAW;IACtD,GAAG;IACJ;AAED,SAAM,GAAG,UAAU,MAAM,KAAK,UAAU,SAAS,MAAM,EAAE,CAAC;IAC1D;GACF;AACF,YAAW,OAAO,KAAK,OAAO,YAAY;EACxC,MAAM,aAAa,MAAM,KAAK,UAAU;AACxC,MAAI,CAAC,WAAY,QAAO;AACxB,UAAQ,KAAK;GACX,MAAM,KAAK,eAAe;GAC1B,SAAS,KAAK,UAAU,YAAY,MAAM,EAAE;GAC7C,CAAC;AACF,SAAO;GACP;AACF,QAAO;EAEV"}
@@ -1,2 +1,2 @@
1
- import { a as LoaderOutput, i as LoaderInput, n as LoaderConfig, o as loaderHook, r as LoaderHook, s as loaderPlugin, t as Loader } from "../../index-B9DAFF8c.js";
1
+ import { a as LoaderOutput, i as LoaderInput, n as LoaderConfig, o as loaderHook, r as LoaderHook, s as loaderPlugin, t as Loader } from "../../index-h97OPng4.js";
2
2
  export { Loader, LoaderConfig, LoaderHook, LoaderInput, LoaderOutput, loaderHook, loaderPlugin };
@@ -1,4 +1,4 @@
1
- import { n as defineCollectionHook } from "../../collections-BuskUhft.js";
1
+ import { n as defineCollectionHook } from "../../collections-Cl-23FUa.js";
2
2
  import { t as createCache } from "../../async-cache-C47yxLCv.js";
3
3
  import path from "node:path";
4
4
  //#region src/plugins/loader/index.ts
@@ -44,13 +44,10 @@ function loaderPlugin() {
44
44
  };
45
45
  }
46
46
  };
47
- for (const collection of this.core.getCollections()) {
47
+ for (const collection of this.core.getCollections(true)) {
48
48
  const hook = collection.getPluginHook(loaderHook);
49
49
  if (!hook) continue;
50
- for (const loader of hook.loaders) {
51
- if (!loader.configureNext) continue;
52
- config = loader.configureNext.call(ctx, config);
53
- }
50
+ for (const loader of hook.loaders) if (loader.configureNext) config = loader.configureNext.call(ctx, config);
54
51
  }
55
52
  return config;
56
53
  } },
@@ -70,7 +67,7 @@ function loaderPlugin() {
70
67
  } }
71
68
  };
72
69
  }
73
- const loaderHook = defineCollectionHook(() => ({ loaders: [] }));
70
+ const loaderHook = defineCollectionHook("loader", () => ({ loaders: [] }));
74
71
  //#endregion
75
72
  export { loaderHook, loaderPlugin };
76
73
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/plugins/loader/index.ts"],"sourcesContent":["import { defineCollectionHook } from \"@/collections\";\nimport type { Plugin, PluginContext } from \"@/core\";\nimport { createCache } from \"@/utils/async-cache\";\nimport { NextConfig } from \"next\";\nimport { WebpackLoaderOptions } from \"./webpack.js\";\nimport path from \"node:path\";\n\ntype Awaitable<T> = T | Promise<T>;\n\ntype LoaderEnvironment = \"vite\" | \"bun\" | \"node\";\n\nexport interface Loader {\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 interface LoaderInput {\n development: boolean;\n\n filePath: string;\n query: Record<string, string | string[] | undefined>;\n getSource: () => string | Promise<string>;\n addDependency: (file: string) => void;\n}\n\nexport interface LoaderOutput {\n code: string;\n map?: unknown;\n\n /**\n * only supported on Vite 8 at the moment, specify the output module type.\n *\n * on unsupported environments, it will be ignored.\n */\n moduleType?: \"js\" | \"json\";\n}\n\ninterface NextLoaderContext extends PluginContext {\n getLoaderOptions: () => WebpackLoaderOptions;\n}\n\nexport interface LoaderConfig {\n /** unique ID for loader, used to deduplicate loaders */\n id?: string;\n\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 * @remarks it doesn't configure automatically for Next.js, you have to define the webpack/turbopack config in `configureNext()`.\n */\n createLoader: (this: PluginContext, environment: LoaderEnvironment) => Promise<Loader>;\n configureNext?: (this: NextLoaderContext, next: NextConfig) => NextConfig;\n}\n\ninterface ResolvedLoader {\n id: string;\n test: RegExp | undefined;\n loader: Loader;\n}\n\n/**\n * a light layer for implementing loaders.\n */\nexport function loaderPlugin(): Plugin {\n // env -> loaders\n const cachedLoaders = createCache<ResolvedLoader[]>();\n\n function initLoaders(ctx: PluginContext, env: LoaderEnvironment) {\n const { core } = ctx;\n return cachedLoaders.cached(env, async () => {\n const usedIds = new Set<string>();\n const out: ResolvedLoader[] = [];\n\n for (const collection of core.getCollections()) {\n const hook = collection.getPluginHook(loaderHook);\n if (!hook) continue;\n\n let nextId = 0;\n for (const loader of hook.loaders) {\n if (loader.id && usedIds.has(loader.id)) continue;\n if (loader.id) usedIds.add(loader.id);\n\n out.push({\n id: loader.id ?? `${collection.name}:${nextId++}`,\n test: loader.test,\n loader: await loader.createLoader.call(ctx, env),\n });\n }\n }\n return out;\n });\n }\n\n return {\n name: \"fuma-content:loader\",\n next: {\n config(config) {\n const ctx: NextLoaderContext = {\n ...this,\n getLoaderOptions: () => {\n const { configPath, outDir } = this.core.getOptions();\n return {\n configPath,\n outDir,\n absoluteCompiledConfigPath: path.resolve(this.core.getCompiledConfigPath()),\n isDev: process.env.NODE_ENV === \"development\",\n };\n },\n };\n for (const collection of this.core.getCollections()) {\n const hook = collection.getPluginHook(loaderHook);\n if (!hook) continue;\n\n for (const loader of hook.loaders) {\n if (!loader.configureNext) continue;\n\n config = loader.configureNext.call(ctx, config);\n }\n }\n\n return config;\n },\n },\n bun: {\n async setup(build) {\n const { toBun } = await import(\"./bun\");\n\n for (const loader of await initLoaders(this, \"bun\")) {\n toBun(loader.test, loader.loader)(build);\n }\n },\n },\n node: {\n async createLoad() {\n const { toNode } = await import(\"./node\");\n return toNode(await initLoaders(this, \"node\"));\n },\n },\n vite: {\n async createPlugin() {\n const { toVite } = await import(\"./vite\");\n return (await initLoaders(this, \"vite\")).map((loader) => {\n return toVite(`fuma-content:${loader.id}`, loader.test, loader.loader);\n });\n },\n },\n };\n}\n\nexport interface LoaderHook {\n loaders: LoaderConfig[];\n}\n\nexport const loaderHook = defineCollectionHook<LoaderHook>(() => ({\n loaders: [],\n}));\n"],"mappings":";;;;;;;AAkFA,SAAgB,eAAuB;CAErC,MAAM,gBAAgB,aAA+B;CAErD,SAAS,YAAY,KAAoB,KAAwB;EAC/D,MAAM,EAAE,SAAS;AACjB,SAAO,cAAc,OAAO,KAAK,YAAY;GAC3C,MAAM,0BAAU,IAAI,KAAa;GACjC,MAAM,MAAwB,EAAE;AAEhC,QAAK,MAAM,cAAc,KAAK,gBAAgB,EAAE;IAC9C,MAAM,OAAO,WAAW,cAAc,WAAW;AACjD,QAAI,CAAC,KAAM;IAEX,IAAI,SAAS;AACb,SAAK,MAAM,UAAU,KAAK,SAAS;AACjC,SAAI,OAAO,MAAM,QAAQ,IAAI,OAAO,GAAG,CAAE;AACzC,SAAI,OAAO,GAAI,SAAQ,IAAI,OAAO,GAAG;AAErC,SAAI,KAAK;MACP,IAAI,OAAO,MAAM,GAAG,WAAW,KAAK,GAAG;MACvC,MAAM,OAAO;MACb,QAAQ,MAAM,OAAO,aAAa,KAAK,KAAK,IAAI;MACjD,CAAC;;;AAGN,UAAO;IACP;;AAGJ,QAAO;EACL,MAAM;EACN,MAAM,EACJ,OAAO,QAAQ;GACb,MAAM,MAAyB;IAC7B,GAAG;IACH,wBAAwB;KACtB,MAAM,EAAE,YAAY,WAAW,KAAK,KAAK,YAAY;AACrD,YAAO;MACL;MACA;MACA,4BAA4B,KAAK,QAAQ,KAAK,KAAK,uBAAuB,CAAC;MAC3E,OAAO,QAAQ,IAAI,aAAa;MACjC;;IAEJ;AACD,QAAK,MAAM,cAAc,KAAK,KAAK,gBAAgB,EAAE;IACnD,MAAM,OAAO,WAAW,cAAc,WAAW;AACjD,QAAI,CAAC,KAAM;AAEX,SAAK,MAAM,UAAU,KAAK,SAAS;AACjC,SAAI,CAAC,OAAO,cAAe;AAE3B,cAAS,OAAO,cAAc,KAAK,KAAK,OAAO;;;AAInD,UAAO;KAEV;EACD,KAAK,EACH,MAAM,MAAM,OAAO;GACjB,MAAM,EAAE,UAAU,MAAM,OAAO;AAE/B,QAAK,MAAM,UAAU,MAAM,YAAY,MAAM,MAAM,CACjD,OAAM,OAAO,MAAM,OAAO,OAAO,CAAC,MAAM;KAG7C;EACD,MAAM,EACJ,MAAM,aAAa;GACjB,MAAM,EAAE,WAAW,MAAM,OAAO;AAChC,UAAO,OAAO,MAAM,YAAY,MAAM,OAAO,CAAC;KAEjD;EACD,MAAM,EACJ,MAAM,eAAe;GACnB,MAAM,EAAE,WAAW,MAAM,OAAO;AAChC,WAAQ,MAAM,YAAY,MAAM,OAAO,EAAE,KAAK,WAAW;AACvD,WAAO,OAAO,gBAAgB,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO;KACtE;KAEL;EACF;;AAOH,MAAa,aAAa,4BAAwC,EAChE,SAAS,EAAE,EACZ,EAAE"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/plugins/loader/index.ts"],"sourcesContent":["import { defineCollectionHook } from \"@/collections\";\nimport type { Plugin, PluginContext } from \"@/core\";\nimport { createCache } from \"@/utils/async-cache\";\nimport { NextConfig } from \"next\";\nimport { WebpackLoaderOptions } from \"./webpack.js\";\nimport path from \"node:path\";\n\ntype Awaitable<T> = T | Promise<T>;\n\ntype LoaderEnvironment = \"vite\" | \"bun\" | \"node\";\n\nexport interface Loader {\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 interface LoaderInput {\n development: boolean;\n\n filePath: string;\n query: Record<string, string | string[] | undefined>;\n getSource: () => string | Promise<string>;\n addDependency: (file: string) => void;\n}\n\nexport interface LoaderOutput {\n code: string;\n map?: unknown;\n\n /**\n * only supported on Vite 8 at the moment, specify the output module type.\n *\n * on unsupported environments, it will be ignored.\n */\n moduleType?: \"js\" | \"json\";\n}\n\ninterface NextLoaderContext extends PluginContext {\n getLoaderOptions: () => WebpackLoaderOptions;\n}\n\nexport interface LoaderConfig {\n /** unique ID for loader, used to deduplicate loaders */\n id?: string;\n\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 * @remarks it doesn't configure automatically for Next.js, you have to define the webpack/turbopack config in `configureNext()`.\n */\n createLoader: (this: PluginContext, environment: LoaderEnvironment) => Promise<Loader>;\n configureNext?: (this: NextLoaderContext, next: NextConfig) => NextConfig;\n}\n\ninterface ResolvedLoader {\n id: string;\n test: RegExp | undefined;\n loader: Loader;\n}\n\n/**\n * a light layer for implementing loaders.\n */\nexport function loaderPlugin(): Plugin {\n // env -> loaders\n const cachedLoaders = createCache<ResolvedLoader[]>();\n\n function initLoaders(ctx: PluginContext, env: LoaderEnvironment) {\n const { core } = ctx;\n return cachedLoaders.cached(env, async () => {\n const usedIds = new Set<string>();\n const out: ResolvedLoader[] = [];\n\n for (const collection of core.getCollections()) {\n const hook = collection.getPluginHook(loaderHook);\n if (!hook) continue;\n\n let nextId = 0;\n for (const loader of hook.loaders) {\n if (loader.id && usedIds.has(loader.id)) continue;\n if (loader.id) usedIds.add(loader.id);\n\n out.push({\n id: loader.id ?? `${collection.name}:${nextId++}`,\n test: loader.test,\n loader: await loader.createLoader.call(ctx, env),\n });\n }\n }\n return out;\n });\n }\n\n return {\n name: \"fuma-content:loader\",\n next: {\n config(config) {\n const ctx: NextLoaderContext = {\n ...this,\n getLoaderOptions: () => {\n const { configPath, outDir } = this.core.getOptions();\n return {\n configPath,\n outDir,\n absoluteCompiledConfigPath: path.resolve(this.core.getCompiledConfigPath()),\n isDev: process.env.NODE_ENV === \"development\",\n };\n },\n };\n for (const collection of this.core.getCollections(true)) {\n const hook = collection.getPluginHook(loaderHook);\n if (!hook) continue;\n\n for (const loader of hook.loaders) {\n if (loader.configureNext) config = loader.configureNext.call(ctx, config);\n }\n }\n\n return config;\n },\n },\n bun: {\n async setup(build) {\n const { toBun } = await import(\"./bun\");\n\n for (const loader of await initLoaders(this, \"bun\")) {\n toBun(loader.test, loader.loader)(build);\n }\n },\n },\n node: {\n async createLoad() {\n const { toNode } = await import(\"./node\");\n return toNode(await initLoaders(this, \"node\"));\n },\n },\n vite: {\n async createPlugin() {\n const { toVite } = await import(\"./vite\");\n return (await initLoaders(this, \"vite\")).map((loader) => {\n return toVite(`fuma-content:${loader.id}`, loader.test, loader.loader);\n });\n },\n },\n };\n}\n\nexport interface LoaderHook {\n loaders: LoaderConfig[];\n}\n\nexport const loaderHook = defineCollectionHook<LoaderHook>(\"loader\", () => ({\n loaders: [],\n}));\n"],"mappings":";;;;;;;AAkFA,SAAgB,eAAuB;CAErC,MAAM,gBAAgB,aAA+B;CAErD,SAAS,YAAY,KAAoB,KAAwB;EAC/D,MAAM,EAAE,SAAS;AACjB,SAAO,cAAc,OAAO,KAAK,YAAY;GAC3C,MAAM,0BAAU,IAAI,KAAa;GACjC,MAAM,MAAwB,EAAE;AAEhC,QAAK,MAAM,cAAc,KAAK,gBAAgB,EAAE;IAC9C,MAAM,OAAO,WAAW,cAAc,WAAW;AACjD,QAAI,CAAC,KAAM;IAEX,IAAI,SAAS;AACb,SAAK,MAAM,UAAU,KAAK,SAAS;AACjC,SAAI,OAAO,MAAM,QAAQ,IAAI,OAAO,GAAG,CAAE;AACzC,SAAI,OAAO,GAAI,SAAQ,IAAI,OAAO,GAAG;AAErC,SAAI,KAAK;MACP,IAAI,OAAO,MAAM,GAAG,WAAW,KAAK,GAAG;MACvC,MAAM,OAAO;MACb,QAAQ,MAAM,OAAO,aAAa,KAAK,KAAK,IAAI;MACjD,CAAC;;;AAGN,UAAO;IACP;;AAGJ,QAAO;EACL,MAAM;EACN,MAAM,EACJ,OAAO,QAAQ;GACb,MAAM,MAAyB;IAC7B,GAAG;IACH,wBAAwB;KACtB,MAAM,EAAE,YAAY,WAAW,KAAK,KAAK,YAAY;AACrD,YAAO;MACL;MACA;MACA,4BAA4B,KAAK,QAAQ,KAAK,KAAK,uBAAuB,CAAC;MAC3E,OAAO,QAAQ,IAAI,aAAa;MACjC;;IAEJ;AACD,QAAK,MAAM,cAAc,KAAK,KAAK,eAAe,KAAK,EAAE;IACvD,MAAM,OAAO,WAAW,cAAc,WAAW;AACjD,QAAI,CAAC,KAAM;AAEX,SAAK,MAAM,UAAU,KAAK,QACxB,KAAI,OAAO,cAAe,UAAS,OAAO,cAAc,KAAK,KAAK,OAAO;;AAI7E,UAAO;KAEV;EACD,KAAK,EACH,MAAM,MAAM,OAAO;GACjB,MAAM,EAAE,UAAU,MAAM,OAAO;AAE/B,QAAK,MAAM,UAAU,MAAM,YAAY,MAAM,MAAM,CACjD,OAAM,OAAO,MAAM,OAAO,OAAO,CAAC,MAAM;KAG7C;EACD,MAAM,EACJ,MAAM,aAAa;GACjB,MAAM,EAAE,WAAW,MAAM,OAAO;AAChC,UAAO,OAAO,MAAM,YAAY,MAAM,OAAO,CAAC;KAEjD;EACD,MAAM,EACJ,MAAM,eAAe;GACnB,MAAM,EAAE,WAAW,MAAM,OAAO;AAChC,WAAQ,MAAM,YAAY,MAAM,OAAO,EAAE,KAAK,WAAW;AACvD,WAAO,OAAO,gBAAgB,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO;KACtE;KAEL;EACF;;AAOH,MAAa,aAAa,qBAAiC,iBAAiB,EAC1E,SAAS,EAAE,EACZ,EAAE"}
@@ -1,2 +1,2 @@
1
- import { c as WebpackLoader, l as WebpackLoaderOptions, u as createWebpackLoader } from "../../index-B9DAFF8c.js";
1
+ import { c as WebpackLoader, l as WebpackLoaderOptions, u as createWebpackLoader } from "../../index-h97OPng4.js";
2
2
  export { WebpackLoader, WebpackLoaderOptions, createWebpackLoader };
@@ -1,5 +1,5 @@
1
1
  import { createDynamicCore } from "../../dynamic.js";
2
- import { t as Core } from "../../core-BfIQeHzH.js";
2
+ import { t as Core } from "../../core-Dkl2eUwU.js";
3
3
  import { t as ValidationError } from "../../validation-Bf_v2L3p.js";
4
4
  import path from "node:path";
5
5
  import { parse } from "node:querystring";
@@ -1,7 +1,7 @@
1
- import { D as GetCollectionConfig } from "./core-15rgY8JW.js";
2
- import { t as FileCollectionStore } from "./file-store-270Y4Sx7.js";
3
- import { i as CompiledMDX, t as MDXCollection } from "./mdx-BfaapI6d.js";
4
- import { n as GitFileData } from "./git-Ce7r2zfM.js";
1
+ import { D as GetCollectionConfig } from "./core-1dkeRoD-.js";
2
+ import { t as FileCollectionStore } from "./file-store-NLjnayNa.js";
3
+ import { i as CompiledMDX, t as MDXCollection } from "./mdx-CBjuia2v.js";
4
+ import { n as GitFileData } from "./git-W7QH8hQh.js";
5
5
 
6
6
  //#region src/collections/mdx/runtime.d.ts
7
7
  interface MDXStoreData<Frontmatter, Attached = unknown> {
@@ -22,4 +22,4 @@ declare function mdxStoreLazy<Config, Name extends string, Attached>(_name: Name
22
22
  type WithGit = GitFileData;
23
23
  //#endregion
24
24
  export { mdxStoreLazy as a, mdxStore as i, MDXStoreLazyData as n, WithGit as r, MDXStoreData as t };
25
- //# sourceMappingURL=runtime-bpro4VYw.d.ts.map
25
+ //# sourceMappingURL=runtime-CY1liEj_.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-bpro4VYw.d.ts","names":[],"sources":["../src/collections/mdx/runtime.ts"],"mappings":";;;;;;UAOiB,YAAA;EACf,EAAA;EACA,QAAA,EAAU,WAAA,CAAY,WAAA,IAAe,QAAA;AAAA;AAAA,KAGlC,cAAA,gCACH,mBAAA,CAAoB,MAAA,EAAQ,IAAA,UAAc,aAAA,GACtC,mBAAA,CAAoB,MAAA,EAAQ,IAAA;AAAA,iBAGlB,QAAA,uCAAA,CACd,KAAA,EAAO,IAAA,EACP,IAAA,UACA,MAAA,EAAQ,MAAA,oBACP,mBAAA,CAAoB,YAAA,CAAa,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA;AAAA,UAcjD,gBAAA;EACf,EAAA;EACA,WAAA,EAAa,WAAA;EACb,IAAA,QAAY,OAAA,CAAQ,WAAA,CAAY,WAAA,IAAe,QAAA;AAAA;AAAA,iBAGjC,YAAA,uCAAA,CACd,KAAA,EAAO,IAAA,EACP,IAAA,UACA,MAAA;EACE,IAAA,EAAM,MAAA;EACN,IAAA,EAAM,MAAA,eAAqB,OAAA;AAAA,IAE5B,mBAAA,CAAoB,gBAAA,CAAiB,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA;AAAA,KAkB1D,OAAA,GAAU,WAAA"}
1
+ {"version":3,"file":"runtime-CY1liEj_.d.ts","names":[],"sources":["../src/collections/mdx/runtime.ts"],"mappings":";;;;;;UAOiB,YAAA;EACf,EAAA;EACA,QAAA,EAAU,WAAA,CAAY,WAAA,IAAe,QAAA;AAAA;AAAA,KAGlC,cAAA,gCACH,mBAAA,CAAoB,MAAA,EAAQ,IAAA,UAAc,aAAA,GACtC,mBAAA,CAAoB,MAAA,EAAQ,IAAA;AAAA,iBAGlB,QAAA,uCAAA,CACd,KAAA,EAAO,IAAA,EACP,IAAA,UACA,MAAA,EAAQ,MAAA,oBACP,mBAAA,CAAoB,YAAA,CAAa,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA;AAAA,UAcjD,gBAAA;EACf,EAAA;EACA,WAAA,EAAa,WAAA;EACb,IAAA,QAAY,OAAA,CAAQ,WAAA,CAAY,WAAA,IAAe,QAAA;AAAA;AAAA,iBAGjC,YAAA,uCAAA,CACd,KAAA,EAAO,IAAA,EACP,IAAA,UACA,MAAA;EACE,IAAA,EAAM,MAAA;EACN,IAAA,EAAM,MAAA,eAAqB,OAAA;AAAA,IAE5B,mBAAA,CAAoB,gBAAA,CAAiB,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA;AAAA,KAkB1D,OAAA,GAAU,WAAA"}
@@ -1,6 +1,6 @@
1
- import { D as GetCollectionConfig, E as Awaitable } from "./core-15rgY8JW.js";
2
- import { n as MapCollectionStore } from "./store-Cc6y2CDE.js";
3
- import { i as CompiledMDX, t as MDXCollection } from "./mdx-BfaapI6d.js";
1
+ import { D as GetCollectionConfig, E as Awaitable } from "./core-1dkeRoD-.js";
2
+ import { n as MapCollectionStore } from "./store-DySTeDAM.js";
3
+ import { i as CompiledMDX, t as MDXCollection } from "./mdx-CBjuia2v.js";
4
4
 
5
5
  //#region src/utils/async-cache.d.ts
6
6
  interface AsyncCache<V> {
@@ -26,4 +26,4 @@ declare const _internal_data: Map<string, StoreData>;
26
26
  declare function mdxStoreBrowser<Config, Name extends string, Attached>(name: Name, _input: Record<string, () => Promise<unknown>>): MapCollectionStore<string, MDXStoreBrowserData<GetFrontmatter<Config, Name>, Attached>>;
27
27
  //#endregion
28
28
  export { _internal_data as n, mdxStoreBrowser as r, MDXStoreBrowserData as t };
29
- //# sourceMappingURL=runtime-browser-BT3GpIH7.d.ts.map
29
+ //# sourceMappingURL=runtime-browser-BqhaLAei.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-browser-BT3GpIH7.d.ts","names":[],"sources":["../src/utils/async-cache.ts","../src/collections/mdx/runtime-browser.ts"],"mappings":";;;;;UAGiB,UAAA;EACf,MAAA,GAAS,GAAA,UAAa,EAAA,QAAU,SAAA,CAAU,CAAA,MAAO,CAAA,GAAI,WAAA,CAAY,CAAA;EACjE,MAAA,WAAiB,UAAA,CAAW,CAAA;EAC5B,UAAA,GAAa,GAAA;AAAA;;;UCEE,mBAAA;EACf,EAAA;EACA,OAAA,QAAe,SAAA,CAAU,WAAA,CAAY,WAAA,IAAe,QAAA;EACpD,MAAA,EAAQ,YAAA;AAAA;AAAA,UAGA,YAAA;EACR,OAAA;AAAA;AAAA,UAGQ,SAAA;EACR,SAAA,EAAW,UAAA,CAAW,WAAA;AAAA;AAAA,KAGnB,cAAA,gCACH,mBAAA,CAAoB,MAAA,EAAQ,IAAA,UAAc,aAAA,GACtC,mBAAA,CAAoB,MAAA,EAAQ,IAAA;AAAA,cAGrB,cAAA,EAAc,GAAA,SAAA,SAAA;AAAA,iBAEX,eAAA,uCAAA,CACd,IAAA,EAAM,IAAA,EACN,MAAA,EAAQ,MAAA,eAAqB,OAAA,aAC5B,kBAAA,SAA2B,mBAAA,CAAoB,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA"}
1
+ {"version":3,"file":"runtime-browser-BqhaLAei.d.ts","names":[],"sources":["../src/utils/async-cache.ts","../src/collections/mdx/runtime-browser.ts"],"mappings":";;;;;UAGiB,UAAA;EACf,MAAA,GAAS,GAAA,UAAa,EAAA,QAAU,SAAA,CAAU,CAAA,MAAO,CAAA,GAAI,WAAA,CAAY,CAAA;EACjE,MAAA,WAAiB,UAAA,CAAW,CAAA;EAC5B,UAAA,GAAa,GAAA;AAAA;;;UCEE,mBAAA;EACf,EAAA;EACA,OAAA,QAAe,SAAA,CAAU,WAAA,CAAY,WAAA,IAAe,QAAA;EACpD,MAAA,EAAQ,YAAA;AAAA;AAAA,UAGA,YAAA;EACR,OAAA;AAAA;AAAA,UAGQ,SAAA;EACR,SAAA,EAAW,UAAA,CAAW,WAAA;AAAA;AAAA,KAGnB,cAAA,gCACH,mBAAA,CAAoB,MAAA,EAAQ,IAAA,UAAc,aAAA,GACtC,mBAAA,CAAoB,MAAA,EAAQ,IAAA;AAAA,cAGrB,cAAA,EAAc,GAAA,SAAA,SAAA;AAAA,iBAEX,eAAA,uCAAA,CACd,IAAA,EAAM,IAAA,EACN,MAAA,EAAQ,MAAA,eAAqB,OAAA,aAC5B,kBAAA,SAA2B,mBAAA,CAAoB,cAAA,CAAe,MAAA,EAAQ,IAAA,GAAO,QAAA"}
@@ -1,4 +1,4 @@
1
- import { E as Awaitable } from "./core-15rgY8JW.js";
1
+ import { E as Awaitable } from "./core-1dkeRoD-.js";
2
2
 
3
3
  //#region src/collections/runtime/store.d.ts
4
4
  interface CollectionStore<Id, Data> {
@@ -28,4 +28,4 @@ declare class MapCollectionStore<Id, Data> implements CollectionStore<Id, Data>
28
28
  }
29
29
  //#endregion
30
30
  export { MapCollectionStore as n, CollectionStore as t };
31
- //# sourceMappingURL=store-Cc6y2CDE.d.ts.map
31
+ //# sourceMappingURL=store-DySTeDAM.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-Cc6y2CDE.d.ts","names":[],"sources":["../src/collections/runtime/store.ts"],"mappings":";;;UAEiB,eAAA;;AAAjB;;EAIE,QAAA,MAAc,KAAA,GAAQ,KAAA,EAAO,IAAA,KAAS,CAAA,KAAM,eAAA,CAAgB,EAAA,EAAI,CAAA;EAEhE,GAAA,GAAM,EAAA,EAAI,EAAA,KAAO,SAAA,CAAU,IAAA;EAC3B,IAAA,QAAY,SAAA,CAAU,IAAA;EAHsC;;;EAQ5D,UAAA,EAAY,IAAA;AAAA;AAAA,cAGD,kBAAA,sBAAwC,eAAA,CAAgB,EAAA,EAAI,IAAA;EAAA,iBACtD,OAAA;EAAA,iBACA,QAAA;cAEL,KAAA,EAAO,GAAA,CAAI,EAAA,EAAI,IAAA;EAK3B,GAAA,CAAI,EAAA,EAAI,EAAA,GAAK,IAAA;EAIb,IAAA,CAAA,GAAQ,IAAA;EAIR,QAAA,GAAA,CAAY,KAAA,GAAQ,KAAA,EAAO,IAAA,KAAS,CAAA,GAAI,kBAAA,CAAmB,EAAA,EAAI,CAAA;EAhC5B;;;EAuCnC,SAAA,QAAA,CAAkB,EAAA,GAAK,EAAA,EAAI,EAAA,EAAI,IAAA,EAAM,IAAA,MAAU,GAAA,EAAK,CAAA,IAAK,kBAAA,CAAmB,GAAA,EAAK,CAAA;EAAA,IAW7E,UAAA,CAAA,GAAc,IAAA;AAAA"}
1
+ {"version":3,"file":"store-DySTeDAM.d.ts","names":[],"sources":["../src/collections/runtime/store.ts"],"mappings":";;;UAEiB,eAAA;;AAAjB;;EAIE,QAAA,MAAc,KAAA,GAAQ,KAAA,EAAO,IAAA,KAAS,CAAA,KAAM,eAAA,CAAgB,EAAA,EAAI,CAAA;EAEhE,GAAA,GAAM,EAAA,EAAI,EAAA,KAAO,SAAA,CAAU,IAAA;EAC3B,IAAA,QAAY,SAAA,CAAU,IAAA;EAHsC;;;EAQ5D,UAAA,EAAY,IAAA;AAAA;AAAA,cAGD,kBAAA,sBAAwC,eAAA,CAAgB,EAAA,EAAI,IAAA;EAAA,iBACtD,OAAA;EAAA,iBACA,QAAA;cAEL,KAAA,EAAO,GAAA,CAAI,EAAA,EAAI,IAAA;EAK3B,GAAA,CAAI,EAAA,EAAI,EAAA,GAAK,IAAA;EAIb,IAAA,CAAA,GAAQ,IAAA;EAIR,QAAA,GAAA,CAAY,KAAA,GAAQ,KAAA,EAAO,IAAA,KAAS,CAAA,GAAI,kBAAA,CAAmB,EAAA,EAAI,CAAA;EAhC5B;;;EAuCnC,SAAA,QAAA,CAAkB,EAAA,GAAK,EAAA,EAAI,EAAA,EAAI,IAAA,EAAM,IAAA,MAAU,GAAA,EAAK,CAAA,IAAK,kBAAA,CAAmB,GAAA,EAAK,CAAA;EAAA,IAW7E,UAAA,CAAA,GAAc,IAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { n as CoreOptions, t as Core } from "../core-15rgY8JW.js";
1
+ import { n as CoreOptions, t as Core } from "../core-1dkeRoD-.js";
2
2
  import { PluginOption } from "vite";
3
3
 
4
4
  //#region src/vite/index.d.ts
@@ -1,4 +1,4 @@
1
- import { t as Core } from "../core-BfIQeHzH.js";
1
+ import { t as Core } from "../core-Dkl2eUwU.js";
2
2
  import { loaderPlugin } from "../plugins/loader/index.js";
3
3
  //#region src/vite/index.ts
4
4
  async function content(config, pluginOpitons = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fuma-content",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "The content processing layer for your app.",
5
5
  "keywords": [
6
6
  "Content",
@@ -1 +0,0 @@
1
- {"version":3,"file":"collections-BuskUhft.js","names":[],"sources":["../src/utils/hook.ts","../src/utils/pipe.ts","../src/collections/index.ts"],"sourcesContent":["import type { Awaitable } from \"@/types\";\n\nexport interface Hook<Context = undefined> {\n /**\n * add a hook\n *\n * @returns the same pipe instance\n */\n hook: (fn: (context: Context) => void) => Hook<Context>;\n run: (context: Context) => void;\n $inferHandler: (context: Context) => Awaitable<void>;\n}\n\nexport interface AsyncHook<Context = undefined> {\n /**\n * add a hook\n *\n * @returns the same pipe instance\n */\n hook: (fn: (context: Context) => Awaitable<void>) => AsyncHook<Context>;\n run: (context: Context) => Awaitable<void>;\n $inferHandler: (context: Context) => Awaitable<void>;\n}\n\nexport function hook<Context>(steps: ((ctx: Context) => void)[] = []): Hook<Context> {\n return {\n async run(ctx) {\n for (const step of steps) step(ctx);\n },\n hook(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n\nexport function asyncHook<Context>(\n steps: ((ctx: Context) => Awaitable<void>)[] = [],\n): AsyncHook<Context> {\n return {\n async run(ctx) {\n await Promise.all(steps.map((step) => step(ctx)));\n },\n hook(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n","import type { Awaitable } from \"@/types\";\n\nexport interface Pipe<Data, Context = undefined> {\n /**\n * add a transformation step\n *\n * @returns the same pipe instance\n */\n pipe: (fn: (data: Data, context: Context) => Data) => Pipe<Data, Context>;\n run: (data: Data, context: Context) => Data;\n $inferHandler: (data: Data, context: Context) => Data;\n}\n\nexport interface AsyncPipe<Data, Context = undefined> {\n /**\n * add a transformation step\n *\n * @returns the same pipe instance\n */\n pipe: (fn: (data: Data, context: Context) => Awaitable<Data>) => AsyncPipe<Data, Context>;\n run: (data: Data, context: Context) => Awaitable<Data>;\n $inferHandler: (data: Data, context: Context) => Awaitable<Data>;\n}\n\nexport function pipe<Data, Context>(\n steps: ((data: Data, context: Context) => Data)[] = [],\n): Pipe<Data, Context> {\n return {\n run(data, ctx) {\n for (const step of steps) {\n data = step(data, ctx);\n }\n return data;\n },\n pipe(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n\nexport function asyncPipe<Data, Context>(\n steps: ((data: Data, context: Context) => Awaitable<Data>)[] = [],\n): AsyncPipe<Data, Context> {\n return {\n async run(data, ctx) {\n for (const step of steps) {\n data = await step(data, ctx);\n }\n return data;\n },\n pipe(fn) {\n steps.push(fn);\n return this;\n },\n $inferHandler: undefined as never,\n };\n}\n","import { Core, EmitContext, EmitEntry, PluginOption, ResolvedConfig, ServerContext } from \"@/core\";\nimport { asyncHook, hook } from \"@/utils/hook\";\nimport { asyncPipe } from \"@/utils/pipe\";\n\nexport interface CollectionHookContext {\n core: Core;\n}\n\nexport class Collection {\n private readonly pluginHooks = new Map<symbol, unknown>();\n name = null as unknown as string;\n\n /**\n * on config loaded/updated\n */\n readonly onConfig = hook<CollectionHookContext & { config: ResolvedConfig }>();\n /**\n * Configure watch/dev server\n */\n readonly onServer = hook<CollectionHookContext & { server: ServerContext }>();\n readonly onInit = asyncHook<\n CollectionHookContext & {\n /**\n * You can add other collections to load from here\n */\n pendingCollections: Map<string, Collection>;\n }\n >();\n readonly onEmit = asyncPipe<EmitEntry[], EmitContext>();\n readonly plugins: PluginOption[] = [];\n\n pluginHook<T, Options>(hook: CollectionHook<T, Options>, options: Options): T;\n pluginHook<T>(hook: CollectionHook<T>): T;\n\n pluginHook<T, O>(hook: CollectionHook<T, O>, options?: O): T {\n let created = this.pluginHooks.get(hook.id) as T | undefined;\n if (created) return created;\n\n created = hook.create(this, options as O);\n this.pluginHooks.set(hook.id, created);\n return created;\n }\n\n getPluginHook<T>(hook: CollectionHook<T>): T | undefined {\n return this.pluginHooks.get(hook.id) as T | undefined;\n }\n}\n\nexport interface CollectionHook<T = unknown, Options = undefined> {\n id: symbol;\n create: (collection: Collection, options: Options) => T;\n}\n\nexport function defineCollectionHook<T, Options = undefined>(\n init: (collection: Collection, options: Options) => T,\n): CollectionHook<T, Options> {\n return {\n id: Symbol(),\n create: init,\n };\n}\n"],"mappings":";AAwBA,SAAgB,KAAc,QAAoC,EAAE,EAAiB;AACnF,QAAO;EACL,MAAM,IAAI,KAAK;AACb,QAAK,MAAM,QAAQ,MAAO,MAAK,IAAI;;EAErC,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;AAGH,SAAgB,UACd,QAA+C,EAAE,EAC7B;AACpB,QAAO;EACL,MAAM,IAAI,KAAK;AACb,SAAM,QAAQ,IAAI,MAAM,KAAK,SAAS,KAAK,IAAI,CAAC,CAAC;;EAEnD,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;;;ACzBH,SAAgB,KACd,QAAoD,EAAE,EACjC;AACrB,QAAO;EACL,IAAI,MAAM,KAAK;AACb,QAAK,MAAM,QAAQ,MACjB,QAAO,KAAK,MAAM,IAAI;AAExB,UAAO;;EAET,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;AAGH,SAAgB,UACd,QAA+D,EAAE,EACvC;AAC1B,QAAO;EACL,MAAM,IAAI,MAAM,KAAK;AACnB,QAAK,MAAM,QAAQ,MACjB,QAAO,MAAM,KAAK,MAAM,IAAI;AAE9B,UAAO;;EAET,KAAK,IAAI;AACP,SAAM,KAAK,GAAG;AACd,UAAO;;EAET,eAAe,KAAA;EAChB;;;;ACjDH,IAAa,aAAb,MAAwB;CACtB,8BAA+B,IAAI,KAAsB;CACzD,OAAO;;;;CAKP,WAAoB,MAA0D;;;;CAI9E,WAAoB,MAAyD;CAC7E,SAAkB,WAOf;CACH,SAAkB,WAAqC;CACvD,UAAmC,EAAE;CAKrC,WAAiB,MAA4B,SAAgB;EAC3D,IAAI,UAAU,KAAK,YAAY,IAAI,KAAK,GAAG;AAC3C,MAAI,QAAS,QAAO;AAEpB,YAAU,KAAK,OAAO,MAAM,QAAa;AACzC,OAAK,YAAY,IAAI,KAAK,IAAI,QAAQ;AACtC,SAAO;;CAGT,cAAiB,MAAwC;AACvD,SAAO,KAAK,YAAY,IAAI,KAAK,GAAG;;;AASxC,SAAgB,qBACd,MAC4B;AAC5B,QAAO;EACL,IAAI,QAAQ;EACZ,QAAQ;EACT"}