@farming-labs/farmjs 0.2.92
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 +73 -0
- package/dist/api-reference.d.ts +3 -0
- package/dist/api-reference.d.ts.map +1 -0
- package/dist/api-reference.js +20 -0
- package/dist/api-reference.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -0
- package/dist/content.d.ts +56 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +235 -0
- package/dist/content.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/react.d.ts +7 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +34 -0
- package/dist/react.js.map +1 -0
- package/dist/server.d.ts +43 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1725 -0
- package/dist/server.js.map +1 -0
- package/dist/vite.d.ts +3 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +147 -0
- package/dist/vite.js.map +1 -0
- package/package.json +90 -0
package/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# @farming-labs/farmjs
|
|
2
|
+
|
|
3
|
+
The official Farm.js runtime adapter for
|
|
4
|
+
[`@farming-labs/docs`](https://www.npmjs.com/package/@farming-labs/docs).
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install @farming-labs/docs @farming-labs/farmjs @farming-labs/theme
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Configure Farm
|
|
13
|
+
|
|
14
|
+
Keep documentation settings in `docs.config.ts`, then enable the adapter from
|
|
15
|
+
`farm.config.ts`:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { defineConfig } from "@farm.js/core";
|
|
19
|
+
import { withDocs } from "@farming-labs/farmjs/config";
|
|
20
|
+
|
|
21
|
+
export default withDocs(
|
|
22
|
+
defineConfig({
|
|
23
|
+
preset: "vercel",
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Farm discovers `docs.config.ts` from the application root. The wrapper writes
|
|
29
|
+
Farm's native `docs` configuration and leaves routing, development middleware,
|
|
30
|
+
and production output to `@farm.js/core`. A different path can
|
|
31
|
+
be provided explicitly:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export default withDocs(defineConfig({}), {
|
|
35
|
+
configPath: "config/docs.config.ts",
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Server wrapper
|
|
40
|
+
|
|
41
|
+
`withDocs()` is the normal integration. The lower-level server wrapper is
|
|
42
|
+
available for custom runtimes, route testing, and framework development:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import docsConfig from "./docs.config";
|
|
46
|
+
import { createDocsServer } from "@farming-labs/farmjs/server";
|
|
47
|
+
|
|
48
|
+
const docs = createDocsServer({
|
|
49
|
+
...docsConfig,
|
|
50
|
+
rootDir: process.cwd(),
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const response = await docs.handle(request);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`handle()` returns `null` for non-docs requests so it can run in Farm's request
|
|
57
|
+
pipeline without taking over application routes. The server also exposes
|
|
58
|
+
`load`, `GET`, `POST`, and `MCP` for custom routing.
|
|
59
|
+
|
|
60
|
+
## Entrypoints
|
|
61
|
+
|
|
62
|
+
| Entrypoint | Purpose |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `@farming-labs/farmjs/config` | Farm config wrapper |
|
|
65
|
+
| `@farming-labs/farmjs/server` | Page loader and API, agent, and MCP request handlers |
|
|
66
|
+
| `@farming-labs/farmjs/react` | React documentation page renderer |
|
|
67
|
+
| `@farming-labs/farmjs/content` | Content and navigation utilities |
|
|
68
|
+
| `@farming-labs/farmjs/vite` | MDX compilation plugin |
|
|
69
|
+
| `@farming-labs/farmjs/api-reference` | Farm API-reference handler |
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-reference.d.ts","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,2BAmBhF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { buildApiReferenceHtmlDocumentAsync, resolveApiReferenceConfig, } from "@farming-labs/docs/server";
|
|
2
|
+
export function createFarmjsApiReference(config) {
|
|
3
|
+
return async () => {
|
|
4
|
+
const apiReference = resolveApiReferenceConfig(config.apiReference);
|
|
5
|
+
if (!apiReference.enabled) {
|
|
6
|
+
return new Response("Not Found", { status: 404 });
|
|
7
|
+
}
|
|
8
|
+
const rootDir = typeof config.rootDir === "string" ? config.rootDir : process.cwd();
|
|
9
|
+
const html = await buildApiReferenceHtmlDocumentAsync(config, {
|
|
10
|
+
framework: "farmjs",
|
|
11
|
+
rootDir,
|
|
12
|
+
});
|
|
13
|
+
return new Response(html, {
|
|
14
|
+
headers: {
|
|
15
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=api-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-reference.js","sourceRoot":"","sources":["../src/api-reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,wBAAwB,CAAC,MAAwC;IAC/E,OAAO,KAAK,IAAI,EAAE;QAChB,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,IAAI,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE;YAC5D,SAAS,EAAE,QAAQ;YACnB,OAAO;SACR,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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DocsConfig } from "@farming-labs/docs";
|
|
2
|
+
export interface FarmDocsCoreConfig extends Partial<DocsConfig> {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
configPath?: string;
|
|
5
|
+
config?: Partial<DocsConfig>;
|
|
6
|
+
}
|
|
7
|
+
export interface FarmDocsAdapterOptions {
|
|
8
|
+
/** Enable the docs runtime. Defaults to true when withDocs is used. */
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
/** Path to docs.config.ts, relative to the Farm application root. */
|
|
11
|
+
configPath?: string;
|
|
12
|
+
/** Inline docs config merged after the config file. */
|
|
13
|
+
config?: Partial<DocsConfig>;
|
|
14
|
+
}
|
|
15
|
+
export interface FarmConfigLike {
|
|
16
|
+
docs?: boolean | FarmDocsCoreConfig;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
export type FarmConfigWithDocs<TConfig extends FarmConfigLike> = Omit<TConfig, "docs"> & {
|
|
20
|
+
docs: FarmDocsCoreConfig;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Enable Farming Labs docs in a Farm.js application.
|
|
24
|
+
*
|
|
25
|
+
* The wrapper is deliberately structural, so it preserves the exact config
|
|
26
|
+
* type returned by Farm's defineConfig without coupling this package to a
|
|
27
|
+
* particular release of @farm.js/core.
|
|
28
|
+
*/
|
|
29
|
+
export declare function withDocs<TConfig extends FarmConfigLike>(farmConfig: TConfig, options?: FarmDocsAdapterOptions): FarmConfigWithDocs<TConfig>;
|
|
30
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,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;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,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;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG;IACvF,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAOF;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,SAAS,cAAc,EACrD,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,CAAC,OAAO,CAAC,CAoB7B"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function normalizeExistingDocs(value) {
|
|
2
|
+
if (!value || value === true)
|
|
3
|
+
return {};
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Enable Farming Labs docs in a Farm.js application.
|
|
8
|
+
*
|
|
9
|
+
* The wrapper is deliberately structural, so it preserves the exact config
|
|
10
|
+
* type returned by Farm's defineConfig without coupling this package to a
|
|
11
|
+
* particular release of @farm.js/core.
|
|
12
|
+
*/
|
|
13
|
+
export function withDocs(farmConfig, options = {}) {
|
|
14
|
+
const existing = normalizeExistingDocs(farmConfig.docs);
|
|
15
|
+
const enabled = options.enabled ?? true;
|
|
16
|
+
return {
|
|
17
|
+
...farmConfig,
|
|
18
|
+
docs: {
|
|
19
|
+
...existing,
|
|
20
|
+
enabled,
|
|
21
|
+
...(options.configPath ? { configPath: options.configPath } : {}),
|
|
22
|
+
...(options.config
|
|
23
|
+
? {
|
|
24
|
+
config: {
|
|
25
|
+
...existing.config,
|
|
26
|
+
...options.config,
|
|
27
|
+
},
|
|
28
|
+
}
|
|
29
|
+
: {}),
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA0BA,SAAS,qBAAqB,CAAC,KAA6B;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,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;YACJ,GAAG,QAAQ;YACX,OAAO;YACP,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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content loading utilities for Farm.js docs.
|
|
3
|
+
*
|
|
4
|
+
* Scans the filesystem for `.md` / `.mdx` content files,
|
|
5
|
+
* extracts frontmatter, and builds a navigation tree compatible
|
|
6
|
+
* with @farming-labs/docs DocsConfig.
|
|
7
|
+
*/
|
|
8
|
+
import { type OrderingItem, type PageAgentFrontmatter, type ResolvedDocsRelatedLink, type SidebarFolderIndexBehavior } from "@farming-labs/docs";
|
|
9
|
+
export interface PageNode {
|
|
10
|
+
type: "page";
|
|
11
|
+
name: string;
|
|
12
|
+
url: string;
|
|
13
|
+
icon?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FolderNode {
|
|
17
|
+
type: "folder";
|
|
18
|
+
name: string;
|
|
19
|
+
icon?: string;
|
|
20
|
+
index?: PageNode;
|
|
21
|
+
folderIndexBehavior?: SidebarFolderIndexBehavior;
|
|
22
|
+
children: NavNode[];
|
|
23
|
+
}
|
|
24
|
+
export type NavNode = PageNode | FolderNode;
|
|
25
|
+
export interface NavTree {
|
|
26
|
+
name: string;
|
|
27
|
+
children: NavNode[];
|
|
28
|
+
}
|
|
29
|
+
export interface ContentPage {
|
|
30
|
+
slug: string;
|
|
31
|
+
url: string;
|
|
32
|
+
title: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
related?: ResolvedDocsRelatedLink[];
|
|
35
|
+
agent?: PageAgentFrontmatter;
|
|
36
|
+
icon?: string;
|
|
37
|
+
sourcePath?: string;
|
|
38
|
+
lastmod?: string;
|
|
39
|
+
lastModified?: string;
|
|
40
|
+
locale?: string;
|
|
41
|
+
framework?: string;
|
|
42
|
+
version?: string;
|
|
43
|
+
tags?: string[];
|
|
44
|
+
content: string;
|
|
45
|
+
rawContent: string;
|
|
46
|
+
agentContent?: string;
|
|
47
|
+
agentRawContent?: string;
|
|
48
|
+
agentLastModified?: string;
|
|
49
|
+
agentFallbackContent?: string;
|
|
50
|
+
agentFallbackRawContent?: string;
|
|
51
|
+
}
|
|
52
|
+
export declare function normalizeDocsFrontmatterLastmod(value: unknown): string | undefined;
|
|
53
|
+
export declare function loadDocsContent(contentDir: string, entry?: string): ContentPage[];
|
|
54
|
+
export declare function loadDocsNavTree(contentDir: string, entry?: string, ordering?: "alphabetical" | "numeric" | OrderingItem[]): NavTree;
|
|
55
|
+
export declare function flattenNavTree(tree: NavTree): PageNode[];
|
|
56
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,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,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,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;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,CAqEzF;AAgBD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAe,EACtB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,EAAE,GACrD,OAAO,CAkBT;AAgHD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAgBxD"}
|
package/dist/content.js
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content loading utilities for Farm.js docs.
|
|
3
|
+
*
|
|
4
|
+
* Scans the filesystem for `.md` / `.mdx` content files,
|
|
5
|
+
* extracts frontmatter, and builds a navigation tree compatible
|
|
6
|
+
* with @farming-labs/docs DocsConfig.
|
|
7
|
+
*/
|
|
8
|
+
import fs from "node:fs";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import matter from "gray-matter";
|
|
11
|
+
import { normalizeDocsRelated, normalizePageAgentFrontmatter, resolveDocsAudienceMdxContent, resolvePageSidebarFolderIndexBehavior, } from "@farming-labs/docs";
|
|
12
|
+
export function normalizeDocsFrontmatterLastmod(value) {
|
|
13
|
+
if (typeof value === "string")
|
|
14
|
+
return value;
|
|
15
|
+
if (value instanceof Date && !Number.isNaN(value.getTime()))
|
|
16
|
+
return value.toISOString();
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
export function loadDocsContent(contentDir, entry = "docs") {
|
|
20
|
+
const pages = [];
|
|
21
|
+
const absDir = path.resolve(contentDir);
|
|
22
|
+
function scan(dir, slugParts) {
|
|
23
|
+
if (!fs.existsSync(dir))
|
|
24
|
+
return;
|
|
25
|
+
const entries = fs.readdirSync(dir).sort();
|
|
26
|
+
for (const name of entries) {
|
|
27
|
+
const full = path.join(dir, name);
|
|
28
|
+
const stat = fs.statSync(full);
|
|
29
|
+
if (stat.isDirectory()) {
|
|
30
|
+
scan(full, [...slugParts, name]);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (name === "agent.md")
|
|
34
|
+
continue;
|
|
35
|
+
if (!name.endsWith(".md") && !name.endsWith(".mdx"))
|
|
36
|
+
continue;
|
|
37
|
+
const raw = fs.readFileSync(full, "utf-8");
|
|
38
|
+
const { data, content } = matter(raw);
|
|
39
|
+
const humanRawContent = resolveDocsAudienceMdxContent(content, "human");
|
|
40
|
+
const pageAgentRawContent = resolveDocsAudienceMdxContent(content, "agent");
|
|
41
|
+
const related = normalizeDocsRelated(data.related);
|
|
42
|
+
const baseName = name.replace(/\.(md|mdx)$/, "");
|
|
43
|
+
const isIndex = baseName === "index" || baseName === "page";
|
|
44
|
+
const slug = isIndex ? slugParts.join("/") : [...slugParts, baseName].join("/");
|
|
45
|
+
const url = slug ? `/${entry}/${slug}` : `/${entry}`;
|
|
46
|
+
const agentDoc = isIndex ? readAgentDoc(dir) : undefined;
|
|
47
|
+
const title = data.title ??
|
|
48
|
+
baseName.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase());
|
|
49
|
+
pages.push({
|
|
50
|
+
slug,
|
|
51
|
+
url,
|
|
52
|
+
title,
|
|
53
|
+
description: data.description,
|
|
54
|
+
...(related.length > 0 ? { related } : {}),
|
|
55
|
+
agent: normalizePageAgentFrontmatter(data.agent),
|
|
56
|
+
icon: data.icon,
|
|
57
|
+
sourcePath: full.replace(/\\/g, "/"),
|
|
58
|
+
lastmod: normalizeDocsFrontmatterLastmod(data.lastmod),
|
|
59
|
+
lastModified: stat.mtime.toISOString(),
|
|
60
|
+
locale: typeof data.locale === "string" ? data.locale : undefined,
|
|
61
|
+
framework: typeof data.framework === "string" ? data.framework : undefined,
|
|
62
|
+
version: typeof data.version === "string" ? data.version : undefined,
|
|
63
|
+
tags: Array.isArray(data.tags)
|
|
64
|
+
? data.tags.filter((tag) => typeof tag === "string")
|
|
65
|
+
: undefined,
|
|
66
|
+
content: stripMarkdown(humanRawContent),
|
|
67
|
+
rawContent: humanRawContent,
|
|
68
|
+
...(pageAgentRawContent !== humanRawContent
|
|
69
|
+
? {
|
|
70
|
+
agentFallbackContent: stripMarkdown(pageAgentRawContent),
|
|
71
|
+
agentFallbackRawContent: pageAgentRawContent,
|
|
72
|
+
}
|
|
73
|
+
: {}),
|
|
74
|
+
...agentDoc,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
scan(absDir, []);
|
|
79
|
+
return pages;
|
|
80
|
+
}
|
|
81
|
+
function readAgentDoc(dir) {
|
|
82
|
+
const agentPath = path.join(dir, "agent.md");
|
|
83
|
+
if (!fs.existsSync(agentPath))
|
|
84
|
+
return undefined;
|
|
85
|
+
const raw = fs.readFileSync(agentPath, "utf-8");
|
|
86
|
+
const { content } = matter(raw);
|
|
87
|
+
const agentRawContent = resolveDocsAudienceMdxContent(content, "agent");
|
|
88
|
+
return {
|
|
89
|
+
agentContent: stripMarkdown(agentRawContent),
|
|
90
|
+
agentRawContent,
|
|
91
|
+
agentLastModified: fs.statSync(agentPath).mtime.toISOString(),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export function loadDocsNavTree(contentDir, entry = "docs", ordering) {
|
|
95
|
+
const absDir = path.resolve(contentDir);
|
|
96
|
+
const children = [];
|
|
97
|
+
const indexPath = findIndex(absDir);
|
|
98
|
+
if (indexPath) {
|
|
99
|
+
const { data } = matter(fs.readFileSync(indexPath, "utf-8"));
|
|
100
|
+
children.push({
|
|
101
|
+
type: "page",
|
|
102
|
+
name: data.title ?? "Documentation",
|
|
103
|
+
url: `/${entry}`,
|
|
104
|
+
icon: data.icon,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
const rootSlugOrder = Array.isArray(ordering) ? ordering : undefined;
|
|
108
|
+
children.push(...scanDir(absDir, [], entry, ordering, rootSlugOrder));
|
|
109
|
+
return { name: "Docs", children };
|
|
110
|
+
}
|
|
111
|
+
function buildNavNode(dir, name, slugParts, entry, ordering, childSlugOrder) {
|
|
112
|
+
const full = path.join(dir, name);
|
|
113
|
+
if (!fs.statSync(full).isDirectory())
|
|
114
|
+
return null;
|
|
115
|
+
const indexPath = findIndex(full);
|
|
116
|
+
if (!indexPath)
|
|
117
|
+
return null;
|
|
118
|
+
const { data } = matter(fs.readFileSync(indexPath, "utf-8"));
|
|
119
|
+
const slug = [...slugParts, name];
|
|
120
|
+
const url = `/${entry}/${slug.join("/")}`;
|
|
121
|
+
const displayName = data.title ??
|
|
122
|
+
name.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase());
|
|
123
|
+
const icon = data.icon;
|
|
124
|
+
const childDirs = fs.readdirSync(full).filter((childName) => {
|
|
125
|
+
const childPath = path.join(full, childName);
|
|
126
|
+
return fs.statSync(childPath).isDirectory() && findIndex(childPath) !== null;
|
|
127
|
+
});
|
|
128
|
+
if (childDirs.length > 0) {
|
|
129
|
+
return {
|
|
130
|
+
type: "folder",
|
|
131
|
+
name: displayName,
|
|
132
|
+
icon,
|
|
133
|
+
index: { type: "page", name: displayName, url, icon },
|
|
134
|
+
folderIndexBehavior: resolvePageSidebarFolderIndexBehavior(data.sidebar),
|
|
135
|
+
children: scanDir(full, slug, entry, ordering, childSlugOrder),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return { type: "page", name: displayName, url, icon };
|
|
139
|
+
}
|
|
140
|
+
function scanDir(dir, slugParts, entry, ordering, slugOrder) {
|
|
141
|
+
if (!fs.existsSync(dir))
|
|
142
|
+
return [];
|
|
143
|
+
const entries = fs.readdirSync(dir).sort();
|
|
144
|
+
if (slugOrder) {
|
|
145
|
+
const nodes = [];
|
|
146
|
+
const slugMap = new Set(slugOrder.map((item) => item.slug));
|
|
147
|
+
for (const item of slugOrder) {
|
|
148
|
+
if (!entries.includes(item.slug))
|
|
149
|
+
continue;
|
|
150
|
+
const node = buildNavNode(dir, item.slug, slugParts, entry, ordering, item.children);
|
|
151
|
+
if (node)
|
|
152
|
+
nodes.push(node);
|
|
153
|
+
}
|
|
154
|
+
for (const name of entries) {
|
|
155
|
+
if (slugMap.has(name))
|
|
156
|
+
continue;
|
|
157
|
+
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
158
|
+
if (node)
|
|
159
|
+
nodes.push(node);
|
|
160
|
+
}
|
|
161
|
+
return nodes;
|
|
162
|
+
}
|
|
163
|
+
if (ordering === "numeric") {
|
|
164
|
+
const nodes = [];
|
|
165
|
+
for (const name of entries) {
|
|
166
|
+
const full = path.join(dir, name);
|
|
167
|
+
if (!fs.statSync(full).isDirectory())
|
|
168
|
+
continue;
|
|
169
|
+
const indexPath = findIndex(full);
|
|
170
|
+
if (!indexPath)
|
|
171
|
+
continue;
|
|
172
|
+
const { data } = matter(fs.readFileSync(indexPath, "utf-8"));
|
|
173
|
+
const order = typeof data.order === "number" ? data.order : Infinity;
|
|
174
|
+
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
175
|
+
if (node)
|
|
176
|
+
nodes.push({ order, node });
|
|
177
|
+
}
|
|
178
|
+
nodes.sort((a, b) => {
|
|
179
|
+
if (a.order === b.order)
|
|
180
|
+
return 0;
|
|
181
|
+
return a.order - b.order;
|
|
182
|
+
});
|
|
183
|
+
return nodes.map((item) => item.node);
|
|
184
|
+
}
|
|
185
|
+
const nodes = [];
|
|
186
|
+
for (const name of entries) {
|
|
187
|
+
const node = buildNavNode(dir, name, slugParts, entry, ordering);
|
|
188
|
+
if (node)
|
|
189
|
+
nodes.push(node);
|
|
190
|
+
}
|
|
191
|
+
return nodes;
|
|
192
|
+
}
|
|
193
|
+
function findIndex(dir) {
|
|
194
|
+
for (const name of ["page.md", "page.mdx", "index.md", "index.mdx"]) {
|
|
195
|
+
const filePath = path.join(dir, name);
|
|
196
|
+
if (fs.existsSync(filePath))
|
|
197
|
+
return filePath;
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
export function flattenNavTree(tree) {
|
|
202
|
+
const pages = [];
|
|
203
|
+
function walk(nodes) {
|
|
204
|
+
for (const node of nodes) {
|
|
205
|
+
if (node.type === "page") {
|
|
206
|
+
pages.push(node);
|
|
207
|
+
}
|
|
208
|
+
else if (node.type === "folder") {
|
|
209
|
+
if (node.index)
|
|
210
|
+
pages.push(node.index);
|
|
211
|
+
walk(node.children);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
walk(tree.children);
|
|
216
|
+
return pages;
|
|
217
|
+
}
|
|
218
|
+
function stripMarkdown(content) {
|
|
219
|
+
return content
|
|
220
|
+
.replace(/^(import|export)\s.*$/gm, "")
|
|
221
|
+
.replace(/<[^>]+\/>/g, "")
|
|
222
|
+
.replace(/<\/?[A-Z][^>]*>/g, "")
|
|
223
|
+
.replace(/<\/?[a-z][^>]*>/g, "")
|
|
224
|
+
.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1")
|
|
225
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1")
|
|
226
|
+
.replace(/^#{1,6}\s+/gm, "")
|
|
227
|
+
.replace(/(\*{1,3}|_{1,3})(.*?)\1/g, "$2")
|
|
228
|
+
.replace(/```[\s\S]*?```/g, "")
|
|
229
|
+
.replace(/`([^`]+)`/g, "$1")
|
|
230
|
+
.replace(/^>\s+/gm, "")
|
|
231
|
+
.replace(/^[-*_]{3,}\s*$/gm, "")
|
|
232
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
233
|
+
.trim();
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { withDocs, type FarmConfigLike, type FarmConfigWithDocs, type FarmDocsAdapterOptions, type FarmDocsCoreConfig, } from "./config.js";
|
|
2
|
+
export { loadDocsContent, loadDocsNavTree, flattenNavTree, type ContentPage, type FolderNode, type NavNode, type NavTree, type PageNode, } from "./content.js";
|
|
3
|
+
export { createDocsServer, type DocsServer, type DocsServerLoadResult } from "./server.js";
|
|
4
|
+
export { FarmDocsPage } from "./react.js";
|
|
5
|
+
export { docsMdx } from "./vite.js";
|
|
6
|
+
export { createFarmjsApiReference } from "./api-reference.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { withDocs, } from "./config.js";
|
|
2
|
+
export { loadDocsContent, loadDocsNavTree, flattenNavTree, } from "./content.js";
|
|
3
|
+
export { createDocsServer } from "./server.js";
|
|
4
|
+
export { FarmDocsPage } from "./react.js";
|
|
5
|
+
export { docsMdx } from "./vite.js";
|
|
6
|
+
export { createFarmjsApiReference } from "./api-reference.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAKT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GAMf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DocsConfig } from "@farming-labs/docs";
|
|
2
|
+
import type { DocsServerLoadResult } from "./server.js";
|
|
3
|
+
export declare function FarmDocsPage({ config, data }: {
|
|
4
|
+
config: DocsConfig;
|
|
5
|
+
data: DocsServerLoadResult;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAmBxD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,2CA4DhG"}
|
package/dist/react.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { DocsClientHooks } from "@farming-labs/theme/client-hooks";
|
|
3
|
+
import { TanstackDocsLayout } from "@farming-labs/theme/tanstack";
|
|
4
|
+
import { getMDXComponents } from "@farming-labs/theme/mdx";
|
|
5
|
+
const rawDocModules = import.meta.glob("/**/*.{md,mdx}", {
|
|
6
|
+
eager: true,
|
|
7
|
+
});
|
|
8
|
+
function normalizeDocsKey(key) {
|
|
9
|
+
const posixKey = key.replace(/\\/g, "/");
|
|
10
|
+
return posixKey.startsWith("/") ? posixKey : `/${posixKey.replace(/^\.?\//, "")}`;
|
|
11
|
+
}
|
|
12
|
+
const docModules = Object.fromEntries(Object.entries(rawDocModules).map(([key, value]) => [normalizeDocsKey(key), value]));
|
|
13
|
+
export function FarmDocsPage({ config, data }) {
|
|
14
|
+
const promptIconRegistry = config.icons;
|
|
15
|
+
const promptOpenDocsProviders = config.pageActions?.openDocs && typeof config.pageActions.openDocs === "object"
|
|
16
|
+
? config.pageActions.openDocs.providers
|
|
17
|
+
: undefined;
|
|
18
|
+
const module = docModules[data.sourcePath];
|
|
19
|
+
const Content = module?.default ?? null;
|
|
20
|
+
if (!Content) {
|
|
21
|
+
return (_jsx(TanstackDocsLayout, { config: config, 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, "`."] })] }) }));
|
|
22
|
+
}
|
|
23
|
+
return (_jsxs(_Fragment, { children: [_jsx(DocsClientHooks, { onCopyClick: config.onCopyClick, analytics: config.analytics, onFeedback: typeof config.feedback === "object"
|
|
24
|
+
? config.feedback.onFeedback
|
|
25
|
+
: undefined, onAIFeedback: config.ai?.feedback && typeof config.ai.feedback === "object"
|
|
26
|
+
? config.ai.feedback.onFeedback
|
|
27
|
+
: undefined, onAIActions: config.ai?.onActions }), _jsx(TanstackDocsLayout, { config: config, tree: data.tree, locale: data.locale, description: data.description, readingTime: data.readingTime, lastModified: data.lastModified, previousPage: data.previousPage, nextPage: data.nextPage, structuredData: data.structuredData, editOnGithubUrl: data.editOnGithub, children: _jsx(Content, { components: getMDXComponents(config.components, {
|
|
28
|
+
onCopyClick: config.onCopyClick,
|
|
29
|
+
theme: config.theme,
|
|
30
|
+
icons: promptIconRegistry,
|
|
31
|
+
openDocsProviders: promptOpenDocsProviders,
|
|
32
|
+
}) }) })] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { DocsMcpHttpHandlers } from "@farming-labs/docs/server";
|
|
2
|
+
import { loadDocsNavTree } from "./content.js";
|
|
3
|
+
import type { PageNode } from "./content.js";
|
|
4
|
+
export { createFarmjsApiReference } from "./api-reference.js";
|
|
5
|
+
export interface DocsServerLoadResult {
|
|
6
|
+
tree: ReturnType<typeof loadDocsNavTree>;
|
|
7
|
+
flatPages: PageNode[];
|
|
8
|
+
url: string;
|
|
9
|
+
title: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
rawContent: string;
|
|
12
|
+
readingTime?: number | null;
|
|
13
|
+
readingTimeFormat?: "long" | "short";
|
|
14
|
+
sourcePath: string;
|
|
15
|
+
entry?: string;
|
|
16
|
+
locale?: string;
|
|
17
|
+
slug?: string;
|
|
18
|
+
previousPage: PageNode | null;
|
|
19
|
+
nextPage: PageNode | null;
|
|
20
|
+
editOnGithub?: string;
|
|
21
|
+
lastModified: string;
|
|
22
|
+
structuredData: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DocsServer {
|
|
25
|
+
load: (input: {
|
|
26
|
+
pathname: string;
|
|
27
|
+
locale?: string;
|
|
28
|
+
}) => Promise<DocsServerLoadResult>;
|
|
29
|
+
GET: (context: {
|
|
30
|
+
request: Request;
|
|
31
|
+
}) => Promise<Response>;
|
|
32
|
+
HEAD: (context: {
|
|
33
|
+
request: Request;
|
|
34
|
+
}) => Promise<Response>;
|
|
35
|
+
POST: (context: {
|
|
36
|
+
request: Request;
|
|
37
|
+
}) => Promise<Response>;
|
|
38
|
+
MCP: DocsMcpHttpHandlers;
|
|
39
|
+
/** Handle a Farm Web Request, or return null when it is not a docs route. */
|
|
40
|
+
handle: (request: Request) => Promise<Response | null>;
|
|
41
|
+
}
|
|
42
|
+
export declare function createDocsServer(config: Record<string, any>): DocsServer;
|
|
43
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoFA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,eAAe,EAIhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AA4E9D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACzC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtF,GAAG,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,GAAG,EAAE,mBAAmB,CAAC;IACzB,6EAA6E;IAC7E,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACxD;AAoZD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,CAkgDxE"}
|