fuma-content 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{async-cache-BM9Yf4Nw.js → async-cache-U87GzQTb.js} +1 -1
- package/dist/async-cache-U87GzQTb.js.map +1 -0
- package/dist/{build-mdx-C1PZsGp2.js → build-mdx-BZxE8t2a.js} +16 -11
- package/dist/build-mdx-BZxE8t2a.js.map +1 -0
- package/dist/build-mdx-LhpFasX-.js +4 -0
- package/dist/bun/index.d.ts +7 -4
- package/dist/bun/index.d.ts.map +1 -1
- package/dist/bun/index.js +25 -19
- package/dist/bun/index.js.map +1 -1
- package/dist/{bun-QKQnqgIi.js → bun-CBROq3I0.js} +3 -3
- package/dist/bun-CBROq3I0.js.map +1 -0
- package/dist/code-generator-CjC4EEXg.js +102 -0
- package/dist/code-generator-CjC4EEXg.js.map +1 -0
- package/dist/collections/data/runtime.d.ts +15 -0
- package/dist/collections/data/runtime.d.ts.map +1 -0
- package/dist/collections/{meta → data}/runtime.js +4 -4
- package/dist/collections/data/runtime.js.map +1 -0
- package/dist/collections/data.d.ts +47 -0
- package/dist/collections/data.d.ts.map +1 -0
- package/dist/collections/data.js +5 -0
- package/dist/collections/fs.d.ts +3 -0
- package/dist/collections/fs.js +3 -0
- package/dist/collections/index.d.ts +2 -2
- package/dist/collections/index.js +2 -15
- package/dist/collections/json/loader-webpack.d.ts +9 -0
- package/dist/collections/json/loader-webpack.d.ts.map +1 -0
- package/dist/collections/json/loader-webpack.js +15 -0
- package/dist/collections/json/loader-webpack.js.map +1 -0
- package/dist/collections/mdx/loader-webpack.d.ts +5 -5
- package/dist/collections/mdx/loader-webpack.d.ts.map +1 -1
- package/dist/collections/mdx/loader-webpack.js +11 -21
- package/dist/collections/mdx/loader-webpack.js.map +1 -1
- package/dist/collections/mdx/react.d.ts +22 -0
- package/dist/collections/mdx/react.d.ts.map +1 -0
- package/dist/collections/mdx/react.js +35 -0
- package/dist/collections/mdx/react.js.map +1 -0
- package/dist/collections/mdx/runtime-browser.d.ts +11 -45
- package/dist/collections/mdx/runtime-browser.js +6 -44
- package/dist/collections/mdx/runtime-browser.js.map +1 -1
- package/dist/collections/mdx/runtime-dynamic.d.ts +16 -28
- package/dist/collections/mdx/runtime-dynamic.d.ts.map +1 -1
- package/dist/collections/mdx/runtime-dynamic.js +19 -23
- package/dist/collections/mdx/runtime-dynamic.js.map +1 -1
- package/dist/collections/mdx/runtime.d.ts +10 -49
- package/dist/collections/mdx/runtime.js +2 -11
- package/dist/collections/mdx/runtime.js.map +1 -1
- package/dist/collections/mdx.d.ts +6 -2
- package/dist/collections/mdx.js +6 -246
- package/dist/collections/runtime/file-store.d.ts +4 -22
- package/dist/collections/runtime/file-store.js +15 -14
- package/dist/collections/runtime/file-store.js.map +1 -1
- package/dist/collections/runtime/store.d.ts +3 -3
- package/dist/collections/runtime/store.js +2 -2
- package/dist/collections/yaml/loader-webpack.d.ts +9 -0
- package/dist/collections/yaml/loader-webpack.d.ts.map +1 -0
- package/dist/collections/yaml/loader-webpack.js +15 -0
- package/dist/collections/yaml/loader-webpack.js.map +1 -0
- package/dist/collections-DNFRdCuB.js +98 -0
- package/dist/collections-DNFRdCuB.js.map +1 -0
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/core-BO3b8jMg.d.ts +313 -0
- package/dist/core-BO3b8jMg.d.ts.map +1 -0
- package/dist/core-D5QHSKk6.js +223 -0
- package/dist/core-D5QHSKk6.js.map +1 -0
- package/dist/data-9h98oZwj.js +158 -0
- package/dist/data-9h98oZwj.js.map +1 -0
- package/dist/dynamic-CTYYdl7_.d.ts +33 -0
- package/dist/dynamic-CTYYdl7_.d.ts.map +1 -0
- package/dist/{dynamic-B40uAtdo.js → dynamic-DhKTOrIl.js} +8 -7
- package/dist/dynamic-DhKTOrIl.js.map +1 -0
- package/dist/dynamic.d.ts +3 -0
- package/dist/dynamic.js +3 -0
- package/dist/file-store-laO4IjvB.d.ts +21 -0
- package/dist/file-store-laO4IjvB.d.ts.map +1 -0
- package/dist/fs-D34Sztbh.d.ts +44 -0
- package/dist/fs-D34Sztbh.d.ts.map +1 -0
- package/dist/fs-WWbLA7Gx.js +66 -0
- package/dist/fs-WWbLA7Gx.js.map +1 -0
- package/dist/{fuma-matter-O4fA6nSx.js → fuma-matter-BuBO2w-p.js} +2 -2
- package/dist/fuma-matter-BuBO2w-p.js.map +1 -0
- package/dist/git-2CjUW3M5.d.ts +37 -0
- package/dist/git-2CjUW3M5.d.ts.map +1 -0
- package/dist/git-CQWA37-X.js +60 -0
- package/dist/git-CQWA37-X.js.map +1 -0
- package/dist/index-Da88Sj8w.d.ts +87 -0
- package/dist/index-Da88Sj8w.d.ts.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/load-from-file-BZxc_BhC.js +3 -0
- package/dist/{load-from-file-1f4WaHsf.js → load-from-file-irx0JI6j.js} +5 -8
- package/dist/load-from-file-irx0JI6j.js.map +1 -0
- package/dist/loader-AIEwGc2f.js +9 -0
- package/dist/loader-BhXHF8vy.js +16 -0
- package/dist/loader-BhXHF8vy.js.map +1 -0
- package/dist/loader-BuR4gkKg.js +77 -0
- package/dist/loader-BuR4gkKg.js.map +1 -0
- package/dist/loader-BzQpSBvP.js +59 -0
- package/dist/loader-BzQpSBvP.js.map +1 -0
- package/dist/{loader-CXnMFuyE.js → loader-D6StkShK.js} +8 -7
- package/dist/loader-D6StkShK.js.map +1 -0
- package/dist/loader-DCK4RwOh.js +8 -0
- package/dist/loader-DwpOcxgh.js +17 -0
- package/dist/loader-DwpOcxgh.js.map +1 -0
- package/dist/loader-zsTVgQjO.js +8 -0
- package/dist/mdx-Dt9hirUu.d.ts +144 -0
- package/dist/mdx-Dt9hirUu.d.ts.map +1 -0
- package/dist/mdx-iZ2uP27Z.js +303 -0
- package/dist/mdx-iZ2uP27Z.js.map +1 -0
- package/dist/next/index.d.ts +6 -10
- package/dist/next/index.d.ts.map +1 -1
- package/dist/next/index.js +23 -31
- package/dist/next/index.js.map +1 -1
- package/dist/node/index.d.ts +8 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +10 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/loader.d.ts +5 -2
- package/dist/node/loader.d.ts.map +1 -1
- package/dist/node/loader.js +17 -14
- package/dist/node/loader.js.map +1 -1
- package/dist/{node-CGIIJIcs.js → node-2VZOh3P9.js} +7 -5
- package/dist/node-2VZOh3P9.js.map +1 -0
- package/dist/plugins/git.d.ts +3 -2
- package/dist/plugins/git.js +2 -61
- package/dist/plugins/json-schema.d.ts +26 -2
- package/dist/plugins/json-schema.d.ts.map +1 -0
- package/dist/plugins/json-schema.js +42 -51
- package/dist/plugins/json-schema.js.map +1 -1
- package/dist/plugins/loader/index.d.ts +4 -0
- package/dist/plugins/loader/index.js +3 -0
- package/dist/plugins/loader/webpack.d.ts +4 -0
- package/dist/plugins/loader/webpack.js +60 -0
- package/dist/plugins/loader/webpack.js.map +1 -0
- package/dist/runtime-HN-HSB0Z.d.ts +31 -0
- package/dist/runtime-HN-HSB0Z.d.ts.map +1 -0
- package/dist/runtime-browser-BQEk7qjc.d.ts +29 -0
- package/dist/runtime-browser-BQEk7qjc.d.ts.map +1 -0
- package/dist/store-DiuGdV5M.d.ts +31 -0
- package/dist/store-DiuGdV5M.d.ts.map +1 -0
- package/dist/{store-0LQ2PlH6.js → store-IvpEBdxi.js} +4 -4
- package/dist/store-IvpEBdxi.js.map +1 -0
- package/dist/{validation-BOJKRAp5.js → validation-BvVvvLII.js} +11 -2
- package/dist/validation-BvVvvLII.js.map +1 -0
- package/dist/vite/index.d.ts +5 -15
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +24 -21
- package/dist/vite/index.js.map +1 -1
- package/dist/{vite-X-2Al8fq.js → vite-C1qXY47G.js} +4 -3
- package/dist/vite-C1qXY47G.js.map +1 -0
- package/package.json +51 -46
- package/dist/async-cache-BM9Yf4Nw.js.map +0 -1
- package/dist/build-D8A5ByFk.js +0 -42
- package/dist/build-D8A5ByFk.js.map +0 -1
- package/dist/build-mdx-C1PZsGp2.js.map +0 -1
- package/dist/build-mdx-DFndaVbS.js +0 -4
- package/dist/bun-QKQnqgIi.js.map +0 -1
- package/dist/code-generator-gPtrfZ6Q.js +0 -133
- package/dist/code-generator-gPtrfZ6Q.js.map +0 -1
- package/dist/collections/handlers/fs.d.ts +0 -2
- package/dist/collections/handlers/fs.js +0 -28
- package/dist/collections/handlers/fs.js.map +0 -1
- package/dist/collections/index.js.map +0 -1
- package/dist/collections/mdx/runtime-browser.d.ts.map +0 -1
- package/dist/collections/mdx/runtime.d.ts.map +0 -1
- package/dist/collections/mdx.js.map +0 -1
- package/dist/collections/meta/loader-webpack.d.ts +0 -9
- package/dist/collections/meta/loader-webpack.d.ts.map +0 -1
- package/dist/collections/meta/loader-webpack.js +0 -28
- package/dist/collections/meta/loader-webpack.js.map +0 -1
- package/dist/collections/meta/runtime.d.ts +0 -11
- package/dist/collections/meta/runtime.d.ts.map +0 -1
- package/dist/collections/meta/runtime.js.map +0 -1
- package/dist/collections/meta.d.ts +0 -2
- package/dist/collections/meta.js +0 -134
- package/dist/collections/meta.js.map +0 -1
- package/dist/collections/runtime/file-store.d.ts.map +0 -1
- package/dist/core-Bkh-SI_3.d.ts +0 -561
- package/dist/core-Bkh-SI_3.d.ts.map +0 -1
- package/dist/core-ZuoVBkeg.js +0 -170
- package/dist/core-ZuoVBkeg.js.map +0 -1
- package/dist/dynamic-B40uAtdo.js.map +0 -1
- package/dist/fuma-matter-O4fA6nSx.js.map +0 -1
- package/dist/load-from-file-1f4WaHsf.js.map +0 -1
- package/dist/load-from-file-BTNnBu6f.js +0 -3
- package/dist/loader-80abXEHx.js +0 -4
- package/dist/loader-BFhPyg3z.js +0 -4
- package/dist/loader-CXnMFuyE.js.map +0 -1
- package/dist/loader-gk94iHf5.js +0 -66
- package/dist/loader-gk94iHf5.js.map +0 -1
- package/dist/next/index.cjs +0 -502
- package/dist/node-CGIIJIcs.js.map +0 -1
- package/dist/pipe-5cnvE6KY.js +0 -31
- package/dist/pipe-5cnvE6KY.js.map +0 -1
- package/dist/plugins/git.js.map +0 -1
- package/dist/plugins/with-loader/index.d.ts +0 -2
- package/dist/plugins/with-loader/index.js +0 -28
- package/dist/plugins/with-loader/index.js.map +0 -1
- package/dist/plugins/with-loader/webpack.d.ts +0 -19
- package/dist/plugins/with-loader/webpack.d.ts.map +0 -1
- package/dist/plugins/with-loader/webpack.js +0 -43
- package/dist/plugins/with-loader/webpack.js.map +0 -1
- package/dist/store-0LQ2PlH6.js.map +0 -1
- package/dist/store-DEjYYF6a.d.ts +0 -31
- package/dist/store-DEjYYF6a.d.ts.map +0 -1
- package/dist/validation-BOJKRAp5.js.map +0 -1
- package/dist/vite-X-2Al8fq.js.map +0 -1
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import "../../code-generator-gPtrfZ6Q.js";
|
|
2
|
-
import "../../core-ZuoVBkeg.js";
|
|
3
|
-
import "../../validation-BOJKRAp5.js";
|
|
4
|
-
import { t as createDynamicCore } from "../../dynamic-B40uAtdo.js";
|
|
5
|
-
import { getCore, toWebpack } from "../../plugins/with-loader/webpack.js";
|
|
6
|
-
import { t as createMetaLoader } from "../../loader-gk94iHf5.js";
|
|
7
|
-
|
|
8
|
-
//#region src/collections/meta/loader-webpack.ts
|
|
9
|
-
let instance;
|
|
10
|
-
async function loader(source) {
|
|
11
|
-
const callback = this.async();
|
|
12
|
-
const options = this.getOptions();
|
|
13
|
-
this.cacheable(true);
|
|
14
|
-
this.addDependency(options.absoluteCompiledConfigPath);
|
|
15
|
-
if (!instance) instance = toWebpack(createMetaLoader(createDynamicCore({
|
|
16
|
-
core: getCore(options),
|
|
17
|
-
buildConfig: false,
|
|
18
|
-
mode: options.isDev ? "dev" : "production"
|
|
19
|
-
}), {
|
|
20
|
-
json: "json",
|
|
21
|
-
yaml: "js"
|
|
22
|
-
}));
|
|
23
|
-
await instance.call(this, source, callback);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
export { loader as default };
|
|
28
|
-
//# sourceMappingURL=loader-webpack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader-webpack.js","names":["instance: WebpackLoader | undefined"],"sources":["../../../src/collections/meta/loader-webpack.ts"],"sourcesContent":["import type { LoaderContext } from \"webpack\";\nimport { createMetaLoader } from \"@/collections/meta/loader\";\nimport {\n toWebpack,\n getCore,\n type WebpackLoader,\n type WebpackLoaderOptions,\n} from \"@/plugins/with-loader/webpack\";\nimport { createDynamicCore } from \"@/config/dynamic\";\n\nlet instance: WebpackLoader | undefined;\n\nexport default async function loader(\n this: LoaderContext<WebpackLoaderOptions>,\n source: string,\n): Promise<void> {\n const callback = this.async();\n const options = this.getOptions();\n this.cacheable(true);\n this.addDependency(options.absoluteCompiledConfigPath);\n\n if (!instance) {\n instance = toWebpack(\n createMetaLoader(\n createDynamicCore({\n core: getCore(options),\n buildConfig: false,\n mode: options.isDev ? \"dev\" : \"production\",\n }),\n {\n json: \"json\",\n yaml: \"js\",\n },\n ),\n );\n }\n\n await instance.call(this, source, callback);\n}\n"],"mappings":";;;;;;;;AAUA,IAAIA;AAEJ,eAA8B,OAE5B,QACe;CACf,MAAM,WAAW,KAAK,OAAO;CAC7B,MAAM,UAAU,KAAK,YAAY;AACjC,MAAK,UAAU,KAAK;AACpB,MAAK,cAAc,QAAQ,2BAA2B;AAEtD,KAAI,CAAC,SACH,YAAW,UACT,iBACE,kBAAkB;EAChB,MAAM,QAAQ,QAAQ;EACtB,aAAa;EACb,MAAM,QAAQ,QAAQ,QAAQ;EAC/B,CAAC,EACF;EACE,MAAM;EACN,MAAM;EACP,CACF,CACF;AAGH,OAAM,SAAS,KAAK,MAAM,QAAQ,SAAS"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { T as MetaCollection, q as GetCollectionConfig } from "../../core-Bkh-SI_3.js";
|
|
2
|
-
import "../../store-DEjYYF6a.js";
|
|
3
|
-
import { FileCollectionStore } from "../runtime/file-store.js";
|
|
4
|
-
|
|
5
|
-
//#region src/collections/meta/runtime.d.ts
|
|
6
|
-
declare function metaStore<Config, Name extends string>(_name: Name, base: string, input: Record<string, unknown>): FileCollectionStore<{
|
|
7
|
-
data: GetCollectionConfig<Config, Name> extends MetaCollection<infer Data> ? Data : never;
|
|
8
|
-
}>;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { metaStore };
|
|
11
|
-
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../../../src/collections/meta/runtime.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,8CACP,2BAEA,0BACN;QACK,oBAAoB,QAAQ,cAAc;AALlD,CAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","names":[],"sources":["../../../src/collections/meta/runtime.ts"],"sourcesContent":["import type { GetCollectionConfig } from \"@/types\";\nimport { FileCollectionStore } from \"@/collections/runtime/file-store\";\nimport type { MetaCollection } from \"@/collections/meta\";\n\nexport function metaStore<Config, Name extends string>(\n _name: Name,\n base: string,\n input: Record<string, unknown>,\n): FileCollectionStore<{\n data: GetCollectionConfig<Config, Name> extends MetaCollection<infer Data>\n ? Data\n : never;\n}> {\n type Metadata =\n GetCollectionConfig<Config, Name> extends MetaCollection<infer Data>\n ? Data\n : never;\n const merged = input as Record<\n string,\n {\n data: Metadata;\n }\n >;\n\n for (const [key, value] of Object.entries(input)) {\n merged[key] = {\n data: value as Metadata,\n };\n }\n\n return new FileCollectionStore(base, merged);\n}\n"],"mappings":";;;AAIA,SAAgB,UACd,OACA,MACA,OAKC;CAKD,MAAM,SAAS;AAOf,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,QAAO,OAAO,EACZ,MAAM,OACP;AAGH,QAAO,IAAI,oBAAoB,MAAM,OAAO"}
|
package/dist/collections/meta.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { t as asyncPipe } from "../pipe-5cnvE6KY.js";
|
|
2
|
-
import { createCollection } from "./index.js";
|
|
3
|
-
import { initFileCollection } from "./handlers/fs.js";
|
|
4
|
-
import { withLoader } from "../plugins/with-loader/index.js";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
|
|
7
|
-
//#region src/collections/meta.ts
|
|
8
|
-
const metaTypeInfo = {
|
|
9
|
-
id: "meta",
|
|
10
|
-
plugins: [plugin()]
|
|
11
|
-
};
|
|
12
|
-
function defineMeta(config) {
|
|
13
|
-
return createCollection(metaTypeInfo, (collection, options) => {
|
|
14
|
-
const handlers = collection.handlers;
|
|
15
|
-
initFileCollection(collection, options, {
|
|
16
|
-
supportedFormats: ["json", "yaml"],
|
|
17
|
-
...config
|
|
18
|
-
});
|
|
19
|
-
handlers.meta = {
|
|
20
|
-
schema: config.schema,
|
|
21
|
-
transform: asyncPipe()
|
|
22
|
-
};
|
|
23
|
-
handlers["json-schema"] = { async create() {
|
|
24
|
-
const { z, ZodType } = await import("zod");
|
|
25
|
-
if (config.schema instanceof ZodType) return z.toJSONSchema(config.schema, {
|
|
26
|
-
io: "input",
|
|
27
|
-
unrepresentable: "any"
|
|
28
|
-
});
|
|
29
|
-
else return config.schema["~standard"]?.jsonSchema.input({ target: "draft-2020-12" });
|
|
30
|
-
} };
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
function plugin() {
|
|
34
|
-
const metaLoaderGlob = /\.(json|yaml)(\?.+?)?$/;
|
|
35
|
-
async function generateCollectionStore(context, collection) {
|
|
36
|
-
const fsHandler = collection.handlers.fs;
|
|
37
|
-
if (!fsHandler) return;
|
|
38
|
-
const { codegen, core } = context;
|
|
39
|
-
codegen.addNamedImport(["metaStore"], "fuma-content/collections/meta/runtime");
|
|
40
|
-
codegen.addNamespaceImport("Config", codegen.formatImportPath(core.getOptions().configPath), true);
|
|
41
|
-
const base = path.relative(process.cwd(), fsHandler.dir);
|
|
42
|
-
const glob = await codegen.generateGlobImport(fsHandler.patterns, {
|
|
43
|
-
query: {
|
|
44
|
-
collection: collection.name,
|
|
45
|
-
workspace: context.workspace
|
|
46
|
-
},
|
|
47
|
-
import: "default",
|
|
48
|
-
base: fsHandler.dir,
|
|
49
|
-
eager: true
|
|
50
|
-
});
|
|
51
|
-
const initializer = `metaStore<typeof Config, "${collection.name}">("${collection.name}", "${base}", ${glob})`;
|
|
52
|
-
codegen.push(`export const ${collection.name} = ${initializer};`);
|
|
53
|
-
}
|
|
54
|
-
return withLoader({
|
|
55
|
-
name: "meta",
|
|
56
|
-
configureServer(server) {
|
|
57
|
-
if (!server.watcher) return;
|
|
58
|
-
server.watcher.on("all", async (event, file) => {
|
|
59
|
-
if (event === "change") return;
|
|
60
|
-
if (!this.core.getCollections().find((collection) => {
|
|
61
|
-
const handlers = collection.handlers;
|
|
62
|
-
if (!handlers.meta || !handlers.fs) return false;
|
|
63
|
-
return handlers.fs.hasFile(file);
|
|
64
|
-
})) return;
|
|
65
|
-
await this.core.emit({
|
|
66
|
-
filterPlugin: (plugin$1) => plugin$1.name === "meta",
|
|
67
|
-
filterWorkspace: () => false,
|
|
68
|
-
write: true
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
},
|
|
72
|
-
emit() {
|
|
73
|
-
return Promise.all([this.createCodeGenerator("meta.ts", async (ctx) => {
|
|
74
|
-
for (const collection of this.core.getCollections()) await generateCollectionStore(ctx, collection);
|
|
75
|
-
})]);
|
|
76
|
-
},
|
|
77
|
-
next: { config(nextConfig) {
|
|
78
|
-
const { configPath, outDir } = this.core.getOptions();
|
|
79
|
-
const loaderPath = "fuma-content/collections/meta/loader-webpack";
|
|
80
|
-
const loaderOptions = {
|
|
81
|
-
configPath,
|
|
82
|
-
outDir,
|
|
83
|
-
absoluteCompiledConfigPath: path.resolve(this.core.getCompiledConfigPath()),
|
|
84
|
-
isDev: process.env.NODE_ENV === "development"
|
|
85
|
-
};
|
|
86
|
-
return {
|
|
87
|
-
...nextConfig,
|
|
88
|
-
turbopack: {
|
|
89
|
-
...nextConfig.turbopack,
|
|
90
|
-
rules: {
|
|
91
|
-
...nextConfig.turbopack?.rules,
|
|
92
|
-
"*.json": {
|
|
93
|
-
loaders: [{
|
|
94
|
-
loader: loaderPath,
|
|
95
|
-
options: loaderOptions
|
|
96
|
-
}],
|
|
97
|
-
as: "*.json"
|
|
98
|
-
},
|
|
99
|
-
"*.yaml": {
|
|
100
|
-
loaders: [{
|
|
101
|
-
loader: loaderPath,
|
|
102
|
-
options: loaderOptions
|
|
103
|
-
}],
|
|
104
|
-
as: "*.js"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
webpack(config, options) {
|
|
109
|
-
config.module ||= {};
|
|
110
|
-
config.module.rules ||= [];
|
|
111
|
-
config.module.rules.push({
|
|
112
|
-
test: metaLoaderGlob,
|
|
113
|
-
enforce: "pre",
|
|
114
|
-
use: [{
|
|
115
|
-
loader: loaderPath,
|
|
116
|
-
options: loaderOptions
|
|
117
|
-
}]
|
|
118
|
-
});
|
|
119
|
-
return nextConfig.webpack?.(config, options) ?? config;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
} }
|
|
123
|
-
}, {
|
|
124
|
-
test: metaLoaderGlob,
|
|
125
|
-
async createLoader(environment) {
|
|
126
|
-
const { createMetaLoader } = await import("../loader-BFhPyg3z.js");
|
|
127
|
-
return createMetaLoader({ getCore: () => this.core }, { json: environment === "vite" ? "json" : "js" });
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//#endregion
|
|
133
|
-
export { defineMeta };
|
|
134
|
-
//# sourceMappingURL=meta.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","names":["metaTypeInfo: CollectionTypeInfo","plugin","loaderOptions: WebpackLoaderOptions"],"sources":["../../src/collections/meta.ts"],"sourcesContent":["import {\n type Collection,\n type CollectionTypeInfo,\n createCollection,\n} from \"@/collections\";\nimport {\n type FileHandlerConfig,\n initFileCollection,\n} from \"@/collections/handlers/fs\";\nimport type { EmitCodeGeneratorContext, Plugin } from \"@/core\";\nimport type {\n StandardSchemaV1,\n StandardJSONSchemaV1,\n} from \"@standard-schema/spec\";\nimport path from \"node:path\";\nimport type { Configuration } from \"webpack\";\nimport { withLoader } from \"@/plugins/with-loader\";\nimport type { TurbopackLoaderOptions } from \"next/dist/server/config-shared\";\nimport type { WebpackLoaderOptions } from \"@/plugins/with-loader/webpack\";\nimport { type AsyncPipe, asyncPipe } from \"@/utils/pipe\";\n\nexport interface MetaTransformationContext {\n path: string;\n source: string;\n}\n\nexport interface MetaCollectionHandler {\n /**\n * Transform metadata\n */\n transform: AsyncPipe<unknown, MetaTransformationContext>;\n schema?: StandardSchemaV1;\n}\n\nexport interface MetaCollectionConfig<\n Schema extends StandardSchemaV1,\n> extends Omit<FileHandlerConfig, \"supportedFormats\"> {\n schema?: Schema;\n}\n\nexport type MetaCollection<_Data> = Collection & {\n _type?: _Data;\n};\n\nconst metaTypeInfo: CollectionTypeInfo = {\n id: \"meta\",\n plugins: [plugin()],\n};\n\nexport function defineMeta<Schema extends StandardSchemaV1>(\n config: MetaCollectionConfig<Schema>,\n): MetaCollection<\n Schema extends StandardSchemaV1\n ? StandardSchemaV1.InferOutput<Schema>\n : Record<string, unknown>\n> {\n return createCollection(metaTypeInfo, (collection, options) => {\n const handlers = collection.handlers;\n initFileCollection(collection, options, {\n supportedFormats: [\"json\", \"yaml\"],\n ...config,\n });\n handlers.meta = {\n schema: config.schema,\n transform: asyncPipe(),\n };\n handlers[\"json-schema\"] = {\n async create() {\n const { z, ZodType } = await import(\"zod\");\n\n if (config.schema instanceof ZodType)\n return z.toJSONSchema(config.schema, {\n io: \"input\",\n unrepresentable: \"any\",\n });\n else\n return (config.schema as unknown as Partial<StandardJSONSchemaV1>)[\n \"~standard\"\n ]?.jsonSchema.input({\n target: \"draft-2020-12\",\n });\n },\n };\n });\n}\n\nfunction plugin(): Plugin {\n const metaLoaderGlob = /\\.(json|yaml)(\\?.+?)?$/;\n\n async function generateCollectionStore(\n context: EmitCodeGeneratorContext,\n collection: Collection,\n ) {\n const fsHandler = collection.handlers.fs;\n if (!fsHandler) return;\n const { codegen, core } = context;\n\n codegen.addNamedImport(\n [\"metaStore\"],\n \"fuma-content/collections/meta/runtime\",\n );\n codegen.addNamespaceImport(\n \"Config\",\n codegen.formatImportPath(core.getOptions().configPath),\n true,\n );\n const base = path.relative(process.cwd(), fsHandler.dir);\n const glob = await codegen.generateGlobImport(fsHandler.patterns, {\n query: {\n collection: collection.name,\n workspace: context.workspace,\n },\n import: \"default\",\n base: fsHandler.dir,\n eager: true,\n });\n const initializer = `metaStore<typeof Config, \"${collection.name}\">(\"${collection.name}\", \"${base}\", ${glob})`;\n codegen.push(`export const ${collection.name} = ${initializer};`);\n }\n\n const base: Plugin = {\n name: \"meta\",\n configureServer(server) {\n if (!server.watcher) return;\n\n server.watcher.on(\"all\", async (event, file) => {\n if (event === \"change\") return;\n const updatedCollection = this.core\n .getCollections()\n .find((collection) => {\n const handlers = collection.handlers;\n if (!handlers.meta || !handlers.fs) return false;\n return handlers.fs.hasFile(file);\n });\n\n if (!updatedCollection) return;\n await this.core.emit({\n filterPlugin: (plugin) => plugin.name === \"meta\",\n filterWorkspace: () => false,\n write: true,\n });\n });\n },\n emit() {\n return Promise.all([\n this.createCodeGenerator(\"meta.ts\", async (ctx) => {\n for (const collection of this.core.getCollections()) {\n await generateCollectionStore(ctx, collection);\n }\n }),\n ]);\n },\n next: {\n config(nextConfig) {\n const { configPath, outDir } = this.core.getOptions();\n const loaderPath = \"fuma-content/collections/meta/loader-webpack\";\n const loaderOptions: WebpackLoaderOptions = {\n configPath,\n outDir,\n absoluteCompiledConfigPath: path.resolve(\n this.core.getCompiledConfigPath(),\n ),\n isDev: process.env.NODE_ENV === \"development\",\n };\n\n return {\n ...nextConfig,\n turbopack: {\n ...nextConfig.turbopack,\n rules: {\n ...nextConfig.turbopack?.rules,\n \"*.json\": {\n loaders: [\n {\n loader: loaderPath,\n options: loaderOptions as unknown as TurbopackLoaderOptions,\n },\n ],\n as: \"*.json\",\n },\n \"*.yaml\": {\n loaders: [\n {\n loader: loaderPath,\n options: loaderOptions as unknown as TurbopackLoaderOptions,\n },\n ],\n as: \"*.js\",\n },\n },\n },\n webpack(config: Configuration, options) {\n config.module ||= {};\n config.module.rules ||= [];\n config.module.rules.push({\n test: metaLoaderGlob,\n enforce: \"pre\",\n use: [\n {\n loader: loaderPath,\n options: loaderOptions,\n },\n ],\n });\n\n return nextConfig.webpack?.(config, options) ?? config;\n },\n };\n },\n },\n };\n\n return withLoader(base, {\n test: metaLoaderGlob,\n async createLoader(environment) {\n const { createMetaLoader } = await import(\"./meta/loader\");\n return createMetaLoader(\n {\n getCore: () => this.core,\n },\n {\n json: environment === \"vite\" ? \"json\" : \"js\",\n },\n );\n },\n });\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-store.d.ts","names":[],"sources":["../../../src/collections/runtime/file-store.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,QAAA;;;AAAjB;EAuBa,IAAA,EAAA,MAAA;EACX;;;EAEgC,QAAA,EAAA,MAAA;;AAYP,cAfd,mBAec,CAAA,CAAA,CAAA,SAfiB,qBAejB,CAdzB,QAcyB,GAdd,CAcc,CAAA,CAAA;EAAM,WAAA,CAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAZC,MAYD,CAAA,MAAA,EAZgB,CAYhB,CAAA;EAAW,SAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,KAAA,EAA5B,QAA4B,GAAjB,CAAiB,EAAA,GAAX,QAAW,GAAA,CAAA,CAAA,EACvC,mBADuC,CACnB,CADmB,CAAA;EACnB,KAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,KAAA,EAKN,QALM,GAKK,CALL,EAAA,GAKW,QALX,GAKsB,CALtB,CAAA,EAMpB,mBANoB,CAMA,CANA,CAAA"}
|