@farming-labs/farmjs 0.2.120 → 0.2.122
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/README.md +25 -0
- package/dist/agent-skills.d.ts +13 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +62 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/config-values.d.ts +9 -0
- package/dist/config-values.d.ts.map +1 -0
- package/dist/config-values.js +55 -0
- package/dist/config-values.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -6
- package/dist/config.js.map +1 -1
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +23 -12
- package/dist/content.js.map +1 -1
- package/dist/mdx-build-cache.d.ts +25 -0
- package/dist/mdx-build-cache.d.ts.map +1 -0
- package/dist/mdx-build-cache.js +140 -0
- package/dist/mdx-build-cache.js.map +1 -0
- package/dist/mdx-compiler-fingerprint.d.ts +5 -0
- package/dist/mdx-compiler-fingerprint.d.ts.map +1 -0
- package/dist/mdx-compiler-fingerprint.js +131 -0
- package/dist/mdx-compiler-fingerprint.js.map +1 -0
- package/dist/mdx-core.d.ts +4 -0
- package/dist/mdx-core.d.ts.map +1 -0
- package/dist/mdx-core.js +23 -0
- package/dist/mdx-core.js.map +1 -0
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +1 -1
- package/dist/page.js.map +1 -1
- package/dist/react.d.ts +2 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -2
- package/dist/react.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +55 -14
- package/dist/server.js.map +1 -1
- package/dist/shell-plugin.d.ts +7 -0
- package/dist/shell-plugin.d.ts.map +1 -0
- package/dist/shell-plugin.js +26 -0
- package/dist/shell-plugin.js.map +1 -0
- package/dist/shell.d.ts +11 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +11 -0
- package/dist/shell.js.map +1 -0
- package/dist/vite.d.ts +9 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +83 -7
- package/dist/vite.js.map +1 -1
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -66,6 +66,31 @@ same theme. This is the same unified CSS entrypoint used by the Next.js,
|
|
|
66
66
|
TanStack Start, SvelteKit, Astro, and Nuxt integrations. The adapter does not
|
|
67
67
|
ship or inject a second Farm-specific theme stylesheet.
|
|
68
68
|
|
|
69
|
+
## Repeated production builds
|
|
70
|
+
|
|
71
|
+
The adapter reuses unchanged Markdown/MDX compilation and syntax highlighting
|
|
72
|
+
in production builds. It stores the compiled code and source maps under
|
|
73
|
+
`<Vite cacheDir>/farming-docs/mdx-v1.json`; Vite normally places `cacheDir` in
|
|
74
|
+
`node_modules/.vite`. Preserve that directory in your CI build cache to reuse
|
|
75
|
+
work across jobs. Deleting it only causes compilation to run again.
|
|
76
|
+
|
|
77
|
+
Cache entries are keyed by source, module path, mode, highlighting themes,
|
|
78
|
+
Node version, and a content fingerprint of the compiler implementation and
|
|
79
|
+
its dependencies. Vite still discovers and builds imports, components, CSS,
|
|
80
|
+
routes, and deployment output normally. Development and watch builds do not
|
|
81
|
+
use this cache. Missing, corrupt, incompatible, or unwritable cache files
|
|
82
|
+
fall back to compilation; compiler errors still fail the build.
|
|
83
|
+
|
|
84
|
+
The cache retains at most 1,024 modules and approximately 32 MiB of payload.
|
|
85
|
+
It does not cache rendered HTML or change client navigation or prerendering.
|
|
86
|
+
To diagnose a build without MDX cache reuse:
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
export default withDocs(defineConfig({}), { buildCache: false });
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The lower-level `docsMdx({ buildCache: false })` option has the same behavior.
|
|
93
|
+
|
|
69
94
|
## Edge deployments
|
|
70
95
|
|
|
71
96
|
Farm edge targets use the adapter's build-time compiler automatically. It
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
export interface FarmDocsAgentSkillsOptions {
|
|
3
|
+
/** Path to docs.config, relative to the Farm application root. */
|
|
4
|
+
configPath?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Snapshot configured Agent Skills and the project-root agent documents (`skill.md`, `AGENTS.md`)
|
|
8
|
+
* into production builds. A deployed function such as a Vercel function contains the server
|
|
9
|
+
* bundle but not the project's files, so the request-time filesystem fallback finds nothing
|
|
10
|
+
* there. Development keeps reading the files, so edits show up without a rebuild.
|
|
11
|
+
*/
|
|
12
|
+
export declare function docsAgentSkillsBundle(options?: FarmDocsAgentSkillsOptions): Plugin;
|
|
13
|
+
//# sourceMappingURL=agent-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skills.d.ts","sourceRoot":"","sources":["../src/agent-skills.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAMnD,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAaD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAwCtF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadDocsConfigModule, renderDocsAgentSkillsBundle, resolveConfiguredAgentSkillsSync, } from "@farming-labs/docs/build";
|
|
4
|
+
const AGENT_SKILLS_BUNDLE_MODULE = "@farming-labs/docs/agent-skills-bundle";
|
|
5
|
+
const RESOLVED_AGENT_SKILLS_BUNDLE_MODULE = "\0farming-labs-farmjs:agent-skills-bundle";
|
|
6
|
+
const ROOT_DOCUMENT_FILES = ["skill.md", "AGENTS.md", "AGENT.md"];
|
|
7
|
+
function readRootDocuments(root) {
|
|
8
|
+
const documents = {};
|
|
9
|
+
for (const fileName of ROOT_DOCUMENT_FILES) {
|
|
10
|
+
const filePath = path.join(root, fileName);
|
|
11
|
+
if (fs.existsSync(filePath) && fs.statSync(filePath).isFile()) {
|
|
12
|
+
documents[fileName] = fs.readFileSync(filePath, "utf8");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return Object.keys(documents).length > 0 ? documents : undefined;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Snapshot configured Agent Skills and the project-root agent documents (`skill.md`, `AGENTS.md`)
|
|
19
|
+
* into production builds. A deployed function such as a Vercel function contains the server
|
|
20
|
+
* bundle but not the project's files, so the request-time filesystem fallback finds nothing
|
|
21
|
+
* there. Development keeps reading the files, so edits show up without a rebuild.
|
|
22
|
+
*/
|
|
23
|
+
export function docsAgentSkillsBundle(options = {}) {
|
|
24
|
+
let root = process.cwd();
|
|
25
|
+
let source;
|
|
26
|
+
async function renderBundle() {
|
|
27
|
+
let loaded;
|
|
28
|
+
try {
|
|
29
|
+
loaded = await loadDocsConfigModule(root, options.configPath);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
loaded = null;
|
|
33
|
+
}
|
|
34
|
+
// Without the evaluated config, keep the package's empty module so the server still reads
|
|
35
|
+
// skills from the filesystem, as it did before this snapshot existed.
|
|
36
|
+
if (!loaded)
|
|
37
|
+
return undefined;
|
|
38
|
+
const skills = resolveConfiguredAgentSkillsSync(loaded.config.agent?.skills, {
|
|
39
|
+
rootDir: root,
|
|
40
|
+
});
|
|
41
|
+
return renderDocsAgentSkillsBundle(skills, readRootDocuments(root));
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
name: "farming-labs-farmjs-agent-skills",
|
|
45
|
+
enforce: "pre",
|
|
46
|
+
apply: "build",
|
|
47
|
+
configResolved(config) {
|
|
48
|
+
root = config.root;
|
|
49
|
+
},
|
|
50
|
+
resolveId(id) {
|
|
51
|
+
return id === AGENT_SKILLS_BUNDLE_MODULE ? RESOLVED_AGENT_SKILLS_BUNDLE_MODULE : undefined;
|
|
52
|
+
},
|
|
53
|
+
async load(id) {
|
|
54
|
+
if (id !== RESOLVED_AGENT_SKILLS_BUNDLE_MODULE)
|
|
55
|
+
return undefined;
|
|
56
|
+
source ??= renderBundle();
|
|
57
|
+
return ((await source) ??
|
|
58
|
+
"export const bundledAgentSkills = undefined;\nexport const bundledRootDocuments = undefined;\n");
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=agent-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skills.js","sourceRoot":"","sources":["../src/agent-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAGlC,MAAM,0BAA0B,GAAG,wCAAwC,CAAC;AAC5E,MAAM,mCAAmC,GAAG,2CAA2C,CAAC;AACxF,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAO3E,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9D,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAsC,EAAE;IAC5E,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,MAA+C,CAAC;IAEpD,KAAK,UAAU,YAAY;QACzB,IAAI,MAAwD,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,0FAA0F;QAC1F,sEAAsE;QACtE,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,MAAM,GAAG,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;YAC3E,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,cAAc,CAAC,MAAsB;YACnC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,SAAS,CAAC,EAAE;YACV,OAAO,EAAE,KAAK,0BAA0B,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,mCAAmC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,KAAK,YAAY,EAAE,CAAC;YAC1B,OAAO,CACL,CAAC,MAAM,MAAM,CAAC;gBACd,gGAAgG,CACjG,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** True when JSON would lose part of `value`. */
|
|
2
|
+
export declare function hasUnserializableValues(value: unknown, seen?: WeakSet<object>): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* The server's JSON copy of the config, with what JSON dropped restored from the config
|
|
5
|
+
* module. Everything serializable keeps the server's value, which carries the routes Farm
|
|
6
|
+
* derived and leaves out server-only fields such as API keys.
|
|
7
|
+
*/
|
|
8
|
+
export declare function restoreUnserializableValues(serverValue: unknown, moduleValue: unknown): unknown;
|
|
9
|
+
//# sourceMappingURL=config-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-values.d.ts","sourceRoot":"","sources":["../src/config-values.ts"],"names":[],"mappings":"AAsBA,iDAAiD;AACjD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,kBAAwB,GAAG,OAAO,CAM7F;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAoB/F"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// The docs config reaches the browser as JSON, which drops what React renders from it:
|
|
2
|
+
// elements such as icons, components, and callbacks. The server flags a config that has
|
|
3
|
+
// any, and the browser restores them from the config module (Farm imports it then).
|
|
4
|
+
function isReactValue(value) {
|
|
5
|
+
return (typeof value === "object" &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
typeof value.$$typeof === "symbol");
|
|
8
|
+
}
|
|
9
|
+
function isUnserializable(value) {
|
|
10
|
+
return typeof value === "function" || isReactValue(value);
|
|
11
|
+
}
|
|
12
|
+
function isPlainObject(value) {
|
|
13
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
14
|
+
return false;
|
|
15
|
+
const prototype = Object.getPrototypeOf(value);
|
|
16
|
+
return prototype === Object.prototype || prototype === null;
|
|
17
|
+
}
|
|
18
|
+
/** True when JSON would lose part of `value`. */
|
|
19
|
+
export function hasUnserializableValues(value, seen = new WeakSet()) {
|
|
20
|
+
if (isUnserializable(value))
|
|
21
|
+
return true;
|
|
22
|
+
if (typeof value !== "object" || value === null || seen.has(value))
|
|
23
|
+
return false;
|
|
24
|
+
seen.add(value);
|
|
25
|
+
const entries = Array.isArray(value) ? value : isPlainObject(value) ? Object.values(value) : [];
|
|
26
|
+
return entries.some((entry) => hasUnserializableValues(entry, seen));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The server's JSON copy of the config, with what JSON dropped restored from the config
|
|
30
|
+
* module. Everything serializable keeps the server's value, which carries the routes Farm
|
|
31
|
+
* derived and leaves out server-only fields such as API keys.
|
|
32
|
+
*/
|
|
33
|
+
export function restoreUnserializableValues(serverValue, moduleValue) {
|
|
34
|
+
if (isUnserializable(moduleValue))
|
|
35
|
+
return moduleValue;
|
|
36
|
+
if (Array.isArray(serverValue) && Array.isArray(moduleValue)) {
|
|
37
|
+
if (serverValue.length !== moduleValue.length)
|
|
38
|
+
return serverValue;
|
|
39
|
+
return serverValue.map((entry, index) => restoreUnserializableValues(entry, moduleValue[index]));
|
|
40
|
+
}
|
|
41
|
+
if (isPlainObject(serverValue) && isPlainObject(moduleValue)) {
|
|
42
|
+
const restored = { ...serverValue };
|
|
43
|
+
for (const [key, value] of Object.entries(moduleValue)) {
|
|
44
|
+
if (key in serverValue) {
|
|
45
|
+
restored[key] = restoreUnserializableValues(serverValue[key], value);
|
|
46
|
+
}
|
|
47
|
+
else if (hasUnserializableValues(value)) {
|
|
48
|
+
restored[key] = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return restored;
|
|
52
|
+
}
|
|
53
|
+
return serverValue;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=config-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-values.js","sourceRoot":"","sources":["../src/config-values.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AAEpF,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAgC,CAAC,QAAQ,KAAK,QAAQ,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,OAAO,IAAI,OAAO,EAAU;IAClF,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAoB,EAAE,WAAoB;IACpF,IAAI,gBAAgB,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;YAAE,OAAO,WAAW,CAAC;QAClE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACtC,2BAA2B,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAA4B,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;gBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface FarmDocsCoreConfig extends Partial<DocsConfig> {
|
|
|
14
14
|
adapter?: FarmDocsRuntimeAdapter;
|
|
15
15
|
}
|
|
16
16
|
export interface FarmDocsAdapterOptions {
|
|
17
|
+
/** Reuse unchanged production MDX compilation. Defaults to true. */
|
|
18
|
+
buildCache?: boolean;
|
|
17
19
|
/** Enable the docs runtime. Defaults to true when withDocs is used. */
|
|
18
20
|
enabled?: boolean;
|
|
19
21
|
/** Path to docs.config.ts, relative to the Farm application root. */
|
|
@@ -24,6 +26,12 @@ export interface FarmDocsAdapterOptions {
|
|
|
24
26
|
codeBlockThemes?: FarmDocsCodeBlockThemes;
|
|
25
27
|
/** Additional documentation roots outside the Farm application directory. */
|
|
26
28
|
contentRoots?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Module whose default export wraps every docs page, relative to the Farm application root.
|
|
31
|
+
* Farm renders docs pages outside the app's root layout, so use it for what that layout adds
|
|
32
|
+
* to other routes, such as analytics or site-wide widgets.
|
|
33
|
+
*/
|
|
34
|
+
shell?: string;
|
|
27
35
|
}
|
|
28
36
|
export interface FarmConfigLike {
|
|
29
37
|
docs?: boolean | FarmDocsCoreConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEnF,OAAO,EAAW,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAElE,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,qBAAqB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,kBAAkB,CAAC;AAEhF,MAAM,WAAW,kBAAmB,SAAQ,OAAO,CAAC,UAAU,CAAC;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,iEAAiE;IACjE,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACpC,IAAI,CAAC,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IAChG,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;CAClD,CAAC;AAkCF;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,SAAS,cAAc,EACrD,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,CAAC,OAAO,CAAC,CAyB7B"}
|
package/dist/config.js
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
|
+
import { docsAgentSkillsBundle } from "./agent-skills.js";
|
|
1
2
|
import { farmDocsRuntimeAdapter } from "./runtime.js";
|
|
3
|
+
import { docsShell } from "./shell-plugin.js";
|
|
2
4
|
import { docsMdx } from "./vite.js";
|
|
3
5
|
function normalizeExistingDocs(value) {
|
|
4
6
|
if (!value || value === true)
|
|
5
7
|
return {};
|
|
6
8
|
return value;
|
|
7
9
|
}
|
|
8
|
-
function appendDocsVitePlugins(config = {},
|
|
10
|
+
function appendDocsVitePlugins(config = {}, options) {
|
|
11
|
+
const { codeBlockThemes, contentRoots, buildCache, configPath, shell } = options;
|
|
9
12
|
return {
|
|
10
13
|
...config,
|
|
11
|
-
plugins: [
|
|
14
|
+
plugins: [
|
|
15
|
+
docsMdx({ codeBlockThemes, contentRoots, buildCache }),
|
|
16
|
+
docsAgentSkillsBundle({ configPath }),
|
|
17
|
+
docsShell(shell),
|
|
18
|
+
...(config.plugins ?? []),
|
|
19
|
+
],
|
|
12
20
|
};
|
|
13
21
|
}
|
|
14
|
-
function withDocsViteConfig(value,
|
|
22
|
+
function withDocsViteConfig(value, options) {
|
|
15
23
|
if (typeof value === "function") {
|
|
16
|
-
return (config) => appendDocsVitePlugins(value(config),
|
|
24
|
+
return (config) => appendDocsVitePlugins(value(config), options);
|
|
17
25
|
}
|
|
18
|
-
return appendDocsVitePlugins(value,
|
|
26
|
+
return appendDocsVitePlugins(value, options);
|
|
19
27
|
}
|
|
20
28
|
/**
|
|
21
29
|
* Enable Farming Labs docs in a Farm.js application.
|
|
@@ -29,7 +37,10 @@ export function withDocs(farmConfig, options = {}) {
|
|
|
29
37
|
const enabled = options.enabled ?? true;
|
|
30
38
|
return {
|
|
31
39
|
...farmConfig,
|
|
32
|
-
vite: withDocsViteConfig(farmConfig.vite,
|
|
40
|
+
vite: withDocsViteConfig(farmConfig.vite, {
|
|
41
|
+
...options,
|
|
42
|
+
configPath: options.configPath ?? existing.configPath,
|
|
43
|
+
}),
|
|
33
44
|
docs: {
|
|
34
45
|
...existing,
|
|
35
46
|
enabled,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAA+B,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAA+B,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;AAiDlE,SAAS,qBAAqB,CAAC,KAA6B;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAA6B,EAAE,EAC/B,OAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACjF,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YACtD,qBAAqB,CAAC,EAAE,UAAU,EAAE,CAAC;YACrC,SAAS,CAAC,KAAK,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAA6B,EAC7B,OAA+B;IAE/B,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,UAAmB,EACnB,UAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IAExC,OAAO;QACL,GAAG,UAAU;QACb,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE;YACxC,GAAG,OAAO;YACV,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;SACtD,CAAC;QACF,IAAI,EAAE;YACJ,GAAG,QAAQ;YACX,OAAO;YACP,OAAO,EAAE,sBAAsB;YAC/B,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,MAAM;gBAChB,CAAC,CAAC;oBACE,MAAM,EAAE;wBACN,GAAG,QAAQ,CAAC,MAAM;wBAClB,GAAG,OAAO,CAAC,MAAM;qBAClB;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC"}
|
package/dist/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,GAAG,CAAC,EAAE,yBAAyB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAID,UAAU,4BAA4B;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAMD,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,IAAI,CAsBrC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,4BAA4B,GAAG,IAAI,GAC5C,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAe,GAAG,WAAW,EAAE,CAyEzF;AAgBD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAe,EACtB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,EAAE,GACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,GAAG,CAAC,EAAE,yBAAyB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAID,UAAU,4BAA4B;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAMD,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,IAAI,CAsBrC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,4BAA4B,GAAG,IAAI,GAC5C,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAe,GAAG,WAAW,EAAE,CAyEzF;AAgBD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAe,EACtB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,EAAE,GACrD,OAAO,CA4BT;AAiJD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAgBxD"}
|
package/dist/content.js
CHANGED
|
@@ -124,9 +124,20 @@ function readAgentDoc(dir) {
|
|
|
124
124
|
export function loadDocsNavTree(contentDir, entry = "docs", ordering) {
|
|
125
125
|
const absDir = path.resolve(contentDir);
|
|
126
126
|
const children = [];
|
|
127
|
+
// Numeric ordering and node construction need the same frontmatter. Reuse it
|
|
128
|
+
// within this traversal only, so later loads still observe edits and deletions.
|
|
129
|
+
const frontmatter = new Map();
|
|
130
|
+
const readFrontmatter = (filePath) => {
|
|
131
|
+
const cached = frontmatter.get(filePath);
|
|
132
|
+
if (cached)
|
|
133
|
+
return cached;
|
|
134
|
+
const { data } = matter(fs.readFileSync(filePath, "utf-8"));
|
|
135
|
+
frontmatter.set(filePath, data);
|
|
136
|
+
return data;
|
|
137
|
+
};
|
|
127
138
|
const indexPath = findIndex(absDir);
|
|
128
139
|
if (indexPath) {
|
|
129
|
-
const
|
|
140
|
+
const data = readFrontmatter(indexPath);
|
|
130
141
|
children.push({
|
|
131
142
|
type: "page",
|
|
132
143
|
name: data.title ?? "Documentation",
|
|
@@ -135,10 +146,10 @@ export function loadDocsNavTree(contentDir, entry = "docs", ordering) {
|
|
|
135
146
|
});
|
|
136
147
|
}
|
|
137
148
|
const rootSlugOrder = Array.isArray(ordering) ? ordering : undefined;
|
|
138
|
-
children.push(...scanDir(absDir, [], entry, ordering, rootSlugOrder));
|
|
149
|
+
children.push(...scanDir(absDir, [], entry, readFrontmatter, ordering, rootSlugOrder));
|
|
139
150
|
return { name: "Docs", children };
|
|
140
151
|
}
|
|
141
|
-
function buildNavNode(dir, name, slugParts, entry, ordering, childSlugOrder) {
|
|
152
|
+
function buildNavNode(dir, name, slugParts, entry, readFrontmatter, ordering, childSlugOrder) {
|
|
142
153
|
const full = path.join(dir, name);
|
|
143
154
|
const stat = fs.statSync(full);
|
|
144
155
|
if (stat.isFile()) {
|
|
@@ -147,7 +158,7 @@ function buildNavNode(dir, name, slugParts, entry, ordering, childSlugOrder) {
|
|
|
147
158
|
const baseName = name.replace(/\.(md|mdx)$/, "");
|
|
148
159
|
if (baseName === "page" || baseName === "index")
|
|
149
160
|
return null;
|
|
150
|
-
const
|
|
161
|
+
const data = readFrontmatter(full);
|
|
151
162
|
const slug = [...slugParts, baseName].join("/");
|
|
152
163
|
return {
|
|
153
164
|
type: "page",
|
|
@@ -160,13 +171,13 @@ function buildNavNode(dir, name, slugParts, entry, ordering, childSlugOrder) {
|
|
|
160
171
|
if (!stat.isDirectory())
|
|
161
172
|
return null;
|
|
162
173
|
const indexPath = findIndex(full);
|
|
163
|
-
const data = indexPath ?
|
|
174
|
+
const data = indexPath ? readFrontmatter(indexPath) : {};
|
|
164
175
|
const slug = [...slugParts, name];
|
|
165
176
|
const url = `/${entry}/${slug.join("/")}`;
|
|
166
177
|
const displayName = data.title ??
|
|
167
178
|
name.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase());
|
|
168
179
|
const icon = data.icon;
|
|
169
|
-
const children = scanDir(full, slug, entry, ordering, childSlugOrder);
|
|
180
|
+
const children = scanDir(full, slug, entry, readFrontmatter, ordering, childSlugOrder);
|
|
170
181
|
if (children.length > 0) {
|
|
171
182
|
return {
|
|
172
183
|
type: "folder",
|
|
@@ -182,7 +193,7 @@ function buildNavNode(dir, name, slugParts, entry, ordering, childSlugOrder) {
|
|
|
182
193
|
function navEntrySlug(name) {
|
|
183
194
|
return name.replace(/\.(md|mdx)$/, "");
|
|
184
195
|
}
|
|
185
|
-
function scanDir(dir, slugParts, entry, ordering, slugOrder) {
|
|
196
|
+
function scanDir(dir, slugParts, entry, readFrontmatter, ordering, slugOrder) {
|
|
186
197
|
if (!fs.existsSync(dir))
|
|
187
198
|
return [];
|
|
188
199
|
const entries = fs.readdirSync(dir).sort();
|
|
@@ -193,14 +204,14 @@ function scanDir(dir, slugParts, entry, ordering, slugOrder) {
|
|
|
193
204
|
const name = entries.find((entryName) => navEntrySlug(entryName) === item.slug);
|
|
194
205
|
if (!name)
|
|
195
206
|
continue;
|
|
196
|
-
const node = buildNavNode(dir, name, slugParts, entry, ordering, item.children);
|
|
207
|
+
const node = buildNavNode(dir, name, slugParts, entry, readFrontmatter, ordering, item.children);
|
|
197
208
|
if (node)
|
|
198
209
|
nodes.push(node);
|
|
199
210
|
}
|
|
200
211
|
for (const name of entries) {
|
|
201
212
|
if (slugMap.has(navEntrySlug(name)))
|
|
202
213
|
continue;
|
|
203
|
-
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
214
|
+
const node = buildNavNode(dir, name, slugParts, entry, readFrontmatter, ordering);
|
|
204
215
|
if (node)
|
|
205
216
|
nodes.push(node);
|
|
206
217
|
}
|
|
@@ -213,10 +224,10 @@ function scanDir(dir, slugParts, entry, ordering, slugOrder) {
|
|
|
213
224
|
const stat = fs.statSync(full);
|
|
214
225
|
const metadataPath = stat.isDirectory() ? findIndex(full) : full;
|
|
215
226
|
const data = metadataPath && (metadataPath.endsWith(".md") || metadataPath.endsWith(".mdx"))
|
|
216
|
-
?
|
|
227
|
+
? readFrontmatter(metadataPath)
|
|
217
228
|
: {};
|
|
218
229
|
const order = typeof data.order === "number" ? data.order : Infinity;
|
|
219
|
-
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
230
|
+
const node = buildNavNode(dir, name, slugParts, entry, readFrontmatter, ordering);
|
|
220
231
|
if (node)
|
|
221
232
|
nodes.push({ order, name, node });
|
|
222
233
|
}
|
|
@@ -229,7 +240,7 @@ function scanDir(dir, slugParts, entry, ordering, slugOrder) {
|
|
|
229
240
|
}
|
|
230
241
|
const nodes = [];
|
|
231
242
|
for (const name of entries) {
|
|
232
|
-
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
243
|
+
const node = buildNavNode(dir, name, slugParts, entry, readFrontmatter, ordering);
|
|
233
244
|
if (node)
|
|
234
245
|
nodes.push(node);
|
|
235
246
|
}
|
package/dist/content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,qCAAqC,GAMtC,MAAM,oBAAoB,CAAC;AAoD5B,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAOzE,SAAS,4BAA4B,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAAkB;IAElB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;IAC7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CACE,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3F,OAAO;YACL,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,KAAK,EAA6B,EAAE,CACnC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAC9E,CACF;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,UAAkB,EAClB,UAAkB,EAClB,QAA6C;IAE7C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IACzF,OAAO,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACxF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAgB,MAAM;IACxE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAEtE,SAAS,IAAI,CAAC,GAAW,EAAE,SAAmB;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEhC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,IAAI,IAAI,KAAK,UAAU;gBAAE,SAAS;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE9D,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,eAAe,GAAG,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,CAAC;YAE5D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEzD,MAAM,KAAK,GACR,IAAI,CAAC,KAAgB;gBACtB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAE7E,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI;gBACJ,GAAG;gBACH,KAAK;gBACL,WAAW,EAAE,IAAI,CAAC,WAAiC;gBACnD,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,KAAK,EAAE,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChD,GAAG,EAAE,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,IAA0B;gBACrC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBACpC,OAAO,EAAE,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtD,YAAY,EACV,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC;oBAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACjE,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC1E,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBACpE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;oBACnE,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC;gBACvC,UAAU,EAAE,eAAe;gBAC3B,GAAG,CAAC,mBAAmB,KAAK,eAAe;oBACzC,CAAC,CAAC;wBACE,oBAAoB,EAAE,aAAa,CAAC,mBAAmB,CAAC;wBACxD,uBAAuB,EAAE,mBAAmB;qBAC7C;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,QAAQ;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,eAAe,GAAG,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxE,OAAO;QACL,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC;QAC5C,eAAe;QACf,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,QAAgB,MAAM,EACtB,QAAsD;IAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAG,IAAI,CAAC,KAAgB,IAAI,eAAe;YAC/C,GAAG,EAAE,IAAI,KAAK,EAAE;YAChB,IAAI,EAAE,IAAI,CAAC,IAA0B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CACnB,GAAW,EACX,IAAY,EACZ,SAAmB,EACnB,KAAa,EACb,QAAsD,EACtD,cAA+B;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EACD,IAAI,CAAC,KAAgB;gBACtB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5E,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAA0B;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,MAAM,WAAW,GACd,IAAI,CAAC,KAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAEtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,WAAW;YACjB,IAAI;YACJ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,mBAAmB,EAAE,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC;YACxE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,OAAO,CACd,GAAW,EACX,SAAmB,EACnB,KAAa,EACb,QAAsD,EACtD,SAA0B;IAE1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAE3C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChF,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAS;YAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAqD,EAAE,CAAC;QAEnE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,MAAM,IAAI,GACR,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7E,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI;gBACrD,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrE,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,SAAS,IAAI,CAAC,KAAgB;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO;SACX,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;SACtC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;SACxC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC;SACzC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;SAC3B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type mdx from "@mdx-js/rollup";
|
|
2
|
+
type CompiledMdx = Awaited<ReturnType<ReturnType<typeof mdx>["transform"]>>;
|
|
3
|
+
export declare function mdxCacheDigest(value: string | Buffer): string;
|
|
4
|
+
/** Only the adapter's deterministic MDX stage is cached, never the Vite graph. */
|
|
5
|
+
export declare class MdxBuildCache {
|
|
6
|
+
private readonly file;
|
|
7
|
+
private readonly maxBytes;
|
|
8
|
+
private readonly maxEntries;
|
|
9
|
+
private readonly entries;
|
|
10
|
+
private readonly entryBytes;
|
|
11
|
+
private readonly pending;
|
|
12
|
+
private loaded?;
|
|
13
|
+
private bytes;
|
|
14
|
+
private revision;
|
|
15
|
+
private persistedRevision;
|
|
16
|
+
private flushing?;
|
|
17
|
+
constructor(file: string, maxBytes?: number, maxEntries?: number);
|
|
18
|
+
private remember;
|
|
19
|
+
private load;
|
|
20
|
+
compile(id: string, key: string, compile: () => Promise<CompiledMdx>): Promise<CompiledMdx>;
|
|
21
|
+
flush(): Promise<void>;
|
|
22
|
+
private writeSnapshot;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=mdx-build-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdx-build-cache.d.ts","sourceRoot":"","sources":["../src/mdx-build-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAW5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE7D;AAED,kFAAkF;AAClF,qBAAa,aAAa;IAWtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAZ7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAC1E,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAgB;gBAGd,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAY,EACpB,UAAU,SAAc;IAG3C,OAAO,CAAC,QAAQ;YAgBF,IAAI;IAyBZ,OAAO,CACX,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,GAClC,OAAO,CAAC,WAAW,CAAC;IA8BjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAmBd,aAAa;CAc5B"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const MAX_BYTES = 32 * 1024 * 1024;
|
|
5
|
+
const MAX_ENTRIES = 1_024;
|
|
6
|
+
export function mdxCacheDigest(value) {
|
|
7
|
+
return createHash("sha256").update(value).digest("hex");
|
|
8
|
+
}
|
|
9
|
+
/** Only the adapter's deterministic MDX stage is cached, never the Vite graph. */
|
|
10
|
+
export class MdxBuildCache {
|
|
11
|
+
file;
|
|
12
|
+
maxBytes;
|
|
13
|
+
maxEntries;
|
|
14
|
+
entries = new Map();
|
|
15
|
+
entryBytes = new Map();
|
|
16
|
+
pending = new Map();
|
|
17
|
+
loaded;
|
|
18
|
+
bytes = 0;
|
|
19
|
+
revision = 0;
|
|
20
|
+
persistedRevision = 0;
|
|
21
|
+
flushing;
|
|
22
|
+
constructor(file, maxBytes = MAX_BYTES, maxEntries = MAX_ENTRIES) {
|
|
23
|
+
this.file = file;
|
|
24
|
+
this.maxBytes = maxBytes;
|
|
25
|
+
this.maxEntries = maxEntries;
|
|
26
|
+
}
|
|
27
|
+
remember(id, entry) {
|
|
28
|
+
this.bytes -= this.entryBytes.get(id) ?? 0;
|
|
29
|
+
const size = Buffer.byteLength(JSON.stringify([id, entry]));
|
|
30
|
+
this.entries.delete(id);
|
|
31
|
+
this.entries.set(id, entry);
|
|
32
|
+
this.entryBytes.set(id, size);
|
|
33
|
+
this.bytes += size;
|
|
34
|
+
while (this.bytes > this.maxBytes || this.entries.size > this.maxEntries) {
|
|
35
|
+
const oldest = this.entries.entries().next().value;
|
|
36
|
+
if (!oldest)
|
|
37
|
+
break;
|
|
38
|
+
this.entries.delete(oldest[0]);
|
|
39
|
+
this.bytes -= this.entryBytes.get(oldest[0]) ?? 0;
|
|
40
|
+
this.entryBytes.delete(oldest[0]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async load() {
|
|
44
|
+
try {
|
|
45
|
+
if ((await fs.stat(this.file)).size > this.maxBytes + 64 * 1024)
|
|
46
|
+
return;
|
|
47
|
+
const data = JSON.parse(await fs.readFile(this.file, "utf8"));
|
|
48
|
+
if (!Array.isArray(data))
|
|
49
|
+
return;
|
|
50
|
+
for (const item of data) {
|
|
51
|
+
if (!Array.isArray(item) ||
|
|
52
|
+
typeof item[0] !== "string" ||
|
|
53
|
+
typeof item[1]?.key !== "string" ||
|
|
54
|
+
typeof item[1]?.value !== "string" ||
|
|
55
|
+
item[1]?.checksum !== mdxCacheDigest(item[1].value))
|
|
56
|
+
continue;
|
|
57
|
+
const result = JSON.parse(item[1].value);
|
|
58
|
+
if (typeof result?.code === "string")
|
|
59
|
+
this.remember(item[0], item[1]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Missing, incompatible, truncated or unreadable caches are ordinary misses.
|
|
64
|
+
this.entries.clear();
|
|
65
|
+
this.entryBytes.clear();
|
|
66
|
+
this.bytes = 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async compile(id, key, compile) {
|
|
70
|
+
await (this.loaded ??= this.load());
|
|
71
|
+
const entry = this.entries.get(id);
|
|
72
|
+
if (entry?.key === key) {
|
|
73
|
+
// Refresh eviction order without serializing unchanged compiled output.
|
|
74
|
+
this.entries.delete(id);
|
|
75
|
+
this.entries.set(id, entry);
|
|
76
|
+
return JSON.parse(entry.value);
|
|
77
|
+
}
|
|
78
|
+
const pendingKey = JSON.stringify([id, key]);
|
|
79
|
+
let pending = this.pending.get(pendingKey);
|
|
80
|
+
if (!pending) {
|
|
81
|
+
pending = Promise.resolve()
|
|
82
|
+
.then(compile)
|
|
83
|
+
.then((result) => {
|
|
84
|
+
// The upstream filter deliberately skips some IDs, including virtual modules.
|
|
85
|
+
if (result === undefined)
|
|
86
|
+
return undefined;
|
|
87
|
+
const value = JSON.stringify(result);
|
|
88
|
+
this.remember(id, { key, value, checksum: mdxCacheDigest(value) });
|
|
89
|
+
this.revision += 1;
|
|
90
|
+
return value;
|
|
91
|
+
})
|
|
92
|
+
.finally(() => this.pending.delete(pendingKey));
|
|
93
|
+
this.pending.set(pendingKey, pending);
|
|
94
|
+
}
|
|
95
|
+
// Subsequent plugins may mutate source maps: don't share mutable results.
|
|
96
|
+
const value = await pending;
|
|
97
|
+
return value === undefined ? undefined : JSON.parse(value);
|
|
98
|
+
}
|
|
99
|
+
async flush() {
|
|
100
|
+
if (!this.loaded)
|
|
101
|
+
return;
|
|
102
|
+
await this.loaded;
|
|
103
|
+
// Multiple Vite environments can finish together. An older snapshot must
|
|
104
|
+
// finish before a newer one, or its rename could discard the newer entries.
|
|
105
|
+
while (this.flushing)
|
|
106
|
+
await this.flushing;
|
|
107
|
+
if (this.persistedRevision === this.revision)
|
|
108
|
+
return;
|
|
109
|
+
const revision = this.revision;
|
|
110
|
+
const flushing = this.writeSnapshot(JSON.stringify([...this.entries])).then((saved) => {
|
|
111
|
+
if (saved)
|
|
112
|
+
this.persistedRevision = revision;
|
|
113
|
+
});
|
|
114
|
+
this.flushing = flushing;
|
|
115
|
+
try {
|
|
116
|
+
await flushing;
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
if (this.flushing === flushing)
|
|
120
|
+
this.flushing = undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async writeSnapshot(snapshot) {
|
|
124
|
+
const temporary = `${this.file}.${randomUUID()}.tmp`;
|
|
125
|
+
try {
|
|
126
|
+
await fs.mkdir(path.dirname(this.file), { recursive: true });
|
|
127
|
+
await fs.writeFile(temporary, snapshot);
|
|
128
|
+
await fs.rename(temporary, this.file);
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Keep the revision dirty so a later flush can retry a failed write.
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
await fs.unlink(temporary).catch(() => undefined);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=mdx-build-cache.js.map
|