@farming-labs/farmjs 0.2.115 → 0.2.117
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 +26 -0
- package/dist/api-reference.d.ts +5 -2
- package/dist/api-reference.d.ts.map +1 -1
- package/dist/api-reference.js +25 -2
- package/dist/api-reference.js.map +1 -1
- package/dist/edge-compiler.d.ts +40 -0
- package/dist/edge-compiler.d.ts.map +1 -0
- package/dist/edge-compiler.js +238 -0
- package/dist/edge-compiler.js.map +1 -0
- package/dist/page.d.ts +13 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +59 -0
- package/dist/page.js.map +1 -0
- package/dist/react.d.ts +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +4 -56
- package/dist/react.js.map +1 -1
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -0
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +68 -13
- package/dist/server.js.map +1 -1
- package/dist/vite.d.ts +3 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +19 -10
- package/dist/vite.js.map +1 -1
- package/package.json +11 -5
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
|
+
## Edge deployments
|
|
70
|
+
|
|
71
|
+
Farm edge targets use the adapter's build-time compiler automatically. It
|
|
72
|
+
precompiles pages, client-navigation data, CSS, Markdown, search, sitemap,
|
|
73
|
+
robots, and agent-discovery responses so the deployed Worker does not import
|
|
74
|
+
the Node server runtime.
|
|
75
|
+
|
|
76
|
+
The snapshot cannot preserve features that need live server callbacks or
|
|
77
|
+
mutable sessions. Disable the default MCP and production telemetry surfaces in
|
|
78
|
+
an edge-specific docs configuration:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import { defineDocs } from "@farming-labs/docs";
|
|
82
|
+
|
|
83
|
+
export default defineDocs({
|
|
84
|
+
entry: "docs",
|
|
85
|
+
mcp: false,
|
|
86
|
+
telemetry: false,
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
An edge build also stops with an actionable error when Ask AI, feedback,
|
|
91
|
+
analytics, observability, i18n, or a function-backed custom search provider is
|
|
92
|
+
enabled. Use a Node target when those runtime features are required.
|
|
93
|
+
|
|
69
94
|
## Server wrapper
|
|
70
95
|
|
|
71
96
|
`withDocs()` is the normal integration. The lower-level server wrapper is
|
|
@@ -97,6 +122,7 @@ pipeline without taking over application routes. The server also exposes
|
|
|
97
122
|
| `@farming-labs/farmjs/content` | Content and navigation utilities |
|
|
98
123
|
| `@farming-labs/farmjs/vite` | MDX compilation plugin |
|
|
99
124
|
| `@farming-labs/farmjs/runtime` | Versioned Farm runtime contract |
|
|
125
|
+
| `@farming-labs/farmjs/edge-compiler` | Build-time edge snapshot compiler used by Farm |
|
|
100
126
|
| `@farming-labs/farmjs/api-reference` | Farm API-reference handler |
|
|
101
127
|
|
|
102
128
|
## License
|
package/dist/api-reference.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare function createFarmjsApiReference(config: DocsConfig & Record<string, any>): (
|
|
1
|
+
import { type DocsConfig } from "@farming-labs/docs";
|
|
2
|
+
export declare function createFarmjsApiReference(config: DocsConfig & Record<string, any>): (event?: {
|
|
3
|
+
request?: Request;
|
|
4
|
+
url?: URL;
|
|
5
|
+
} | Request) => Promise<Response>;
|
|
3
6
|
//# sourceMappingURL=api-reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference.d.ts","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-reference.d.ts","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"AAMA,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACjE,QAAQ;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO,uBAwCjE"}
|
package/dist/api-reference.js
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
|
-
import { buildApiReferenceHtmlDocumentAsync, resolveApiReferenceConfig, } from "@farming-labs/docs/server";
|
|
1
|
+
import { buildApiReferenceHtmlDocumentAsync, createApiReferenceOperationMarkdownResponse, resolveApiReferenceConfig, resolveApiReferenceVersionFromPathname, } from "@farming-labs/docs/server";
|
|
2
|
+
import { resolveDocsMetadataBaseUrl } from "@farming-labs/docs";
|
|
2
3
|
export function createFarmjsApiReference(config) {
|
|
3
|
-
return async () => {
|
|
4
|
+
return async (event) => {
|
|
4
5
|
const apiReference = resolveApiReferenceConfig(config.apiReference);
|
|
5
6
|
if (!apiReference.enabled) {
|
|
6
7
|
return new Response("Not Found", { status: 404 });
|
|
7
8
|
}
|
|
8
9
|
const rootDir = typeof config.rootDir === "string" ? config.rootDir : process.cwd();
|
|
10
|
+
const request = event instanceof Request ? event : event?.request;
|
|
11
|
+
const requestUrl = event instanceof Request
|
|
12
|
+
? new URL(event.url)
|
|
13
|
+
: (event?.url ?? (request ? new URL(request.url) : undefined));
|
|
14
|
+
if (request && requestUrl) {
|
|
15
|
+
const markdownResponse = await createApiReferenceOperationMarkdownResponse(config, {
|
|
16
|
+
request,
|
|
17
|
+
framework: "farmjs",
|
|
18
|
+
rootDir,
|
|
19
|
+
baseUrl: requestUrl.origin,
|
|
20
|
+
origin: resolveDocsMetadataBaseUrl(config) || requestUrl.origin,
|
|
21
|
+
sitemap: config.sitemap,
|
|
22
|
+
okf: config.agent?.okf,
|
|
23
|
+
});
|
|
24
|
+
if (markdownResponse)
|
|
25
|
+
return markdownResponse;
|
|
26
|
+
}
|
|
27
|
+
const version = requestUrl
|
|
28
|
+
? resolveApiReferenceVersionFromPathname(config.apiReference, requestUrl.pathname)
|
|
29
|
+
: undefined;
|
|
9
30
|
const html = await buildApiReferenceHtmlDocumentAsync(config, {
|
|
10
31
|
framework: "farmjs",
|
|
11
32
|
rootDir,
|
|
33
|
+
baseUrl: requestUrl?.origin,
|
|
34
|
+
version: version?.id,
|
|
12
35
|
});
|
|
13
36
|
return new Response(html, {
|
|
14
37
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference.js","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"api-reference.js","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,2CAA2C,EAC3C,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAmB,MAAM,oBAAoB,CAAC;AAEjF,MAAM,UAAU,wBAAwB,CAAC,MAAwC;IAC/E,OAAO,KAAK,EAAE,KAAkD,EAAE,EAAE;QAClE,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACpF,MAAM,OAAO,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;QAClE,MAAM,UAAU,GACd,KAAK,YAAY,OAAO;YACtB,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACpB,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,MAAM,2CAA2C,CAAC,MAAM,EAAE;gBACjF,OAAO;gBACP,SAAS,EAAE,QAAQ;gBACnB,OAAO;gBACP,OAAO,EAAE,UAAU,CAAC,MAAM;gBAC1B,MAAM,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM;gBAC/D,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG;aACvB,CAAC,CAAC;YACH,IAAI,gBAAgB;gBAAE,OAAO,gBAAgB,CAAC;QAChD,CAAC;QACD,MAAM,OAAO,GAAG,UAAU;YACxB,CAAC,CAAC,sCAAsC,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC;YAClF,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE;YAC5D,SAAS,EAAE,QAAQ;YACnB,OAAO;YACP,OAAO,EAAE,UAAU,EAAE,MAAM;YAC3B,OAAO,EAAE,OAAO,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE;gBACP,cAAc,EAAE,0BAA0B;aAC3C;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DocsSearchSourcePage, PerformDocsSearchOptions } from "@farming-labs/docs";
|
|
2
|
+
interface FarmDocsCompiledResponse {
|
|
3
|
+
status: number;
|
|
4
|
+
statusText: string;
|
|
5
|
+
headers: Array<[string, string]>;
|
|
6
|
+
body: string;
|
|
7
|
+
}
|
|
8
|
+
interface FarmDocsCompiledManifest {
|
|
9
|
+
protocol: 1;
|
|
10
|
+
originPlaceholder: string;
|
|
11
|
+
entry: string;
|
|
12
|
+
apiPath: string;
|
|
13
|
+
routes: Record<string, FarmDocsCompiledResponse>;
|
|
14
|
+
navigation: Record<string, FarmDocsCompiledResponse>;
|
|
15
|
+
api: {
|
|
16
|
+
static: Record<string, FarmDocsCompiledResponse>;
|
|
17
|
+
markdown: Record<string, FarmDocsCompiledResponse>;
|
|
18
|
+
empty: FarmDocsCompiledResponse;
|
|
19
|
+
post: FarmDocsCompiledResponse;
|
|
20
|
+
search: {
|
|
21
|
+
pages: DocsSearchSourcePage[];
|
|
22
|
+
search: PerformDocsSearchOptions["search"];
|
|
23
|
+
siteTitle: string;
|
|
24
|
+
limit?: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface CompileFarmDocsEdgeManifestOptions {
|
|
29
|
+
rootDir: string;
|
|
30
|
+
clientEntry: string;
|
|
31
|
+
stylesheets: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Compile the official Farm adapter into Farm core's renderer-neutral edge
|
|
35
|
+
* manifest. This module runs during the Node build and is never imported by
|
|
36
|
+
* the generated Worker.
|
|
37
|
+
*/
|
|
38
|
+
export declare function compileFarmDocsEdgeManifest(config: Record<string, unknown>, options: CompileFarmDocsEdgeManifestOptions): Promise<FarmDocsCompiledManifest>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=edge-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-compiler.d.ts","sourceRoot":"","sources":["../src/edge-compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAY5B,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,CAAC,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACrD,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACnD,KAAK,EAAE,wBAAwB,CAAC;QAChC,IAAI,EAAE,wBAAwB,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,oBAAoB,EAAE,CAAC;YAC9B,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAC3C,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA6GD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CA6JnC"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { evaluate } from "@mdx-js/mdx";
|
|
4
|
+
import { createElement } from "react";
|
|
5
|
+
import * as jsxRuntime from "react/jsx-runtime";
|
|
6
|
+
import { loadDocsContent } from "./content.js";
|
|
7
|
+
import { FarmDocsPageRenderer } from "./page.js";
|
|
8
|
+
import { FARM_DOCS_NAVIGATION_HEADER } from "./runtime.js";
|
|
9
|
+
import { createFarmDocsRuntimeHandler } from "./server.js";
|
|
10
|
+
import { createFarmDocsMdxCompileOptions } from "./vite.js";
|
|
11
|
+
const FARM_DOCS_COMPILED_ORIGIN = "https://farm-docs-build.invalid";
|
|
12
|
+
const FARM_DOCS_BROWSER_CSS_PATH = "/__farm_docs/browser.css";
|
|
13
|
+
function normalizePathname(pathname) {
|
|
14
|
+
if (pathname === "/")
|
|
15
|
+
return pathname;
|
|
16
|
+
return pathname.replace(/\/+$/g, "") || "/";
|
|
17
|
+
}
|
|
18
|
+
function normalizePublicPath(value, fallback) {
|
|
19
|
+
const resolved = typeof value === "string" && value.trim() ? value.trim() : fallback;
|
|
20
|
+
if (resolved === "/")
|
|
21
|
+
return resolved;
|
|
22
|
+
return `/${resolved.replace(/^\/+|\/+$/g, "")}`;
|
|
23
|
+
}
|
|
24
|
+
function sanitizeCompiledValue(value, absolutePaths) {
|
|
25
|
+
let sanitized = value;
|
|
26
|
+
for (const absolutePath of absolutePaths) {
|
|
27
|
+
if (!absolutePath)
|
|
28
|
+
continue;
|
|
29
|
+
sanitized = sanitized.split(absolutePath).join(".");
|
|
30
|
+
sanitized = sanitized.split(absolutePath.replace(/\\/g, "/")).join(".");
|
|
31
|
+
sanitized = sanitized.split(absolutePath.replace(/\//g, "\\")).join(".");
|
|
32
|
+
}
|
|
33
|
+
return sanitized;
|
|
34
|
+
}
|
|
35
|
+
async function compileResponse(response, absolutePaths) {
|
|
36
|
+
return {
|
|
37
|
+
status: response.status,
|
|
38
|
+
statusText: response.statusText,
|
|
39
|
+
headers: Array.from(response.headers.entries()).map(([key, value]) => [
|
|
40
|
+
key,
|
|
41
|
+
sanitizeCompiledValue(value, absolutePaths),
|
|
42
|
+
]),
|
|
43
|
+
body: sanitizeCompiledValue(await response.text(), absolutePaths),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async function compileRoute(routes, pathname, handler, absolutePaths, init) {
|
|
47
|
+
const request = new Request(`${FARM_DOCS_COMPILED_ORIGIN}${pathname}`, init);
|
|
48
|
+
const response = await handler(request);
|
|
49
|
+
if (!response)
|
|
50
|
+
return null;
|
|
51
|
+
routes[normalizePathname(pathname)] = await compileResponse(response.clone(), absolutePaths);
|
|
52
|
+
return response;
|
|
53
|
+
}
|
|
54
|
+
function getSiteTitle(config) {
|
|
55
|
+
const nav = config.nav;
|
|
56
|
+
return nav && typeof nav === "object" && "title" in nav
|
|
57
|
+
? String(nav.title || "Documentation")
|
|
58
|
+
: "Documentation";
|
|
59
|
+
}
|
|
60
|
+
function getSearchLimit(search) {
|
|
61
|
+
if (!search || typeof search !== "object" || !("maxResults" in search))
|
|
62
|
+
return undefined;
|
|
63
|
+
const limit = Number(search.maxResults);
|
|
64
|
+
return Number.isFinite(limit) ? limit : undefined;
|
|
65
|
+
}
|
|
66
|
+
function isConfigFeatureEnabled(value, defaultEnabled = false) {
|
|
67
|
+
if (value === false)
|
|
68
|
+
return false;
|
|
69
|
+
if (value === true)
|
|
70
|
+
return true;
|
|
71
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
72
|
+
const enabled = value.enabled;
|
|
73
|
+
return enabled === false ? false : defaultEnabled || enabled === true;
|
|
74
|
+
}
|
|
75
|
+
return defaultEnabled;
|
|
76
|
+
}
|
|
77
|
+
function assertSerializableEdgeConfig(config) {
|
|
78
|
+
const search = config.search;
|
|
79
|
+
if (search &&
|
|
80
|
+
typeof search === "object" &&
|
|
81
|
+
"provider" in search &&
|
|
82
|
+
search.provider === "custom") {
|
|
83
|
+
throw new Error("@farming-labs/farmjs cannot serialize a custom docs search adapter into an edge deployment. " +
|
|
84
|
+
'Use the built-in "simple" provider, a serializable hosted provider, or a Node target.');
|
|
85
|
+
}
|
|
86
|
+
const runtimeOnlyFeatures = [
|
|
87
|
+
isConfigFeatureEnabled(config.ai) ? "ai" : null,
|
|
88
|
+
isConfigFeatureEnabled(config.mcp, true) ? "mcp" : null,
|
|
89
|
+
isConfigFeatureEnabled(config.feedback) ? "feedback" : null,
|
|
90
|
+
isConfigFeatureEnabled(config.analytics) ? "analytics" : null,
|
|
91
|
+
isConfigFeatureEnabled(config.telemetry, true) ? "telemetry" : null,
|
|
92
|
+
isConfigFeatureEnabled(config.observability) ? "observability" : null,
|
|
93
|
+
config.i18n ? "i18n" : null,
|
|
94
|
+
].filter((value) => Boolean(value));
|
|
95
|
+
if (runtimeOnlyFeatures.length > 0) {
|
|
96
|
+
throw new Error(`@farming-labs/farmjs cannot precompile runtime-only docs features for an edge deployment: ${runtimeOnlyFeatures.join(", ")}. Use a Node target or disable those features for the edge build.`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Compile the official Farm adapter into Farm core's renderer-neutral edge
|
|
101
|
+
* manifest. This module runs during the Node build and is never imported by
|
|
102
|
+
* the generated Worker.
|
|
103
|
+
*/
|
|
104
|
+
export async function compileFarmDocsEdgeManifest(config, options) {
|
|
105
|
+
const docsConfig = config;
|
|
106
|
+
assertSerializableEdgeConfig(docsConfig);
|
|
107
|
+
const entry = String(config.entry || "docs").replace(/^\/+|\/+$/g, "") || "docs";
|
|
108
|
+
const docsPath = normalizePublicPath(config.docsPath, `/${entry}`);
|
|
109
|
+
const cloud = config.cloud;
|
|
110
|
+
const apiPath = normalizePublicPath(cloud && typeof cloud === "object" && "apiRoute" in cloud
|
|
111
|
+
? cloud.apiRoute
|
|
112
|
+
: undefined, "/api/docs");
|
|
113
|
+
const rawContentDir = String(config.contentDir || entry);
|
|
114
|
+
const contentDir = path.isAbsolute(rawContentDir)
|
|
115
|
+
? rawContentDir
|
|
116
|
+
: path.resolve(options.rootDir, rawContentDir);
|
|
117
|
+
const absolutePaths = [path.resolve(options.rootDir), path.resolve(contentDir)];
|
|
118
|
+
const pages = loadDocsContent(contentDir, entry).sort((left, right) => left.url.localeCompare(right.url));
|
|
119
|
+
const pageComponents = new Map();
|
|
120
|
+
const compileOptions = createFarmDocsMdxCompileOptions();
|
|
121
|
+
for (const page of pages) {
|
|
122
|
+
if (!page.sourcePath) {
|
|
123
|
+
throw new Error(`@farming-labs/farmjs could not resolve the source for docs page ${page.url}.`);
|
|
124
|
+
}
|
|
125
|
+
const module = await evaluate({ value: page.rawContent, path: page.sourcePath }, {
|
|
126
|
+
...jsxRuntime,
|
|
127
|
+
...compileOptions,
|
|
128
|
+
baseUrl: pathToFileURL(page.sourcePath),
|
|
129
|
+
});
|
|
130
|
+
pageComponents.set(page.slug, module.default);
|
|
131
|
+
}
|
|
132
|
+
const handler = createFarmDocsRuntimeHandler(docsConfig, {
|
|
133
|
+
rootDir: options.rootDir,
|
|
134
|
+
clientEntry: options.clientEntry,
|
|
135
|
+
stylesheets: options.stylesheets,
|
|
136
|
+
loadReactModule: async () => ({
|
|
137
|
+
FarmDocsPage: ({ config: pageConfig, data }) => createElement(FarmDocsPageRenderer, {
|
|
138
|
+
config: pageConfig,
|
|
139
|
+
data,
|
|
140
|
+
Content: pageComponents.get(String(data.slug || "")),
|
|
141
|
+
}),
|
|
142
|
+
}),
|
|
143
|
+
});
|
|
144
|
+
const routes = {};
|
|
145
|
+
const navigation = {};
|
|
146
|
+
const markdown = {};
|
|
147
|
+
for (const page of pages) {
|
|
148
|
+
const pathname = page.slug ? `${docsPath}/${page.slug}` : docsPath;
|
|
149
|
+
await compileRoute(routes, pathname, handler, absolutePaths);
|
|
150
|
+
await compileRoute(navigation, pathname, handler, absolutePaths, {
|
|
151
|
+
headers: { [FARM_DOCS_NAVIGATION_HEADER]: "1" },
|
|
152
|
+
});
|
|
153
|
+
await compileRoute(routes, `${pathname}.md`, handler, absolutePaths);
|
|
154
|
+
const response = await handler(new Request(`${FARM_DOCS_COMPILED_ORIGIN}${apiPath}?format=markdown&path=${encodeURIComponent(page.slug)}`));
|
|
155
|
+
if (response)
|
|
156
|
+
markdown[page.slug] = await compileResponse(response, absolutePaths);
|
|
157
|
+
}
|
|
158
|
+
await compileRoute(routes, FARM_DOCS_BROWSER_CSS_PATH, handler, absolutePaths);
|
|
159
|
+
const publicCandidates = [
|
|
160
|
+
"/llms.txt",
|
|
161
|
+
"/llms-full.txt",
|
|
162
|
+
"/.well-known/llms.txt",
|
|
163
|
+
"/.well-known/llms-full.txt",
|
|
164
|
+
"/AGENTS.md",
|
|
165
|
+
"/agent.md",
|
|
166
|
+
"/.well-known/AGENTS.md",
|
|
167
|
+
"/SKILL.md",
|
|
168
|
+
"/skill.md",
|
|
169
|
+
"/.well-known/SKILL.md",
|
|
170
|
+
"/.well-known/skill.md",
|
|
171
|
+
"/.well-known/agent.json",
|
|
172
|
+
"/.well-known/agent",
|
|
173
|
+
"/.well-known/agent-card.json",
|
|
174
|
+
"/.well-known/api-catalog",
|
|
175
|
+
"/sitemap.xml",
|
|
176
|
+
"/sitemap.md",
|
|
177
|
+
"/robots.txt",
|
|
178
|
+
`${docsPath}/sitemap.md`,
|
|
179
|
+
];
|
|
180
|
+
for (const pathname of publicCandidates) {
|
|
181
|
+
if (!routes[normalizePathname(pathname)]) {
|
|
182
|
+
await compileRoute(routes, pathname, handler, absolutePaths);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const staticFormats = [
|
|
186
|
+
"config",
|
|
187
|
+
"skill",
|
|
188
|
+
"agents",
|
|
189
|
+
"agent-spec",
|
|
190
|
+
"diagnostics",
|
|
191
|
+
"llms",
|
|
192
|
+
"llms-full",
|
|
193
|
+
"sitemap-md",
|
|
194
|
+
"sitemap-xml",
|
|
195
|
+
"robots",
|
|
196
|
+
];
|
|
197
|
+
const staticResponses = {};
|
|
198
|
+
for (const format of staticFormats) {
|
|
199
|
+
const response = await handler(new Request(`${FARM_DOCS_COMPILED_ORIGIN}${apiPath}?format=${format}`));
|
|
200
|
+
if (response)
|
|
201
|
+
staticResponses[format] = await compileResponse(response, absolutePaths);
|
|
202
|
+
}
|
|
203
|
+
const emptyResponse = await handler(new Request(`${FARM_DOCS_COMPILED_ORIGIN}${apiPath}`));
|
|
204
|
+
const postResponse = (await handler(new Request(`${FARM_DOCS_COMPILED_ORIGIN}${apiPath}`, { method: "POST" }))) ??
|
|
205
|
+
new Response(JSON.stringify({ error: "Not Found" }), {
|
|
206
|
+
status: 404,
|
|
207
|
+
headers: { "Content-Type": "application/json" },
|
|
208
|
+
});
|
|
209
|
+
if (!emptyResponse) {
|
|
210
|
+
throw new Error("@farming-labs/farmjs could not compile its docs API responses.");
|
|
211
|
+
}
|
|
212
|
+
const search = docsConfig.search ?? true;
|
|
213
|
+
const limit = getSearchLimit(docsConfig.search);
|
|
214
|
+
return {
|
|
215
|
+
protocol: 1,
|
|
216
|
+
originPlaceholder: FARM_DOCS_COMPILED_ORIGIN,
|
|
217
|
+
entry: docsPath,
|
|
218
|
+
apiPath,
|
|
219
|
+
routes,
|
|
220
|
+
navigation,
|
|
221
|
+
api: {
|
|
222
|
+
static: staticResponses,
|
|
223
|
+
markdown,
|
|
224
|
+
empty: await compileResponse(emptyResponse, absolutePaths),
|
|
225
|
+
post: await compileResponse(postResponse, absolutePaths),
|
|
226
|
+
search: {
|
|
227
|
+
pages: pages.map((page) => ({
|
|
228
|
+
...page,
|
|
229
|
+
sourcePath: `farm-docs:${page.slug || "index"}`,
|
|
230
|
+
})),
|
|
231
|
+
search,
|
|
232
|
+
siteTitle: getSiteTitle(config),
|
|
233
|
+
...(limit === undefined ? {} : { limit }),
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=edge-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-compiler.js","sourceRoot":"","sources":["../src/edge-compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/page.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentType } from "react";
|
|
2
|
+
import type { DocsConfig } from "@farming-labs/docs";
|
|
3
|
+
import { type BrowserNavigationAdapter } from "@farming-labs/theme/browser";
|
|
4
|
+
import type { DocsServerLoadResult } from "./server.js";
|
|
5
|
+
export interface FarmDocsPageRendererProps {
|
|
6
|
+
config: DocsConfig;
|
|
7
|
+
data: DocsServerLoadResult;
|
|
8
|
+
Content?: ComponentType<any> | null;
|
|
9
|
+
navigation?: BrowserNavigationAdapter;
|
|
10
|
+
}
|
|
11
|
+
/** Renderer shared by Vite-loaded pages and build-time edge snapshots. */
|
|
12
|
+
export declare function FarmDocsPageRenderer({ config, data, Content, navigation, }: FarmDocsPageRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAkB,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAmCxD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,GACX,EAAE,yBAAyB,2CAgE3B"}
|
package/dist/page.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { DocsClientHooks } from "@farming-labs/theme/client-hooks";
|
|
4
|
+
import { BrowserDocsLayout, BrowserRootProvider, } from "@farming-labs/theme/browser";
|
|
5
|
+
import { getMDXComponents } from "@farming-labs/theme/mdx";
|
|
6
|
+
import { themeOptionsFromConfig } from "./theme.js";
|
|
7
|
+
function renderConfiguredIcon(value) {
|
|
8
|
+
if (typeof value !== "string")
|
|
9
|
+
return value;
|
|
10
|
+
const markup = value.trim();
|
|
11
|
+
if (!markup)
|
|
12
|
+
return undefined;
|
|
13
|
+
const svgMatch = markup.match(/^<svg\b([^>]*)>([\s\S]*)<\/svg>$/i);
|
|
14
|
+
const inner = svgMatch?.[2] ?? markup;
|
|
15
|
+
const viewBox = svgMatch?.[1].match(/\bviewBox=["']([^"']+)["']/i)?.[1] ?? "0 0 24 24";
|
|
16
|
+
return createElement("svg", {
|
|
17
|
+
"aria-hidden": "true",
|
|
18
|
+
focusable: "false",
|
|
19
|
+
viewBox,
|
|
20
|
+
fill: "none",
|
|
21
|
+
stroke: "currentColor",
|
|
22
|
+
strokeWidth: 2,
|
|
23
|
+
strokeLinecap: "round",
|
|
24
|
+
strokeLinejoin: "round",
|
|
25
|
+
dangerouslySetInnerHTML: { __html: inner },
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function withRenderableIcons(config) {
|
|
29
|
+
if (!config.icons || typeof config.icons !== "object")
|
|
30
|
+
return config;
|
|
31
|
+
return {
|
|
32
|
+
...config,
|
|
33
|
+
icons: Object.fromEntries(Object.entries(config.icons).map(([name, value]) => [name, renderConfiguredIcon(value)])),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Renderer shared by Vite-loaded pages and build-time edge snapshots. */
|
|
37
|
+
export function FarmDocsPageRenderer({ config, data, Content, navigation, }) {
|
|
38
|
+
const resolvedConfig = withRenderableIcons(config);
|
|
39
|
+
const promptIconRegistry = resolvedConfig.icons;
|
|
40
|
+
const promptOpenDocsProviders = resolvedConfig.pageActions?.openDocs && typeof resolvedConfig.pageActions.openDocs === "object"
|
|
41
|
+
? resolvedConfig.pageActions.openDocs
|
|
42
|
+
.providers
|
|
43
|
+
: undefined;
|
|
44
|
+
const themeOptions = themeOptionsFromConfig(config);
|
|
45
|
+
if (!Content) {
|
|
46
|
+
return (_jsx(BrowserRootProvider, { initialPathname: data.url, navigation: navigation, theme: themeOptions, children: _jsx(BrowserDocsLayout, { config: resolvedConfig, tree: data.tree, locale: data.locale, children: _jsxs("article", { style: { padding: "2rem" }, children: [_jsx("h1", { children: "Page module missing" }), _jsxs("p", { children: ["Expected a compiled MDX module at `", data.sourcePath, "`."] })] }) }) }));
|
|
47
|
+
}
|
|
48
|
+
return (_jsxs(BrowserRootProvider, { initialPathname: data.url, navigation: navigation, theme: themeOptions, children: [_jsx(DocsClientHooks, { onCopyClick: resolvedConfig.onCopyClick, analytics: resolvedConfig.analytics, onFeedback: typeof resolvedConfig.feedback === "object"
|
|
49
|
+
? resolvedConfig.feedback.onFeedback
|
|
50
|
+
: undefined, onAIFeedback: resolvedConfig.ai?.feedback && typeof resolvedConfig.ai.feedback === "object"
|
|
51
|
+
? resolvedConfig.ai.feedback.onFeedback
|
|
52
|
+
: undefined, onAIActions: resolvedConfig.ai?.onActions }), _jsx(BrowserDocsLayout, { config: resolvedConfig, tree: data.tree, locale: data.locale, description: data.descriptionInBody ? undefined : data.description, descriptionInBody: data.descriptionInBody, readingTime: data.readingTime, lastModified: data.lastModified, previousPage: data.previousPage, nextPage: data.nextPage, structuredData: data.structuredData, editOnGithubUrl: data.editOnGithub, children: _jsx(Content, { components: getMDXComponents(resolvedConfig.components, {
|
|
53
|
+
onCopyClick: resolvedConfig.onCopyClick,
|
|
54
|
+
theme: resolvedConfig.theme,
|
|
55
|
+
icons: promptIconRegistry,
|
|
56
|
+
openDocsProviders: promptOpenDocsProviders,
|
|
57
|
+
}) }) })] }));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=page.js.map
|
package/dist/page.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
|
package/dist/react.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Root } from "react-dom/client";
|
|
2
2
|
import type { DocsConfig } from "@farming-labs/docs";
|
|
3
|
-
import {
|
|
3
|
+
import type { BrowserNavigationAdapter } from "@farming-labs/theme/browser";
|
|
4
4
|
import type { DocsServerLoadResult } from "./server.js";
|
|
5
5
|
export declare function FarmDocsPage({ config, data, navigation, }: {
|
|
6
6
|
config: DocsConfig;
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AASA,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAqBxD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,IAAI,EACJ,UAAU,GACX,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,CAAC,EAAE,wBAAwB,CAAC;CACvC,2CAYA;AA+GD,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B,GAAG,IAAI,CAOP"}
|
package/dist/react.js
CHANGED
|
@@ -1,68 +1,16 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { startTransition, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
|
|
3
3
|
import { hydrateRoot } from "react-dom/client";
|
|
4
|
-
import { DocsClientHooks } from "@farming-labs/theme/client-hooks";
|
|
5
|
-
import { BrowserDocsLayout, BrowserRootProvider, } from "@farming-labs/theme/browser";
|
|
6
|
-
import { getMDXComponents } from "@farming-labs/theme/mdx";
|
|
7
4
|
import { normalizeDocsModuleKey, resolveDocsModule } from "./module-map.js";
|
|
8
5
|
import { createFarmDocsNavigator, } from "./navigation.js";
|
|
9
|
-
import {
|
|
6
|
+
import { FarmDocsPageRenderer } from "./page.js";
|
|
10
7
|
const rawDocModules = import.meta.glob("/**/*.{md,mdx}", {
|
|
11
8
|
eager: true,
|
|
12
9
|
});
|
|
13
10
|
const docModules = Object.fromEntries(Object.entries(rawDocModules).map(([key, value]) => [normalizeDocsModuleKey(key), value]));
|
|
14
|
-
function renderConfiguredIcon(value) {
|
|
15
|
-
if (typeof value !== "string")
|
|
16
|
-
return value;
|
|
17
|
-
const markup = value.trim();
|
|
18
|
-
if (!markup)
|
|
19
|
-
return undefined;
|
|
20
|
-
const svgMatch = markup.match(/^<svg\b([^>]*)>([\s\S]*)<\/svg>$/i);
|
|
21
|
-
const inner = svgMatch?.[2] ?? markup;
|
|
22
|
-
const viewBox = svgMatch?.[1].match(/\bviewBox=["']([^"']+)["']/i)?.[1] ?? "0 0 24 24";
|
|
23
|
-
return createElement("svg", {
|
|
24
|
-
"aria-hidden": "true",
|
|
25
|
-
focusable: "false",
|
|
26
|
-
viewBox,
|
|
27
|
-
fill: "none",
|
|
28
|
-
stroke: "currentColor",
|
|
29
|
-
strokeWidth: 2,
|
|
30
|
-
strokeLinecap: "round",
|
|
31
|
-
strokeLinejoin: "round",
|
|
32
|
-
dangerouslySetInnerHTML: { __html: inner },
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
function withRenderableIcons(config) {
|
|
36
|
-
if (!config.icons || typeof config.icons !== "object")
|
|
37
|
-
return config;
|
|
38
|
-
return {
|
|
39
|
-
...config,
|
|
40
|
-
icons: Object.fromEntries(Object.entries(config.icons).map(([name, value]) => [name, renderConfiguredIcon(value)])),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
11
|
export function FarmDocsPage({ config, data, navigation, }) {
|
|
44
|
-
const resolvedConfig = withRenderableIcons(config);
|
|
45
|
-
const promptIconRegistry = resolvedConfig.icons;
|
|
46
|
-
const promptOpenDocsProviders = resolvedConfig.pageActions?.openDocs && typeof resolvedConfig.pageActions.openDocs === "object"
|
|
47
|
-
? resolvedConfig.pageActions.openDocs
|
|
48
|
-
.providers
|
|
49
|
-
: undefined;
|
|
50
12
|
const module = resolveDocsModule(docModules, data.sourcePath, data.entry);
|
|
51
|
-
|
|
52
|
-
const themeOptions = themeOptionsFromConfig(config);
|
|
53
|
-
if (!Content) {
|
|
54
|
-
return (_jsx(BrowserRootProvider, { initialPathname: data.url, navigation: navigation, theme: themeOptions, children: _jsx(BrowserDocsLayout, { config: resolvedConfig, tree: data.tree, locale: data.locale, children: _jsxs("article", { style: { padding: "2rem" }, children: [_jsx("h1", { children: "Page module missing" }), _jsxs("p", { children: ["Expected a compiled MDX module at `", data.sourcePath, "`."] })] }) }) }));
|
|
55
|
-
}
|
|
56
|
-
return (_jsxs(BrowserRootProvider, { initialPathname: data.url, navigation: navigation, theme: themeOptions, children: [_jsx(DocsClientHooks, { onCopyClick: resolvedConfig.onCopyClick, analytics: resolvedConfig.analytics, onFeedback: typeof resolvedConfig.feedback === "object"
|
|
57
|
-
? resolvedConfig.feedback.onFeedback
|
|
58
|
-
: undefined, onAIFeedback: resolvedConfig.ai?.feedback && typeof resolvedConfig.ai.feedback === "object"
|
|
59
|
-
? resolvedConfig.ai.feedback.onFeedback
|
|
60
|
-
: undefined, onAIActions: resolvedConfig.ai?.onActions }), _jsx(BrowserDocsLayout, { config: resolvedConfig, tree: data.tree, locale: data.locale, description: data.descriptionInBody ? undefined : data.description, descriptionInBody: data.descriptionInBody, readingTime: data.readingTime, lastModified: data.lastModified, previousPage: data.previousPage, nextPage: data.nextPage, structuredData: data.structuredData, editOnGithubUrl: data.editOnGithub, children: _jsx(Content, { components: getMDXComponents(resolvedConfig.components, {
|
|
61
|
-
onCopyClick: resolvedConfig.onCopyClick,
|
|
62
|
-
theme: resolvedConfig.theme,
|
|
63
|
-
icons: promptIconRegistry,
|
|
64
|
-
openDocsProviders: promptOpenDocsProviders,
|
|
65
|
-
}) }) })] }));
|
|
13
|
+
return (_jsx(FarmDocsPageRenderer, { config: config, data: data, Content: module?.default, navigation: navigation }));
|
|
66
14
|
}
|
|
67
15
|
function scrollToNavigationTarget(url) {
|
|
68
16
|
if (!url.hash) {
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface FarmDocsRuntimeAdapter {
|
|
|
14
14
|
server: "@farming-labs/farmjs/server";
|
|
15
15
|
react: "@farming-labs/farmjs/react";
|
|
16
16
|
vite: "@farming-labs/farmjs/vite";
|
|
17
|
+
edgeCompiler: "@farming-labs/farmjs/edge-compiler";
|
|
17
18
|
}
|
|
18
19
|
/** Serializable runtime descriptor placed in Farm's resolved docs config. */
|
|
19
20
|
export declare const farmDocsRuntimeAdapter: FarmDocsRuntimeAdapter;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AAErD,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,EAAG,wBAAiC,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,oBAAoB,CAAC;IAChC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,6BAA6B,CAAC;IACtC,KAAK,EAAE,4BAA4B,CAAC;IACpC,IAAI,EAAE,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AAErD,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,EAAG,wBAAiC,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,oBAAoB,CAAC;IAChC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,6BAA6B,CAAC;IACtC,KAAK,EAAE,4BAA4B,CAAC;IACpC,IAAI,EAAE,2BAA2B,CAAC;IAClC,YAAY,EAAE,oCAAoC,CAAC;CACpD;AAED,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,EAAE,sBAOnC,CAAC"}
|