livemark 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/package.json +1 -1
- package/source/actions/config/define.unit.ts +3 -2
- package/source/actions/config/load.unit.ts +4 -2
- package/source/components/SearchDialog.tsx +2 -3
- package/source/components/SidebarArticles.tsx +3 -3
- package/source/content-collections.ts +5 -0
- package/source/helpers/article-icon.ts +36 -49
- package/source/models/config.ts +1 -1
- package/source/plugins/remark-passthrough-directive.ts +46 -0
- package/source/vite.config.ts +7 -4
- package/target/actions/config/define.unit.js +4 -3
- package/target/actions/config/load.unit.js +5 -3
- package/target/components/SearchDialog.js +3 -4
- package/target/components/SidebarArticles.js +4 -4
- package/target/content-collections.js +6 -1
- package/target/helpers/article-icon.d.ts +2 -1
- package/target/helpers/article-icon.js +37 -26
- package/target/models/config.d.ts +2 -2
- package/target/models/config.js +2 -2
- package/target/plugins/remark-passthrough-directive.d.ts +11 -0
- package/target/plugins/remark-passthrough-directive.js +34 -0
- package/target/vite.config.js +8 -5
package/README.md
CHANGED
|
@@ -4,14 +4,14 @@ Livemark turns plain Markdown into a fast, modern documentation site. Point it a
|
|
|
4
4
|
|
|
5
5
|
## What you get
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
7
|
+
- **Just write Markdown.** GitHub-flavored Markdown works out of the box, with frontmatter, custom heading IDs, footnotes, definition lists, and gemoji.
|
|
8
|
+
- **Beautiful code blocks.** Syntax highlighting via [Shiki](https://shiki.style/) with 100+ languages, dual light/dark themes, line highlights, diffs, and TwoSlash type hints.
|
|
9
|
+
- **Diagrams and math.** [Mermaid](https://mermaid.js.org/) flowcharts and KaTeX equations, theme-aware, zero config.
|
|
10
|
+
- **Rich elements.** Callouts, tabs, file trees, cards, columns, badges, package tabs (npm/pnpm/yarn/bun), embeds (YouTube, SoundCloud), and more — all as Markdown directives or MDX components.
|
|
11
|
+
- **Sections.** First-class support for docs, blog (with tags + RSS), and changelog (local `CHANGELOG.md` or GitHub releases).
|
|
12
|
+
- **Search.** Full-text search powered by [Orama](https://oramasearch.com/), keyboard shortcuts, smart table-of-contents.
|
|
13
|
+
- **Themable.** Tailwind v4, shadcn-style primitives, dark mode, and per-file overrides via a `.livemark/` folder.
|
|
14
|
+
- **Built on TanStack Start.** SSR, prerendering, sitemap, and routing for free.
|
|
15
15
|
|
|
16
16
|
## Quick start
|
|
17
17
|
|
|
@@ -90,11 +90,11 @@ Anything under `.livemark/components/`, `.livemark/elements/`, or `.livemark/sty
|
|
|
90
90
|
Livemark is meant to look great with zero configuration and stay out of your way when you need more. Common customizations:
|
|
91
91
|
|
|
92
92
|
- **Site metadata** — title, description, favicon, logo. See the [Site Metadata guide](https://livemark.dev/customization/site-metadata/).
|
|
93
|
-
- **Sections** — split content into Docs / Blog / Changelog with their own URL prefixes. See [Sections](https://livemark.dev/customization/sections/).
|
|
94
|
-
- **
|
|
93
|
+
- **Sections** — split content into Docs / Blog / Changelog with their own URL prefixes. See [Article Sections](https://livemark.dev/customization/article-sections/).
|
|
94
|
+
- **External links** — header and sidebar links to anywhere. See [External Links](https://livemark.dev/customization/external-links/).
|
|
95
95
|
- **Syntax themes** — Shiki theme per light/dark. See [Syntax Themes](https://livemark.dev/customization/syntax-themes/).
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
96
|
+
- **Article patches** — override a markdown file's frontmatter from `livemark.config.ts` without touching the file. See [Article Patches](https://livemark.dev/customization/article-patches/).
|
|
97
|
+
- **Overriding/Escaping** — replace any built-in component or stylesheet from your project. See [Overriding/Escaping](https://livemark.dev/customization/overriding-escaping/).
|
|
98
98
|
- **Custom routes** — drop a `.tsx` file into `.livemark/routes/` to add a fully custom page. See [Custom Routes](https://livemark.dev/customization/custom-routes/).
|
|
99
99
|
|
|
100
100
|
## Documentation
|
package/package.json
CHANGED
|
@@ -27,7 +27,8 @@ describe("defineConfig", () => {
|
|
|
27
27
|
expect(config.exclude).toBeUndefined()
|
|
28
28
|
})
|
|
29
29
|
|
|
30
|
-
it("should
|
|
31
|
-
|
|
30
|
+
it("should default include to **/*.md", () => {
|
|
31
|
+
const config = defineConfig({})
|
|
32
|
+
expect(config.include).toBe("**/*.md")
|
|
32
33
|
})
|
|
33
34
|
})
|
|
@@ -21,10 +21,12 @@ describe("loadConfig", () => {
|
|
|
21
21
|
expect(config.root).toBe(tmpDir)
|
|
22
22
|
}))
|
|
23
23
|
|
|
24
|
-
it("should
|
|
24
|
+
it("should apply defaults when fields are omitted", () =>
|
|
25
25
|
temporaryDirectoryTask(async tmpDir => {
|
|
26
26
|
const configPath = join(tmpDir, "livemark.config.ts")
|
|
27
27
|
fs.writeFileSync(configPath, "export default {}\n")
|
|
28
|
-
await
|
|
28
|
+
const config = await loadConfig(configPath)
|
|
29
|
+
expect(config.include).toBe("**/*.md")
|
|
30
|
+
expect(config.title).toBe("Livemark")
|
|
29
31
|
}))
|
|
30
32
|
})
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useState, useRef, useCallback, useMemo } from "react"
|
|
2
2
|
import { useNavigate } from "@tanstack/react-router"
|
|
3
|
-
import { FileText } from "lucide-react"
|
|
4
3
|
import { create, insertMultiple, search } from "@orama/orama"
|
|
5
4
|
import { sortedArticles } from "../content/article.ts"
|
|
6
|
-
import {
|
|
5
|
+
import { resolveArticleIcon } from "../helpers/article-icon.ts"
|
|
7
6
|
import {
|
|
8
7
|
CommandDialog,
|
|
9
8
|
CommandEmpty,
|
|
@@ -150,7 +149,7 @@ export function SearchDialog(props: {
|
|
|
150
149
|
{[...grouped.entries()].map(([group, items]) => (
|
|
151
150
|
<CommandGroup key={group} heading={group}>
|
|
152
151
|
{items.map(result => {
|
|
153
|
-
const Icon =
|
|
152
|
+
const Icon = resolveArticleIcon(result.icon)
|
|
154
153
|
return (
|
|
155
154
|
<CommandItem
|
|
156
155
|
key={result.path}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Link, useLocation } from "@tanstack/react-router"
|
|
2
|
-
import { ChevronRight
|
|
2
|
+
import { ChevronRight } from "lucide-react"
|
|
3
3
|
import {
|
|
4
4
|
articleGroups,
|
|
5
5
|
currentSection,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
SidebarMenuSubButton,
|
|
22
22
|
SidebarMenuSubItem,
|
|
23
23
|
} from "../elements/sidebar.tsx"
|
|
24
|
-
import {
|
|
24
|
+
import { resolveArticleIcon } from "../helpers/article-icon.ts"
|
|
25
25
|
import type { ArticleNode } from "../models/article.ts"
|
|
26
26
|
|
|
27
27
|
/** Article-tree body slot for the Sidebar shell */
|
|
@@ -68,7 +68,7 @@ function isActive(articlePathname: string, currentPath: string) {
|
|
|
68
68
|
|
|
69
69
|
function NavNode(props: { node: ArticleNode; currentPath: string }) {
|
|
70
70
|
const { node, currentPath } = props
|
|
71
|
-
const Icon =
|
|
71
|
+
const Icon = resolveArticleIcon(node.icon)
|
|
72
72
|
const active = isActive(node.path, currentPath)
|
|
73
73
|
|
|
74
74
|
if (node.children.length === 0) {
|
|
@@ -37,6 +37,7 @@ import { remarkMermaid } from "./plugins/remark-mermaid.ts"
|
|
|
37
37
|
import { remarkToc } from "./plugins/remark-toc.ts"
|
|
38
38
|
import { remarkNpm } from "./plugins/remark-npm.ts"
|
|
39
39
|
import { remarkSteps } from "./plugins/remark-steps.ts"
|
|
40
|
+
import { remarkPassthroughDirective } from "./plugins/remark-passthrough-directive.ts"
|
|
40
41
|
import {
|
|
41
42
|
transformerLineHighlight,
|
|
42
43
|
transformerNotations,
|
|
@@ -157,6 +158,10 @@ const articles = defineCollection({
|
|
|
157
158
|
remarkCodeTabs,
|
|
158
159
|
remarkSteps,
|
|
159
160
|
remarkCustomHeadingId,
|
|
161
|
+
// Run last: anything still typed as a directive after every handler
|
|
162
|
+
// above is unintended (e.g. `3.2:1`, `port:8080`) — passthrough as
|
|
163
|
+
// plain text so it doesn't render as an empty span/div.
|
|
164
|
+
remarkPassthroughDirective,
|
|
160
165
|
],
|
|
161
166
|
rehypePlugins: [
|
|
162
167
|
[
|
|
@@ -1,55 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Binary,
|
|
3
|
-
Blocks,
|
|
4
|
-
BrainCircuit,
|
|
5
|
-
Bug,
|
|
6
|
-
Cloud,
|
|
7
|
-
Code,
|
|
8
|
-
Cpu,
|
|
9
|
-
Database,
|
|
10
|
-
FileCode,
|
|
11
|
-
GitBranch,
|
|
12
|
-
Globe,
|
|
13
|
-
HardDrive,
|
|
14
|
-
Layers,
|
|
15
|
-
Network,
|
|
16
|
-
Rocket,
|
|
17
|
-
Server,
|
|
18
|
-
Shield,
|
|
19
|
-
SlidersHorizontal,
|
|
20
|
-
Terminal,
|
|
21
|
-
Webhook,
|
|
22
|
-
Zap,
|
|
23
|
-
} from "lucide-react"
|
|
1
|
+
import { FileText, icons } from "lucide-react"
|
|
24
2
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
binary: Binary,
|
|
30
|
-
blocks: Blocks,
|
|
31
|
-
"brain-circuit": BrainCircuit,
|
|
32
|
-
bug: Bug,
|
|
33
|
-
cloud: Cloud,
|
|
34
|
-
code: Code,
|
|
35
|
-
cpu: Cpu,
|
|
36
|
-
database: Database,
|
|
37
|
-
"file-code": FileCode,
|
|
38
|
-
"git-branch": GitBranch,
|
|
39
|
-
globe: Globe,
|
|
40
|
-
"hard-drive": HardDrive,
|
|
41
|
-
layers: Layers,
|
|
42
|
-
network: Network,
|
|
43
|
-
rocket: Rocket,
|
|
44
|
-
server: Server,
|
|
45
|
-
shield: Shield,
|
|
46
|
-
"sliders-horizontal": SlidersHorizontal,
|
|
47
|
-
terminal: Terminal,
|
|
48
|
-
webhook: Webhook,
|
|
49
|
-
zap: Zap,
|
|
3
|
+
/** Resolve a Lucide icon by kebab-case name, falling back to FileText. */
|
|
4
|
+
export function resolveArticleIcon(name: string) {
|
|
5
|
+
const key = toPascalCase(name)
|
|
6
|
+
return key in icons ? icons[key as keyof typeof icons] : FileText
|
|
50
7
|
}
|
|
51
8
|
|
|
52
|
-
|
|
9
|
+
/** Curated set of icons used as default fallbacks for articles without one. */
|
|
10
|
+
const defaultIconNames = [
|
|
11
|
+
"binary",
|
|
12
|
+
"blocks",
|
|
13
|
+
"brain-circuit",
|
|
14
|
+
"bug",
|
|
15
|
+
"cloud",
|
|
16
|
+
"code",
|
|
17
|
+
"cpu",
|
|
18
|
+
"database",
|
|
19
|
+
"file-code",
|
|
20
|
+
"git-branch",
|
|
21
|
+
"globe",
|
|
22
|
+
"hard-drive",
|
|
23
|
+
"layers",
|
|
24
|
+
"network",
|
|
25
|
+
"rocket",
|
|
26
|
+
"server",
|
|
27
|
+
"shield",
|
|
28
|
+
"sliders-horizontal",
|
|
29
|
+
"terminal",
|
|
30
|
+
"webhook",
|
|
31
|
+
"zap",
|
|
32
|
+
]
|
|
53
33
|
|
|
54
34
|
/** Deterministic icon name based on article path */
|
|
55
35
|
export function pickDefaultIcon(path: string) {
|
|
@@ -59,3 +39,10 @@ export function pickDefaultIcon(path: string) {
|
|
|
59
39
|
}
|
|
60
40
|
return defaultIconNames[Math.abs(hash) % defaultIconNames.length]!
|
|
61
41
|
}
|
|
42
|
+
|
|
43
|
+
function toPascalCase(name: string) {
|
|
44
|
+
return name
|
|
45
|
+
.split("-")
|
|
46
|
+
.map(s => s.charAt(0).toUpperCase() + s.slice(1))
|
|
47
|
+
.join("")
|
|
48
|
+
}
|
package/source/models/config.ts
CHANGED
|
@@ -14,7 +14,7 @@ export const UserConfig = z.object({
|
|
|
14
14
|
logo: z.string().optional(),
|
|
15
15
|
title: z.string().default("Livemark"),
|
|
16
16
|
description: z.string().default("Markdown site generator"),
|
|
17
|
-
include: z.union([z.string(), z.array(z.string())]),
|
|
17
|
+
include: z.union([z.string(), z.array(z.string())]).default("**/*.md"),
|
|
18
18
|
exclude: z.union([z.string(), z.array(z.string())]).optional(),
|
|
19
19
|
codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
|
|
20
20
|
codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ContainerDirective,
|
|
3
|
+
LeafDirective,
|
|
4
|
+
TextDirective,
|
|
5
|
+
} from "mdast-util-directive"
|
|
6
|
+
import type { Root, Text } from "mdast"
|
|
7
|
+
import type { Plugin } from "unified"
|
|
8
|
+
import { SKIP, visit } from "unist-util-visit"
|
|
9
|
+
|
|
10
|
+
type Directive = TextDirective | LeafDirective | ContainerDirective
|
|
11
|
+
|
|
12
|
+
/** Convert any remaining `:name`, `::name`, `:::name` directive nodes back to
|
|
13
|
+
* plain text after the directive-handling plugins have run.
|
|
14
|
+
*
|
|
15
|
+
* `remark-directive` parses anything matching `:[a-zA-Z0-9-]+` as a directive,
|
|
16
|
+
* including patterns like `3.2:1` or `port:8080` that weren't meant as
|
|
17
|
+
* directives at all. Without this pass, the leftover nodes render as empty
|
|
18
|
+
* `<span>`/`<div>` elements (because remark-rehype's default for unknown
|
|
19
|
+
* directive nodes drops the surrounding text). */
|
|
20
|
+
export const remarkPassthroughDirective: Plugin<[], Root> = () => {
|
|
21
|
+
return tree => {
|
|
22
|
+
visit(tree, (node, index, parent) => {
|
|
23
|
+
if (
|
|
24
|
+
index === undefined ||
|
|
25
|
+
!parent ||
|
|
26
|
+
(node.type !== "textDirective" &&
|
|
27
|
+
node.type !== "leafDirective" &&
|
|
28
|
+
node.type !== "containerDirective")
|
|
29
|
+
)
|
|
30
|
+
return
|
|
31
|
+
const directive = node as Directive
|
|
32
|
+
const prefix =
|
|
33
|
+
directive.type === "containerDirective"
|
|
34
|
+
? ":::"
|
|
35
|
+
: directive.type === "leafDirective"
|
|
36
|
+
? "::"
|
|
37
|
+
: ":"
|
|
38
|
+
const text: Text = {
|
|
39
|
+
type: "text",
|
|
40
|
+
value: `${prefix}${directive.name}`,
|
|
41
|
+
}
|
|
42
|
+
parent.children.splice(index, 1, text)
|
|
43
|
+
return [SKIP, index + 1]
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
}
|
package/source/vite.config.ts
CHANGED
|
@@ -33,11 +33,14 @@ if (!existsSync(gitignorePath)) {
|
|
|
33
33
|
|
|
34
34
|
const routeChildren: VirtualRouteNode[] = [route("/$", "$.tsx")]
|
|
35
35
|
if (existsSync(join(overridesRoot, "routes"))) {
|
|
36
|
-
// physical() resolves
|
|
37
|
-
//
|
|
38
|
-
//
|
|
36
|
+
// physical(dir) resolves `dir` relative to the routes directory
|
|
37
|
+
// (`srcDirectory/routes`). A hardcoded "../../.livemark/routes" only
|
|
38
|
+
// works when source/ sits one level under config.root — it lands at
|
|
39
|
+
// node_modules/.livemark/routes once livemark is installed. Compute
|
|
40
|
+
// the path dynamically from the consumer's actual layout.
|
|
41
|
+
const routesDir = join(sourceDir, "routes")
|
|
39
42
|
routeChildren.push(
|
|
40
|
-
physical(relative(
|
|
43
|
+
physical(relative(routesDir, join(overridesRoot, "routes"))),
|
|
41
44
|
)
|
|
42
45
|
}
|
|
43
46
|
|
|
@@ -22,8 +22,9 @@ describe("defineConfig", () => {
|
|
|
22
22
|
const config = defineConfig({ include: "**/*.mdx" });
|
|
23
23
|
expect(config.exclude).toBeUndefined();
|
|
24
24
|
});
|
|
25
|
-
it("should
|
|
26
|
-
|
|
25
|
+
it("should default include to **/*.md", () => {
|
|
26
|
+
const config = defineConfig({});
|
|
27
|
+
expect(config.include).toBe("**/*.md");
|
|
27
28
|
});
|
|
28
29
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLnVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvYWN0aW9ucy9jb25maWcvZGVmaW5lLnVuaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUxQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUM1QixFQUFFLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFDN0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNsRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDO1NBQ2xELENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO0lBQzFFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7WUFDMUIsT0FBTyxFQUFFLFVBQVU7WUFDbkIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDMUMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDeEMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZS1wbHVzL3Rlc3RcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vZGVmaW5lLnRzXCJcblxuZGVzY3JpYmUoXCJkZWZpbmVDb25maWdcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBhY2NlcHQgaW5jbHVkZSBhcyBhIHN0cmluZ1wiLCAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gZGVmaW5lQ29uZmlnKHsgaW5jbHVkZTogXCJhcnRpY2xlcy8qKi8qLm1keFwiIH0pXG4gICAgZXhwZWN0KGNvbmZpZy5pbmNsdWRlKS50b0JlKFwiYXJ0aWNsZXMvKiovKi5tZHhcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBhY2NlcHQgaW5jbHVkZSBhcyBhbiBhcnJheVwiLCAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gZGVmaW5lQ29uZmlnKHtcbiAgICAgIGluY2x1ZGU6IFtcImFydGljbGVzLyoqLyoubWR4XCIsIFwiZ3VpZGVzLyoqLyoubWR4XCJdLFxuICAgIH0pXG4gICAgZXhwZWN0KGNvbmZpZy5pbmNsdWRlKS50b0VxdWFsKFtcImFydGljbGVzLyoqLyoubWR4XCIsIFwiZ3VpZGVzLyoqLyoubWR4XCJdKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGFjY2VwdCBvcHRpb25hbCBleGNsdWRlXCIsICgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSBkZWZpbmVDb25maWcoe1xuICAgICAgaW5jbHVkZTogXCIqKi8qLm1keFwiLFxuICAgICAgZXhjbHVkZTogXCJkcmFmdHMvKipcIixcbiAgICB9KVxuICAgIGV4cGVjdChjb25maWcuZXhjbHVkZSkudG9CZShcImRyYWZ0cy8qKlwiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGFsbG93IG9taXR0aW5nIGV4Y2x1ZGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGRlZmluZUNvbmZpZyh7IGluY2x1ZGU6IFwiKiovKi5tZHhcIiB9KVxuICAgIGV4cGVjdChjb25maWcuZXhjbHVkZSkudG9CZVVuZGVmaW5lZCgpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgZGVmYXVsdCBpbmNsdWRlIHRvICoqLyoubWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGRlZmluZUNvbmZpZyh7fSlcbiAgICBleHBlY3QoY29uZmlnLmluY2x1ZGUpLnRvQmUoXCIqKi8qLm1kXCIpXG4gIH0pXG59KVxuIl19
|
|
@@ -14,10 +14,12 @@ describe("loadConfig", () => {
|
|
|
14
14
|
expect(config.include).toBe("articles/**/*.mdx");
|
|
15
15
|
expect(config.root).toBe(tmpDir);
|
|
16
16
|
}));
|
|
17
|
-
it("should
|
|
17
|
+
it("should apply defaults when fields are omitted", () => temporaryDirectoryTask(async (tmpDir) => {
|
|
18
18
|
const configPath = join(tmpDir, "livemark.config.ts");
|
|
19
19
|
fs.writeFileSync(configPath, "export default {}\n");
|
|
20
|
-
await
|
|
20
|
+
const config = await loadConfig(configPath);
|
|
21
|
+
expect(config.include).toBe("**/*.md");
|
|
22
|
+
expect(config.title).toBe("Livemark");
|
|
21
23
|
}));
|
|
22
24
|
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FjdGlvbnMvY29uZmlnL2xvYWQudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMseUNBQXlDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdkQsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDdEUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFLENBQy9DLHNCQUFzQixDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsRUFBRTtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUE7UUFDckQsRUFBRSxDQUFDLGFBQWEsQ0FDZCxVQUFVLEVBQ1YsbURBQW1ELENBQ3BELENBQUE7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFTCxFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFLENBQ3ZELHNCQUFzQixDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsRUFBRTtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUE7UUFDckQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsQ0FBQTtRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ1AsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgdGVtcG9yYXJ5RGlyZWN0b3J5VGFzayB9IGZyb20gXCJ0ZW1weVwiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4vbG9hZC50c1wiXG5cbmRlc2NyaWJlKFwibG9hZENvbmZpZ1wiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIHRocm93IHdoZW4gbm8gY29uZmlnIGZpbGUgZXhpc3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBleHBlY3QobG9hZENvbmZpZyhcIi9ub25leGlzdGVudC9jb25maWcudHNcIikpLnJlamVjdHMudG9UaHJvdygpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbG9hZCBjb25maWcgZnJvbSBleHBsaWNpdCBwYXRoXCIsICgpID0+XG4gICAgdGVtcG9yYXJ5RGlyZWN0b3J5VGFzayhhc3luYyB0bXBEaXIgPT4ge1xuICAgICAgY29uc3QgY29uZmlnUGF0aCA9IGpvaW4odG1wRGlyLCBcImxpdmVtYXJrLmNvbmZpZy50c1wiKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgY29uZmlnUGF0aCxcbiAgICAgICAgJ2V4cG9ydCBkZWZhdWx0IHsgaW5jbHVkZTogXCJhcnRpY2xlcy8qKi8qLm1keFwiIH1cXG4nLFxuICAgICAgKVxuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhjb25maWdQYXRoKVxuICAgICAgZXhwZWN0KGNvbmZpZy5pbmNsdWRlKS50b0JlKFwiYXJ0aWNsZXMvKiovKi5tZHhcIilcbiAgICAgIGV4cGVjdChjb25maWcucm9vdCkudG9CZSh0bXBEaXIpXG4gICAgfSkpXG5cbiAgaXQoXCJzaG91bGQgYXBwbHkgZGVmYXVsdHMgd2hlbiBmaWVsZHMgYXJlIG9taXR0ZWRcIiwgKCkgPT5cbiAgICB0ZW1wb3JhcnlEaXJlY3RvcnlUYXNrKGFzeW5jIHRtcERpciA9PiB7XG4gICAgICBjb25zdCBjb25maWdQYXRoID0gam9pbih0bXBEaXIsIFwibGl2ZW1hcmsuY29uZmlnLnRzXCIpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGNvbmZpZ1BhdGgsIFwiZXhwb3J0IGRlZmF1bHQge31cXG5cIilcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoY29uZmlnUGF0aClcbiAgICAgIGV4cGVjdChjb25maWcuaW5jbHVkZSkudG9CZShcIioqLyoubWRcIilcbiAgICAgIGV4cGVjdChjb25maWcudGl0bGUpLnRvQmUoXCJMaXZlbWFya1wiKVxuICAgIH0pKVxufSlcbiJdfQ==
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useRef, useCallback, useMemo } from "react";
|
|
3
3
|
import { useNavigate } from "@tanstack/react-router";
|
|
4
|
-
import { FileText } from "lucide-react";
|
|
5
4
|
import { create, insertMultiple, search } from "@orama/orama";
|
|
6
5
|
import { sortedArticles } from "../content/article.js";
|
|
7
|
-
import {
|
|
6
|
+
import { resolveArticleIcon } from "../helpers/article-icon.js";
|
|
8
7
|
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from "../elements/command.js";
|
|
9
8
|
/** Full-text search dialog powered by Orama */
|
|
10
9
|
export function SearchDialog(props) {
|
|
@@ -89,7 +88,7 @@ export function SearchDialog(props) {
|
|
|
89
88
|
_jsx(CommandEmpty, { children: query.trim()
|
|
90
89
|
? "No results found."
|
|
91
90
|
: "Type to search across all documentation." }), [...grouped.entries()].map(([group, items]) => (_jsx(CommandGroup, { heading: group, children: items.map(result => {
|
|
92
|
-
const Icon =
|
|
91
|
+
const Icon = resolveArticleIcon(result.icon);
|
|
93
92
|
return (_jsxs(CommandItem, { value: result.path, onSelect: () => handleSelect(result.path), className: "py-2.5", children: [
|
|
94
93
|
_jsx(Icon, { className: "size-5 shrink-0 mt-0.5 self-start opacity-60" }), _jsxs("div", { className: "flex flex-col gap-0.5 min-w-0", children: [
|
|
95
94
|
_jsx("span", { className: "text-base font-medium", children: result.title }), result.snippet && (_jsx("span", { className: "text-sm text-muted-foreground line-clamp-1", children: _jsx(HighlightedText, { text: result.snippet, term: query }) }))] })
|
|
@@ -136,4 +135,4 @@ function HighlightedText(props) {
|
|
|
136
135
|
const parts = props.text.split(regex);
|
|
137
136
|
return (_jsx(_Fragment, { children: parts.map((part, i) => regex.test(part) ? (_jsx("span", { className: "text-foreground font-medium", children: part }, i)) : (part)) }));
|
|
138
137
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2VhcmNoRGlhbG9nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSx3QkFBeUIsQ0FBQTtBQVVoQywrQ0FBK0M7QUFDL0MsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUc1QjtJQUNDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFpQixFQUFFLENBQUMsQ0FBQTtJQUMxRCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQTRDLElBQUksQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBRTlCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN6QyxJQUFJLEtBQUssQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBQ3ZDLE1BQU0s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LEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxPQUFPLENBQ0wsNEJBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqQixlQUFjLFNBQVMsRUFBQyw2QkFBNkIsWUFDbEQsSUFBSSxJQURJLENBQUMsQ0FFTCxDQUNSLENBQUMsQ0FBQyxDQUFDLENBQ0YsSUFBSSxDQUNMLENBQ0YsR0FDQSxDQUNKLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyBGaWxlVGV4dCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnRNdWx0aXBsZSwgc2VhcmNoIH0gZnJvbSBcIkBvcmFtYS9vcmFtYVwiXG5pbXBvcnQgeyBzb3J0ZWRBcnRpY2xlcyB9IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHsgYXJ0aWNsZUljb25zIH0gZnJvbSBcIi4uL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCB7XG4gIENvbW1hbmREaWFsb2csXG4gIENvbW1hbmRFbXB0eSxcbiAgQ29tbWFuZEdyb3VwLFxuICBDb21tYW5kSW5wdXQsXG4gIENvbW1hbmRJdGVtLFxuICBDb21tYW5kTGlzdCxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL2NvbW1hbmQudHN4XCJcblxuaW50ZXJmYWNlIFNlYXJjaFJlc3VsdCB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIGljb246IHN0cmluZ1xuICBzbmlwcGV0OiBzdHJpbmdcbiAgZ3JvdXA6IHN0cmluZ1xufVxuXG4vKiogRnVsbC10ZXh0IHNlYXJjaCBkaWFsb2cgcG93ZXJlZCBieSBPcmFtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlYXJjaERpYWxvZyhwcm9wczoge1xuICBvcGVuOiBib29sZWFuXG4gIG9uT3BlbkNoYW5nZTogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3Jlc3VsdHMsIHNldFJlc3VsdHNdID0gdXNlU3RhdGU8U2VhcmNoUmVzdWx0W10+KFtdKVxuICBjb25zdCBbcXVlcnksIHNldFF1ZXJ5XSA9IHVzZVN0YXRlKFwiXCIpXG4gIGNvbnN0IGRiUmVmID0gdXNlUmVmPEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlPj4gfCBudWxsPihudWxsKVxuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKClcblxuICBjb25zdCBlbnN1cmVJbmRleCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoZGJSZWYuY3VycmVudCkgcmV0dXJuIGRiUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkYiA9IGF3YWl0IGNyZWF0ZSh7XG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgdGl0bGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcInN0cmluZ1wiLFxuICAgICAgICBzZWFyY2hUZXh0OiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICB9KVxuICAgIGF3YWl0IGluc2VydE11bHRpcGxlKFxuICAgICAgZGIsXG4gICAgICBzb3J0ZWRBcnRpY2xlcy5tYXAoYSA9PiAoe1xuICAgICAgICB0aXRsZTogYS50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IGEuZGVzY3JpcHRpb24gPz8gXCJcIixcbiAgICAgICAgc2VhcmNoVGV4dDogYS5zZWFyY2hUZXh0LFxuICAgICAgfSkpLFxuICAgIClcbiAgICBkYlJlZi5jdXJyZW50ID0gZGJcbiAgICByZXR1cm4gZGJcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9SZXN1bHQgPSB1c2VDYWxsYmFjayhcbiAgICAoYXJ0aWNsZTogKHR5cGVvZiBzb3J0ZWRBcnRpY2xlcylbbnVtYmVyXSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0ID0+ICh7XG4gICAgICB0aXRsZTogYXJ0aWNsZS50aXRsZSxcbiAgICAgIHBhdGg6IGFydGljbGUucGF0aCxcbiAgICAgIGljb246IGFydGljbGUuaWNvbixcbiAgICAgIHNuaXBwZXQ6IHRlcm1cbiAgICAgICAgPyBleHRyYWN0U25pcHBldChhcnRpY2xlLnNlYXJjaFRleHQsIHRlcm0pXG4gICAgICAgIDogKGFydGljbGUuZGVzY3JpcHRpb24gPz8gXCJcIiksXG4gICAgICBncm91cDogZ3JvdXBGb3IoYXJ0aWNsZS5wYXRoKSxcbiAgICB9KSxcbiAgICBbXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh0ZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFF1ZXJ5KHRlcm0pXG4gICAgICBpZiAoIXRlcm0udHJpbSgpKSB7XG4gICAgICAgIHNldFJlc3VsdHMoW10pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgZGIgPSBhd2FpdCBlbnN1cmVJbmRleCgpXG4gICAgICBjb25zdCBoaXRzID0gYXdhaXQgc2VhcmNoKGRiLCB7XG4gICAgICAgIHRlcm0sXG4gICAgICAgIHByb3BlcnRpZXM6IFtcInRpdGxlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJzZWFyY2hUZXh0XCJdLFxuICAgICAgICB0b2xlcmFuY2U6IDEsXG4gICAgICAgIGJvb3N0OiB7IHRpdGxlOiAzLCBkZXNjcmlwdGlvbjogMiB9LFxuICAgICAgfSlcbiAgICAgIHNldFJlc3VsdHMoXG4gICAgICAgIGhpdHMuaGl0cy5tYXAoaGl0ID0+IHtcbiAgICAgICAgICBjb25zdCBhcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChcbiAgICAgICAgICAgIGEgPT4gYS50aXRsZSA9PT0gaGl0LmRvY3VtZW50LnRpdGxlLFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoIWFydGljbGUpXG4gICAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5zb3J0ZWRBcnRpY2xlc1swXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogaGl0LmRvY3VtZW50LnRpdGxlLFxuICAgICAgICAgICAgICAgIHBhdGg6IFwiXCIsXG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogaGl0LmRvY3VtZW50LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBoaXQuZG9jdW1lbnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoYXJ0aWNsZSwgdGVybSlcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgfSxcbiAgICBbZW5zdXJlSW5kZXgsIHRvUmVzdWx0XSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdCA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIHByb3BzLm9uT3BlbkNoYW5nZShmYWxzZSlcbiAgICAgIHNldFF1ZXJ5KFwiXCIpXG4gICAgICBzZXRSZXN1bHRzKFtdKVxuICAgICAgbmF2aWdhdGUoe1xuICAgICAgICB0bzogXCIvJFwiLFxuICAgICAgICBwYXJhbXM6IHsgX3NwbGF0OiBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9LFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtuYXZpZ2F0ZSwgcHJvcHMub25PcGVuQ2hhbmdlXSxcbiAgKVxuXG4gIGNvbnN0IGdyb3VwZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cHMgPSBuZXcgTWFwPHN0cmluZywgU2VhcmNoUmVzdWx0W10+KClcbiAgICBmb3IgKGNvbnN0IHIgb2YgcmVzdWx0cykge1xuICAgICAgY29uc3QgbGlzdCA9IGdyb3Vwcy5nZXQoci5ncm91cCkgPz8gW11cbiAgICAgIGxpc3QucHVzaChyKVxuICAgICAgZ3JvdXBzLnNldChyLmdyb3VwLCBsaXN0KVxuICAgIH1cbiAgICByZXR1cm4gZ3JvdXBzXG4gIH0sIFtyZXN1bHRzXSlcblxuICByZXR1cm4gKFxuICAgIDxDb21tYW5kRGlhbG9nXG4gICAgICB0aXRsZT1cIlNlYXJjaFwiXG4gICAgICBkZXNjcmlwdGlvbj1cIlNlYXJjaCBkb2N1bWVudGF0aW9uXCJcbiAgICAgIG9wZW49e3Byb3BzLm9wZW59XG4gICAgICBvbk9wZW5DaGFuZ2U9e3Byb3BzLm9uT3BlbkNoYW5nZX1cbiAgICAgIHNob3VsZEZpbHRlcj17ZmFsc2V9XG4gICAgICBsb29wXG4gICAgPlxuICAgICAgPENvbW1hbmRJbnB1dFxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBkb2NzLi4uXCJcbiAgICAgICAgdmFsdWU9e3F1ZXJ5fVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtoYW5kbGVTZWFyY2h9XG4gICAgICAgIG9uQ2xlYXI9eygpID0+IGhhbmRsZVNlYXJjaChcIlwiKX1cbiAgICAgIC8+XG4gICAgICA8Q29tbWFuZExpc3QgY2xhc3NOYW1lPVwibWF4LWgtODBcIj5cbiAgICAgICAgPENvbW1hbmRFbXB0eT5cbiAgICAgICAgICB7cXVlcnkudHJpbSgpXG4gICAgICAgICAgICA/IFwiTm8gcmVzdWx0cyBmb3VuZC5cIlxuICAgICAgICAgICAgOiBcIlR5cGUgdG8gc2VhcmNoIGFjcm9zcyBhbGwgZG9jdW1lbnRhdGlvbi5cIn1cbiAgICAgICAgPC9Db21tYW5kRW1wdHk+XG4gICAgICAgIHtbLi4uZ3JvdXBlZC5lbnRyaWVzKCldLm1hcCgoW2dyb3VwLCBpdGVtc10pID0+IChcbiAgICAgICAgICA8Q29tbWFuZEdyb3VwIGtleT17Z3JvdXB9IGhlYWRpbmc9e2dyb3VwfT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgSWNvbiA9IGFydGljbGVJY29uc1tyZXN1bHQuaWNvbl0gPz8gRmlsZVRleHRcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Q29tbWFuZEl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17cmVzdWx0LnBhdGh9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17cmVzdWx0LnBhdGh9XG4gICAgICAgICAgICAgICAgICBvblNlbGVjdD17KCkgPT4gaGFuZGxlU2VsZWN0KHJlc3VsdC5wYXRoKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB5LTIuNVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS01IHNocmluay0wIG10LTAuNSBzZWxmLXN0YXJ0IG9wYWNpdHktNjBcIiAvPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0wLjUgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWJhc2UgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cmVzdWx0LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtyZXN1bHQuc25pcHBldCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHRleHQ9e3Jlc3VsdC5zbmlwcGV0fSB0ZXJtPXtxdWVyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L0NvbW1hbmRJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L0NvbW1hbmRHcm91cD5cbiAgICAgICAgKSl9XG4gICAgICA8L0NvbW1hbmRMaXN0PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBib3JkZXItdCBtdC0yIHB4LTQgcHktMi41IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICA8a2JkIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IHB5LTAuNSB0ZXh0LXhzIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAg4oaR4oaTXG4gICAgICAgICAgPC9rYmQ+XG4gICAgICAgICAgbmF2aWdhdGVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGtiZCBjbGFzc05hbWU9XCJyb3VuZGVkIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTEuNSBweS0wLjUgdGV4dC14cyBmb250LW1vbm9cIj5cbiAgICAgICAgICAgIOKGtVxuICAgICAgICAgIDwva2JkPlxuICAgICAgICAgIHNlbGVjdFxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICA8a2JkIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IHB5LTAuNSB0ZXh0LXhzIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAgZXNjXG4gICAgICAgICAgPC9rYmQ+XG4gICAgICAgICAgY2xvc2VcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9Db21tYW5kRGlhbG9nPlxuICApXG59XG5cbmZ1bmN0aW9uIGdyb3VwRm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikuc3BsaXQoXCIvXCIpXG4gIGlmIChzZWdtZW50cy5sZW5ndGggPD0gMikgcmV0dXJuIFwiUGFnZXNcIlxuICByZXR1cm4gc2VnbWVudHNcbiAgICAuc2xpY2UoMSwgLTEpXG4gICAgLm1hcChzID0+XG4gICAgICBzXG4gICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgLm1hcCh3ID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgICAgICAuam9pbihcIiBcIiksXG4gICAgKVxuICAgIC5qb2luKFwiIOKAuiBcIilcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFNuaXBwZXQodGV4dDogc3RyaW5nLCB0ZXJtOiBzdHJpbmcpIHtcbiAgY29uc3QgbG93ZXIgPSB0ZXh0LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgaWR4ID0gbG93ZXIuaW5kZXhPZih0ZXJtLnRvTG93ZXJDYXNlKCkpXG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gdGV4dC5zbGljZSgwLCAxMjApXG4gIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgaWR4IC0gNDApXG4gIGNvbnN0IGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBpZHggKyB0ZXJtLmxlbmd0aCArIDgwKVxuICBjb25zdCBwcmVmaXggPSBzdGFydCA+IDAgPyBcIuKAplwiIDogXCJcIlxuICBjb25zdCBzdWZmaXggPSBlbmQgPCB0ZXh0Lmxlbmd0aCA/IFwi4oCmXCIgOiBcIlwiXG4gIHJldHVybiBgJHtwcmVmaXh9JHt0ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpfSR7c3VmZml4fWBcbn1cblxuZnVuY3Rpb24gSGlnaGxpZ2h0ZWRUZXh0KHByb3BzOiB7IHRleHQ6IHN0cmluZzsgdGVybTogc3RyaW5nIH0pIHtcbiAgaWYgKCFwcm9wcy50ZXJtLnRyaW0oKSkgcmV0dXJuIDw+e3Byb3BzLnRleHR9PC8+XG4gIGNvbnN0IGVzY2FwZWQgPSBwcm9wcy50ZXJtLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKVxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCgke2VzY2FwZWR9KWAsIFwiZ2lcIilcbiAgY29uc3QgcGFydHMgPSBwcm9wcy50ZXh0LnNwbGl0KHJlZ2V4KVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cGFydHMubWFwKChwYXJ0LCBpKSA9PlxuICAgICAgICByZWdleC50ZXN0KHBhcnQpID8gKFxuICAgICAgICAgIDxzcGFuIGtleT17aX0gY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtXCI+XG4gICAgICAgICAgICB7cGFydH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgcGFydFxuICAgICAgICApLFxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2VhcmNoRGlhbG9nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMvRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSx3QkFBeUIsQ0FBQTtBQVVoQywrQ0FBK0M7QUFDL0MsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUc1QjtJQUNDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFpQixFQUFFLENBQUMsQ0FBQTtJQUMxRCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQTRDLElBQUksQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBRTlCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN6QyxJQUFJLEtBQUssQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDO1lBQ3RCLE1BQU0sRUFB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LEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDakIsZUFBYyxTQUFTLEVBQUMsNkJBQTZCLFlBQ2xELElBQUksSUFESSxDQUFDLENBRUwsQ0FDUixDQUFDLENBQUMsQ0FBQyxDQUNGLElBQUksQ0FDTCxDQUNGLEdBQ0EsQ0FDSixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnRNdWx0aXBsZSwgc2VhcmNoIH0gZnJvbSBcIkBvcmFtYS9vcmFtYVwiXG5pbXBvcnQgeyBzb3J0ZWRBcnRpY2xlcyB9IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUFydGljbGVJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCB7XG4gIENvbW1hbmREaWFsb2csXG4gIENvbW1hbmRFbXB0eSxcbiAgQ29tbWFuZEdyb3VwLFxuICBDb21tYW5kSW5wdXQsXG4gIENvbW1hbmRJdGVtLFxuICBDb21tYW5kTGlzdCxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL2NvbW1hbmQudHN4XCJcblxuaW50ZXJmYWNlIFNlYXJjaFJlc3VsdCB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIGljb246IHN0cmluZ1xuICBzbmlwcGV0OiBzdHJpbmdcbiAgZ3JvdXA6IHN0cmluZ1xufVxuXG4vKiogRnVsbC10ZXh0IHNlYXJjaCBkaWFsb2cgcG93ZXJlZCBieSBPcmFtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlYXJjaERpYWxvZyhwcm9wczoge1xuICBvcGVuOiBib29sZWFuXG4gIG9uT3BlbkNoYW5nZTogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3Jlc3VsdHMsIHNldFJlc3VsdHNdID0gdXNlU3RhdGU8U2VhcmNoUmVzdWx0W10+KFtdKVxuICBjb25zdCBbcXVlcnksIHNldFF1ZXJ5XSA9IHVzZVN0YXRlKFwiXCIpXG4gIGNvbnN0IGRiUmVmID0gdXNlUmVmPEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlPj4gfCBudWxsPihudWxsKVxuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKClcblxuICBjb25zdCBlbnN1cmVJbmRleCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoZGJSZWYuY3VycmVudCkgcmV0dXJuIGRiUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkYiA9IGF3YWl0IGNyZWF0ZSh7XG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgdGl0bGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcInN0cmluZ1wiLFxuICAgICAgICBzZWFyY2hUZXh0OiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICB9KVxuICAgIGF3YWl0IGluc2VydE11bHRpcGxlKFxuICAgICAgZGIsXG4gICAgICBzb3J0ZWRBcnRpY2xlcy5tYXAoYSA9PiAoe1xuICAgICAgICB0aXRsZTogYS50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IGEuZGVzY3JpcHRpb24gPz8gXCJcIixcbiAgICAgICAgc2VhcmNoVGV4dDogYS5zZWFyY2hUZXh0LFxuICAgICAgfSkpLFxuICAgIClcbiAgICBkYlJlZi5jdXJyZW50ID0gZGJcbiAgICByZXR1cm4gZGJcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9SZXN1bHQgPSB1c2VDYWxsYmFjayhcbiAgICAoYXJ0aWNsZTogKHR5cGVvZiBzb3J0ZWRBcnRpY2xlcylbbnVtYmVyXSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0ID0+ICh7XG4gICAgICB0aXRsZTogYXJ0aWNsZS50aXRsZSxcbiAgICAgIHBhdGg6IGFydGljbGUucGF0aCxcbiAgICAgIGljb246IGFydGljbGUuaWNvbixcbiAgICAgIHNuaXBwZXQ6IHRlcm1cbiAgICAgICAgPyBleHRyYWN0U25pcHBldChhcnRpY2xlLnNlYXJjaFRleHQsIHRlcm0pXG4gICAgICAgIDogKGFydGljbGUuZGVzY3JpcHRpb24gPz8gXCJcIiksXG4gICAgICBncm91cDogZ3JvdXBGb3IoYXJ0aWNsZS5wYXRoKSxcbiAgICB9KSxcbiAgICBbXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh0ZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFF1ZXJ5KHRlcm0pXG4gICAgICBpZiAoIXRlcm0udHJpbSgpKSB7XG4gICAgICAgIHNldFJlc3VsdHMoW10pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgZGIgPSBhd2FpdCBlbnN1cmVJbmRleCgpXG4gICAgICBjb25zdCBoaXRzID0gYXdhaXQgc2VhcmNoKGRiLCB7XG4gICAgICAgIHRlcm0sXG4gICAgICAgIHByb3BlcnRpZXM6IFtcInRpdGxlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJzZWFyY2hUZXh0XCJdLFxuICAgICAgICB0b2xlcmFuY2U6IDEsXG4gICAgICAgIGJvb3N0OiB7IHRpdGxlOiAzLCBkZXNjcmlwdGlvbjogMiB9LFxuICAgICAgfSlcbiAgICAgIHNldFJlc3VsdHMoXG4gICAgICAgIGhpdHMuaGl0cy5tYXAoaGl0ID0+IHtcbiAgICAgICAgICBjb25zdCBhcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChcbiAgICAgICAgICAgIGEgPT4gYS50aXRsZSA9PT0gaGl0LmRvY3VtZW50LnRpdGxlLFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoIWFydGljbGUpXG4gICAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5zb3J0ZWRBcnRpY2xlc1swXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogaGl0LmRvY3VtZW50LnRpdGxlLFxuICAgICAgICAgICAgICAgIHBhdGg6IFwiXCIsXG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogaGl0LmRvY3VtZW50LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBoaXQuZG9jdW1lbnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoYXJ0aWNsZSwgdGVybSlcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgfSxcbiAgICBbZW5zdXJlSW5kZXgsIHRvUmVzdWx0XSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdCA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIHByb3BzLm9uT3BlbkNoYW5nZShmYWxzZSlcbiAgICAgIHNldFF1ZXJ5KFwiXCIpXG4gICAgICBzZXRSZXN1bHRzKFtdKVxuICAgICAgbmF2aWdhdGUoe1xuICAgICAgICB0bzogXCIvJFwiLFxuICAgICAgICBwYXJhbXM6IHsgX3NwbGF0OiBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9LFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtuYXZpZ2F0ZSwgcHJvcHMub25PcGVuQ2hhbmdlXSxcbiAgKVxuXG4gIGNvbnN0IGdyb3VwZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cHMgPSBuZXcgTWFwPHN0cmluZywgU2VhcmNoUmVzdWx0W10+KClcbiAgICBmb3IgKGNvbnN0IHIgb2YgcmVzdWx0cykge1xuICAgICAgY29uc3QgbGlzdCA9IGdyb3Vwcy5nZXQoci5ncm91cCkgPz8gW11cbiAgICAgIGxpc3QucHVzaChyKVxuICAgICAgZ3JvdXBzLnNldChyLmdyb3VwLCBsaXN0KVxuICAgIH1cbiAgICByZXR1cm4gZ3JvdXBzXG4gIH0sIFtyZXN1bHRzXSlcblxuICByZXR1cm4gKFxuICAgIDxDb21tYW5kRGlhbG9nXG4gICAgICB0aXRsZT1cIlNlYXJjaFwiXG4gICAgICBkZXNjcmlwdGlvbj1cIlNlYXJjaCBkb2N1bWVudGF0aW9uXCJcbiAgICAgIG9wZW49e3Byb3BzLm9wZW59XG4gICAgICBvbk9wZW5DaGFuZ2U9e3Byb3BzLm9uT3BlbkNoYW5nZX1cbiAgICAgIHNob3VsZEZpbHRlcj17ZmFsc2V9XG4gICAgICBsb29wXG4gICAgPlxuICAgICAgPENvbW1hbmRJbnB1dFxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBkb2NzLi4uXCJcbiAgICAgICAgdmFsdWU9e3F1ZXJ5fVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtoYW5kbGVTZWFyY2h9XG4gICAgICAgIG9uQ2xlYXI9eygpID0+IGhhbmRsZVNlYXJjaChcIlwiKX1cbiAgICAgIC8+XG4gICAgICA8Q29tbWFuZExpc3QgY2xhc3NOYW1lPVwibWF4LWgtODBcIj5cbiAgICAgICAgPENvbW1hbmRFbXB0eT5cbiAgICAgICAgICB7cXVlcnkudHJpbSgpXG4gICAgICAgICAgICA/IFwiTm8gcmVzdWx0cyBmb3VuZC5cIlxuICAgICAgICAgICAgOiBcIlR5cGUgdG8gc2VhcmNoIGFjcm9zcyBhbGwgZG9jdW1lbnRhdGlvbi5cIn1cbiAgICAgICAgPC9Db21tYW5kRW1wdHk+XG4gICAgICAgIHtbLi4uZ3JvdXBlZC5lbnRyaWVzKCldLm1hcCgoW2dyb3VwLCBpdGVtc10pID0+IChcbiAgICAgICAgICA8Q29tbWFuZEdyb3VwIGtleT17Z3JvdXB9IGhlYWRpbmc9e2dyb3VwfT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgSWNvbiA9IHJlc29sdmVBcnRpY2xlSWNvbihyZXN1bHQuaWNvbilcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Q29tbWFuZEl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17cmVzdWx0LnBhdGh9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17cmVzdWx0LnBhdGh9XG4gICAgICAgICAgICAgICAgICBvblNlbGVjdD17KCkgPT4gaGFuZGxlU2VsZWN0KHJlc3VsdC5wYXRoKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB5LTIuNVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS01IHNocmluay0wIG10LTAuNSBzZWxmLXN0YXJ0IG9wYWNpdHktNjBcIiAvPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0wLjUgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWJhc2UgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cmVzdWx0LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtyZXN1bHQuc25pcHBldCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHRleHQ9e3Jlc3VsdC5zbmlwcGV0fSB0ZXJtPXtxdWVyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L0NvbW1hbmRJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L0NvbW1hbmRHcm91cD5cbiAgICAgICAgKSl9XG4gICAgICA8L0NvbW1hbmRMaXN0PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBib3JkZXItdCBtdC0yIHB4LTQgcHktMi41IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICA8a2JkIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IHB5LTAuNSB0ZXh0LXhzIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAg4oaR4oaTXG4gICAgICAgICAgPC9rYmQ+XG4gICAgICAgICAgbmF2aWdhdGVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGtiZCBjbGFzc05hbWU9XCJyb3VuZGVkIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTEuNSBweS0wLjUgdGV4dC14cyBmb250LW1vbm9cIj5cbiAgICAgICAgICAgIOKGtVxuICAgICAgICAgIDwva2JkPlxuICAgICAgICAgIHNlbGVjdFxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICA8a2JkIGNsYXNzTmFtZT1cInJvdW5kZWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IHB5LTAuNSB0ZXh0LXhzIGZvbnQtbW9ub1wiPlxuICAgICAgICAgICAgZXNjXG4gICAgICAgICAgPC9rYmQ+XG4gICAgICAgICAgY2xvc2VcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9Db21tYW5kRGlhbG9nPlxuICApXG59XG5cbmZ1bmN0aW9uIGdyb3VwRm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikuc3BsaXQoXCIvXCIpXG4gIGlmIChzZWdtZW50cy5sZW5ndGggPD0gMikgcmV0dXJuIFwiUGFnZXNcIlxuICByZXR1cm4gc2VnbWVudHNcbiAgICAuc2xpY2UoMSwgLTEpXG4gICAgLm1hcChzID0+XG4gICAgICBzXG4gICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgLm1hcCh3ID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgICAgICAuam9pbihcIiBcIiksXG4gICAgKVxuICAgIC5qb2luKFwiIOKAuiBcIilcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFNuaXBwZXQodGV4dDogc3RyaW5nLCB0ZXJtOiBzdHJpbmcpIHtcbiAgY29uc3QgbG93ZXIgPSB0ZXh0LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgaWR4ID0gbG93ZXIuaW5kZXhPZih0ZXJtLnRvTG93ZXJDYXNlKCkpXG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gdGV4dC5zbGljZSgwLCAxMjApXG4gIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgaWR4IC0gNDApXG4gIGNvbnN0IGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBpZHggKyB0ZXJtLmxlbmd0aCArIDgwKVxuICBjb25zdCBwcmVmaXggPSBzdGFydCA+IDAgPyBcIuKAplwiIDogXCJcIlxuICBjb25zdCBzdWZmaXggPSBlbmQgPCB0ZXh0Lmxlbmd0aCA/IFwi4oCmXCIgOiBcIlwiXG4gIHJldHVybiBgJHtwcmVmaXh9JHt0ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpfSR7c3VmZml4fWBcbn1cblxuZnVuY3Rpb24gSGlnaGxpZ2h0ZWRUZXh0KHByb3BzOiB7IHRleHQ6IHN0cmluZzsgdGVybTogc3RyaW5nIH0pIHtcbiAgaWYgKCFwcm9wcy50ZXJtLnRyaW0oKSkgcmV0dXJuIDw+e3Byb3BzLnRleHR9PC8+XG4gIGNvbnN0IGVzY2FwZWQgPSBwcm9wcy50ZXJtLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKVxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCgke2VzY2FwZWR9KWAsIFwiZ2lcIilcbiAgY29uc3QgcGFydHMgPSBwcm9wcy50ZXh0LnNwbGl0KHJlZ2V4KVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cGFydHMubWFwKChwYXJ0LCBpKSA9PlxuICAgICAgICByZWdleC50ZXN0KHBhcnQpID8gKFxuICAgICAgICAgIDxzcGFuIGtleT17aX0gY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtXCI+XG4gICAgICAgICAgICB7cGFydH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgcGFydFxuICAgICAgICApLFxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Link, useLocation } from "@tanstack/react-router";
|
|
3
|
-
import { ChevronRight
|
|
3
|
+
import { ChevronRight } from "lucide-react";
|
|
4
4
|
import { articleGroups, currentSection, sectionArticleGroups, } from "../content/article.js";
|
|
5
5
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../elements/collapsible.js";
|
|
6
6
|
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "../elements/sidebar.js";
|
|
7
|
-
import {
|
|
7
|
+
import { resolveArticleIcon } from "../helpers/article-icon.js";
|
|
8
8
|
/** Article-tree body slot for the Sidebar shell */
|
|
9
9
|
export function SidebarArticles() {
|
|
10
10
|
const pathname = useLocation({ select: l => l.pathname });
|
|
@@ -26,7 +26,7 @@ function isActive(articlePathname, currentPath) {
|
|
|
26
26
|
}
|
|
27
27
|
function NavNode(props) {
|
|
28
28
|
const { node, currentPath } = props;
|
|
29
|
-
const Icon =
|
|
29
|
+
const Icon = resolveArticleIcon(node.icon);
|
|
30
30
|
const active = isActive(node.path, currentPath);
|
|
31
31
|
if (node.children.length === 0) {
|
|
32
32
|
return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: "/$", params: splatFor(node.path) }), children: [
|
|
@@ -42,4 +42,4 @@ function NavNode(props) {
|
|
|
42
42
|
}) }) })
|
|
43
43
|
] }) }));
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhckFydGljbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhckFydGljbGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNkIsQ0FBQTtBQUNwQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHekQsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBRXpELE1BQU0sY0FBYyxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQ3RELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2RSxNQUFNLE1BQU0sR0FBRyxjQUFjLEVBQUUsTUFBTTtRQUNuQyxDQUFDLENBQUMsQ0FB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R0FBUTt3QkFDckIsRUFDcEIsS0FBQyxrQkFBa0Isa0JBQ0wsVUFBVSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFDeEQsU0FBUyxFQUFDLGlFQUFpRSxZQUUzRSxLQUFDLFlBQVksSUFBQyxTQUFTLEVBQUMsdUVBQXVFLEdBQUcsR0FDL0UsRUFDckIsS0FBQyxrQkFBa0IsY0FDakIsS0FBQyxjQUFjLGNBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ3pCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFBOzRCQUN2RCxPQUFPLENBQ0wsS0FBQyxrQkFBa0IsY0FDakIsS0FBQyxvQkFBb0IsSUFDbkIsUUFBUSxFQUFFLGFBQWEsRUFDdkIsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQzVDLE1BQU0sRUFBRSxLQUFDLElBQUksSUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFJLFlBRXRELHlCQUFPLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssR0FBUSxHQUNwQixJQVBBLEtBQUssQ0FBQyxJQUFJLENBUWQsQ0FDdEIsQ0FBQTt3QkFDSCxDQUFDLENBQUMsR0FDYSxHQUNFO2dCQUNULEdBQ0UsQ0FDbkIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IENoZXZyb25SaWdodCwgRmlsZVRleHQgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7XG4gIGFydGljbGVHcm91cHMsXG4gIGN1cnJlbnRTZWN0aW9uLFxuICBzZWN0aW9uQXJ0aWNsZUdyb3Vwcyxcbn0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQge1xuICBDb2xsYXBzaWJsZSxcbiAgQ29sbGFwc2libGVDb250ZW50LFxuICBDb2xsYXBzaWJsZVRyaWdnZXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9jb2xsYXBzaWJsZS50c3hcIlxuaW1wb3J0IHtcbiAgU2lkZWJhckdyb3VwLFxuICBTaWRlYmFyR3JvdXBDb250ZW50LFxuICBTaWRlYmFyR3JvdXBMYWJlbCxcbiAgU2lkZWJhck1lbnUsXG4gIFNpZGViYXJNZW51QnV0dG9uLFxuICBTaWRlYmFyTWVudUl0ZW0sXG4gIFNpZGViYXJNZW51U3ViLFxuICBTaWRlYmFyTWVudVN1YkJ1dHRvbixcbiAgU2lkZWJhck1lbnVTdWJJdGVtLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvc2lkZWJhci50c3hcIlxuaW1wb3J0IHsgYXJ0aWNsZUljb25zIH0gZnJvbSBcIi4uL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCB0eXBlIHsgQXJ0aWNsZU5vZGUgfSBmcm9tIFwiLi4vbW9kZWxzL2FydGljbGUudHNcIlxuXG4vKiogQXJ0aWNsZS10cmVlIGJvZHkgc2xvdCBmb3IgdGhlIFNpZGViYXIgc2hlbGwgKi9cbmV4cG9ydCBmdW5jdGlvbiBTaWRlYmFyQXJ0aWNsZXMoKSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTG9jYXRpb24oeyBzZWxlY3Q6IGwgPT4gbC5wYXRobmFtZSB9KVxuXG4gIGNvbnN0IGNvbmZpZ1NlY3Rpb25zID0gaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy5zZWN0aW9uc1xuICBjb25zdCBzZWN0aW9uID0gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgY29uc3QgZ3JvdXBzID0gY29uZmlnU2VjdGlvbnM/Lmxlbmd0aFxuICAgID8gKHNlY3Rpb25BcnRpY2xlR3JvdXBzLmdldChzZWN0aW9uPy5wcmVmaXggPz8gXCJfX2RlZmF1bHRfX1wiKSA/P1xuICAgICAgYXJ0aWNsZUdyb3VwcylcbiAgICA6IGFydGljbGVHcm91cHNcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7Z3JvdXBzLm1hcCgoZ3JvdXAsIGluZGV4KSA9PiAoXG4gICAgICAgIDxTaWRlYmFyR3JvdXAga2V5PXtncm91cC5uYW1lID8/IGBfX3VubmFtZWQtJHtpbmRleH1gfT5cbiAgICAgICAgICB7Z3JvdXAubmFtZSAmJiAoXG4gICAgICAgICAgICA8U2lkZWJhckdyb3VwTGFiZWwgY2xhc3NOYW1lPVwidXBwZXJjYXNlIGZvbnQtbW9ubyB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdFwiPlxuICAgICAgICAgICAgICB7Z3JvdXAubmFtZX1cbiAgICAgICAgICAgIDwvU2lkZWJhckdyb3VwTGFiZWw+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U2lkZWJhckdyb3VwQ29udGVudD5cbiAgICAgICAgICAgIDxTaWRlYmFyTWVudT5cbiAgICAgICAgICAgICAge2dyb3VwLm5vZGVzLm1hcChub2RlID0+IChcbiAgICAgICAgICAgICAgICA8TmF2Tm9kZSBrZXk9e25vZGUucGF0aH0gbm9kZT17bm9kZX0gY3VycmVudFBhdGg9e3BhdGhuYW1lfSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU2lkZWJhck1lbnU+XG4gICAgICAgICAgPC9TaWRlYmFyR3JvdXBDb250ZW50PlxuICAgICAgICA8L1NpZGViYXJHcm91cD5cbiAgICAgICkpfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIHNwbGF0Rm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHsgX3NwbGF0OiBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikgfVxufVxuXG5mdW5jdGlvbiBpc0FjdGl2ZShhcnRpY2xlUGF0aG5hbWU6IHN0cmluZywgY3VycmVudFBhdGg6IHN0cmluZykge1xuICBjb25zdCBub3JtYWxpemVkID0gYC8ke2N1cnJlbnRQYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICByZXR1cm4gYXJ0aWNsZVBhdGhuYW1lID09PSBub3JtYWxpemVkXG59XG5cbmZ1bmN0aW9uIE5hdk5vZGUocHJvcHM6IHsgbm9kZTogQXJ0aWNsZU5vZGU7IGN1cnJlbnRQYXRoOiBzdHJpbmcgfSkge1xuICBjb25zdCB7IG5vZGUsIGN1cnJlbnRQYXRoIH0gPSBwcm9wc1xuICBjb25zdCBJY29uID0gYXJ0aWNsZUljb25zW25vZGUuaWNvbl0gPz8gRmlsZVRleHRcbiAgY29uc3QgYWN0aXZlID0gaXNBY3RpdmUobm9kZS5wYXRoLCBjdXJyZW50UGF0aClcblxuICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGViYXJNZW51SXRlbT5cbiAgICAgICAgPFNpZGViYXJNZW51QnV0dG9uXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICByZW5kZXI9ezxMaW5rIHRvPVwiLyRcIiBwYXJhbXM9e3NwbGF0Rm9yKG5vZGUucGF0aCl9IC8+fVxuICAgICAgICA+XG4gICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS00XCIgLz5cbiAgICAgICAgICA8c3Bhbj57bm9kZS5sYWJlbCA/PyBub2RlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgPC9TaWRlYmFyTWVudUJ1dHRvbj5cbiAgICAgIDwvU2lkZWJhck1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNpZGViYXJNZW51SXRlbT5cbiAgICAgIDxDb2xsYXBzaWJsZSBkZWZhdWx0T3BlbiBjbGFzc05hbWU9XCJncm91cC9jb2xsYXBzaWJsZVwiPlxuICAgICAgICA8U2lkZWJhck1lbnVCdXR0b25cbiAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGNsYXNzTmFtZT17YWN0aXZlID8gXCJcIiA6IFwib3BhY2l0eS03NVwifVxuICAgICAgICAgIHJlbmRlcj17PExpbmsgdG89XCIvJFwiIHBhcmFtcz17c3BsYXRGb3Iobm9kZS5wYXRoKX0gLz59XG4gICAgICAgID5cbiAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJzaXplLTRcIiAvPlxuICAgICAgICAgIDxzcGFuPntub2RlLmxhYmVsID8/IG5vZGUudGl0bGV9PC9zcGFuPlxuICAgICAgICA8L1NpZGViYXJNZW51QnV0dG9uPlxuICAgICAgICA8Q29sbGFwc2libGVUcmlnZ2VyXG4gICAgICAgICAgYXJpYS1sYWJlbD17YFRvZ2dsZSAke25vZGUubGFiZWwgPz8gbm9kZS50aXRsZX0gc3VibWVudWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgcmlnaHQtMSB0b3AtMS41IHAtMSByb3VuZGVkLW1kIGhvdmVyOmJnLXNpZGViYXItYWNjZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY2xhc3NOYW1lPVwic2l6ZS0zLjUgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZ3JvdXAtZGF0YS1bb3Blbl0vY29sbGFwc2libGU6cm90YXRlLTkwXCIgLz5cbiAgICAgICAgPC9Db2xsYXBzaWJsZVRyaWdnZXI+XG4gICAgICAgIDxDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPFNpZGViYXJNZW51U3ViPlxuICAgICAgICAgICAge25vZGUuY2hpbGRyZW4ubWFwKGNoaWxkID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRJc0FjdGl2ZSA9IGlzQWN0aXZlKGNoaWxkLnBhdGgsIGN1cnJlbnRQYXRoKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTaWRlYmFyTWVudVN1Ykl0ZW0ga2V5PXtjaGlsZC5wYXRofT5cbiAgICAgICAgICAgICAgICAgIDxTaWRlYmFyTWVudVN1YkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZT17Y2hpbGRJc0FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjaGlsZElzQWN0aXZlID8gXCJcIiA6IFwib3BhY2l0eS03NVwifVxuICAgICAgICAgICAgICAgICAgICByZW5kZXI9ezxMaW5rIHRvPVwiLyRcIiBwYXJhbXM9e3NwbGF0Rm9yKGNoaWxkLnBhdGgpfSAvPn1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2NoaWxkLmxhYmVsID8/IGNoaWxkLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVTdWJCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9TaWRlYmFyTWVudVN1Ykl0ZW0+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvU2lkZWJhck1lbnVTdWI+XG4gICAgICAgIDwvQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgKVxufVxuIl19
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhckFydGljbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhckFydGljbGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDRCQUE2QixDQUFBO0FBQ3BDLE9BQU8sRUFDTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUNuQixNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRy9ELG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUV6RCxNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkUsTUFBTSxNQUFNLEdBQUcsY0FBYyxFQUFFLE1BQU07UUFDbkMsQ0FBQyxDQUFDLENBQUMsb0JBQW9C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QixLQUFDLGtCQUFrQixrQkFDTCxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssVUFBVSxFQUN4RCxTQUFTLEVBQUMsaUVBQWlFLFlBRTNFLEtBQUMsWUFBWSxJQUFDLFNBQVMsRUFBQyx1RUFBdUUsR0FBRyxHQUMvRSxFQUNyQixLQUFDLGtCQUFrQixjQUNqQixLQUFDLGNBQWMsY0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDekIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUE7NEJBQ3ZELE9BQU8sQ0FDTCxLQUFDLGtCQUFrQixjQUNqQixLQUFDLG9CQUFvQixJQUNuQixRQUFRLEVBQUUsYUFBYSxFQUN2QixTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFDNUMsTUFBTSxFQUFFLEtBQUMsSUFBSSxJQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUksWUFFdEQseUJBQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFRLEdBQ3BCLElBUEEsS0FBSyxDQUFDLElBQUksQ0FRZCxDQUN0QixDQUFBO3dCQUNILENBQUMsQ0FBQyxHQUNhLEdBQ0U7Z0JBQ1QsR0FDRSxDQUNuQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmssIHVzZUxvY2F0aW9uIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQge1xuICBhcnRpY2xlR3JvdXBzLFxuICBjdXJyZW50U2VjdGlvbixcbiAgc2VjdGlvbkFydGljbGVHcm91cHMsXG59IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHtcbiAgQ29sbGFwc2libGUsXG4gIENvbGxhcHNpYmxlQ29udGVudCxcbiAgQ29sbGFwc2libGVUcmlnZ2VyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvY29sbGFwc2libGUudHN4XCJcbmltcG9ydCB7XG4gIFNpZGViYXJHcm91cCxcbiAgU2lkZWJhckdyb3VwQ29udGVudCxcbiAgU2lkZWJhckdyb3VwTGFiZWwsXG4gIFNpZGViYXJNZW51LFxuICBTaWRlYmFyTWVudUJ1dHRvbixcbiAgU2lkZWJhck1lbnVJdGVtLFxuICBTaWRlYmFyTWVudVN1YixcbiAgU2lkZWJhck1lbnVTdWJCdXR0b24sXG4gIFNpZGViYXJNZW51U3ViSXRlbSxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcbmltcG9ydCB7IHJlc29sdmVBcnRpY2xlSWNvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2FydGljbGUtaWNvbi50c1wiXG5pbXBvcnQgdHlwZSB7IEFydGljbGVOb2RlIH0gZnJvbSBcIi4uL21vZGVscy9hcnRpY2xlLnRzXCJcblxuLyoqIEFydGljbGUtdHJlZSBib2R5IHNsb3QgZm9yIHRoZSBTaWRlYmFyIHNoZWxsICovXG5leHBvcnQgZnVuY3Rpb24gU2lkZWJhckFydGljbGVzKCkge1xuICBjb25zdCBwYXRobmFtZSA9IHVzZUxvY2F0aW9uKHsgc2VsZWN0OiBsID0+IGwucGF0aG5hbWUgfSlcblxuICBjb25zdCBjb25maWdTZWN0aW9ucyA9IGltcG9ydC5tZXRhLmVudi5DT05GSUcuc2VjdGlvbnNcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG4gIGNvbnN0IGdyb3VwcyA9IGNvbmZpZ1NlY3Rpb25zPy5sZW5ndGhcbiAgICA/IChzZWN0aW9uQXJ0aWNsZUdyb3Vwcy5nZXQoc2VjdGlvbj8ucHJlZml4ID8/IFwiX19kZWZhdWx0X19cIikgPz9cbiAgICAgIGFydGljbGVHcm91cHMpXG4gICAgOiBhcnRpY2xlR3JvdXBzXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2dyb3Vwcy5tYXAoKGdyb3VwLCBpbmRleCkgPT4gKFxuICAgICAgICA8U2lkZWJhckdyb3VwIGtleT17Z3JvdXAubmFtZSA/PyBgX191bm5hbWVkLSR7aW5kZXh9YH0+XG4gICAgICAgICAge2dyb3VwLm5hbWUgJiYgKFxuICAgICAgICAgICAgPFNpZGViYXJHcm91cExhYmVsIGNsYXNzTmFtZT1cInVwcGVyY2FzZSBmb250LW1vbm8gdGV4dC14cyB0cmFja2luZy13aWRlc3RcIj5cbiAgICAgICAgICAgICAge2dyb3VwLm5hbWV9XG4gICAgICAgICAgICA8L1NpZGViYXJHcm91cExhYmVsPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFNpZGViYXJHcm91cENvbnRlbnQ+XG4gICAgICAgICAgICA8U2lkZWJhck1lbnU+XG4gICAgICAgICAgICAgIHtncm91cC5ub2Rlcy5tYXAobm9kZSA9PiAoXG4gICAgICAgICAgICAgICAgPE5hdk5vZGUga2V5PXtub2RlLnBhdGh9IG5vZGU9e25vZGV9IGN1cnJlbnRQYXRoPXtwYXRobmFtZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NpZGViYXJNZW51PlxuICAgICAgICAgIDwvU2lkZWJhckdyb3VwQ29udGVudD5cbiAgICAgICAgPC9TaWRlYmFyR3JvdXA+XG4gICAgICApKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZnVuY3Rpb24gaXNBY3RpdmUoYXJ0aWNsZVBhdGhuYW1lOiBzdHJpbmcsIGN1cnJlbnRQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAvJHtjdXJyZW50UGF0aC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2BcbiAgcmV0dXJuIGFydGljbGVQYXRobmFtZSA9PT0gbm9ybWFsaXplZFxufVxuXG5mdW5jdGlvbiBOYXZOb2RlKHByb3BzOiB7IG5vZGU6IEFydGljbGVOb2RlOyBjdXJyZW50UGF0aDogc3RyaW5nIH0pIHtcbiAgY29uc3QgeyBub2RlLCBjdXJyZW50UGF0aCB9ID0gcHJvcHNcbiAgY29uc3QgSWNvbiA9IHJlc29sdmVBcnRpY2xlSWNvbihub2RlLmljb24pXG4gIGNvbnN0IGFjdGl2ZSA9IGlzQWN0aXZlKG5vZGUucGF0aCwgY3VycmVudFBhdGgpXG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgIDxTaWRlYmFyTWVudUJ1dHRvblxuICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmUgPyBcIlwiIDogXCJvcGFjaXR5LTc1XCJ9XG4gICAgICAgICAgcmVuZGVyPXs8TGluayB0bz1cIi8kXCIgcGFyYW1zPXtzcGxhdEZvcihub2RlLnBhdGgpfSAvPn1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cInNpemUtNFwiIC8+XG4gICAgICAgICAgPHNwYW4+e25vZGUubGFiZWwgPz8gbm9kZS50aXRsZX08L3NwYW4+XG4gICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICA8Q29sbGFwc2libGUgZGVmYXVsdE9wZW4gY2xhc3NOYW1lPVwiZ3JvdXAvY29sbGFwc2libGVcIj5cbiAgICAgICAgPFNpZGViYXJNZW51QnV0dG9uXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICByZW5kZXI9ezxMaW5rIHRvPVwiLyRcIiBwYXJhbXM9e3NwbGF0Rm9yKG5vZGUucGF0aCl9IC8+fVxuICAgICAgICA+XG4gICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS00XCIgLz5cbiAgICAgICAgICA8c3Bhbj57bm9kZS5sYWJlbCA/PyBub2RlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgPC9TaWRlYmFyTWVudUJ1dHRvbj5cbiAgICAgICAgPENvbGxhcHNpYmxlVHJpZ2dlclxuICAgICAgICAgIGFyaWEtbGFiZWw9e2BUb2dnbGUgJHtub2RlLmxhYmVsID8/IG5vZGUudGl0bGV9IHN1Ym1lbnVgfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTEgdG9wLTEuNSBwLTEgcm91bmRlZC1tZCBob3ZlcjpiZy1zaWRlYmFyLWFjY2VudFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNsYXNzTmFtZT1cInNpemUtMy41IHRyYW5zaXRpb24tdHJhbnNmb3JtIGdyb3VwLWRhdGEtW29wZW5dL2NvbGxhcHNpYmxlOnJvdGF0ZS05MFwiIC8+XG4gICAgICAgIDwvQ29sbGFwc2libGVUcmlnZ2VyPlxuICAgICAgICA8Q29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDxTaWRlYmFyTWVudVN1Yj5cbiAgICAgICAgICAgIHtub2RlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSXNBY3RpdmUgPSBpc0FjdGl2ZShjaGlsZC5wYXRoLCBjdXJyZW50UGF0aClcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVTdWJJdGVtIGtleT17Y2hpbGQucGF0aH0+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVTdWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9e2NoaWxkSXNBY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2hpbGRJc0FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXs8TGluayB0bz1cIi8kXCIgcGFyYW1zPXtzcGxhdEZvcihjaGlsZC5wYXRoKX0gLz59XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntjaGlsZC5sYWJlbCA/PyBjaGlsZC50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L1NpZGViYXJNZW51U3ViQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVTdWJJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NpZGViYXJNZW51U3ViPlxuICAgICAgICA8L0NvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgPC9TaWRlYmFyTWVudUl0ZW0+XG4gIClcbn1cbiJdfQ==
|
|
@@ -37,6 +37,7 @@ import { remarkMermaid } from "./plugins/remark-mermaid.js";
|
|
|
37
37
|
import { remarkToc } from "./plugins/remark-toc.js";
|
|
38
38
|
import { remarkNpm } from "./plugins/remark-npm.js";
|
|
39
39
|
import { remarkSteps } from "./plugins/remark-steps.js";
|
|
40
|
+
import { remarkPassthroughDirective } from "./plugins/remark-passthrough-directive.js";
|
|
40
41
|
import { transformerLineHighlight, transformerNotations, } from "./plugins/shiki-line-highlight.js";
|
|
41
42
|
import { rehypeInlineCode } from "./plugins/rehype-inline-code.js";
|
|
42
43
|
import { rehypeTaskListA11y } from "./plugins/rehype-task-list-a11y.js";
|
|
@@ -141,6 +142,10 @@ const articles = defineCollection({
|
|
|
141
142
|
remarkCodeTabs,
|
|
142
143
|
remarkSteps,
|
|
143
144
|
remarkCustomHeadingId,
|
|
145
|
+
// Run last: anything still typed as a directive after every handler
|
|
146
|
+
// above is unintended (e.g. `3.2:1`, `port:8080`) — passthrough as
|
|
147
|
+
// plain text so it doesn't render as an empty span/div.
|
|
148
|
+
remarkPassthroughDirective,
|
|
144
149
|
],
|
|
145
150
|
rehypePlugins: [
|
|
146
151
|
[
|
|
@@ -197,4 +202,4 @@ export default defineConfig({
|
|
|
197
202
|
// @ts-expect-error tsgo picks wrong overload when rehype-slug augments unified types
|
|
198
203
|
content: [articles],
|
|
199
204
|
});
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzNELE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8scUJBQXFCLE1BQU0sdUNBQXVDLENBQUE7QUFDekUsT0FBTyxFQUFF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b0IsRUFBRTs0QkFDdEIsd0JBQXdCLEVBQUU7eUJBQzNCO3dCQUNELGVBQWUsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsZ0JBQWdCO2dCQUNoQixVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsa0JBQWtCO2FBQ25CO1NBQ0YsQ0FDRixDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLO1lBQ3JCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDYixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXO1lBQ1gsS0FBSztZQUNMLEtBQUs7WUFDTCxJQUFJO1lBQ0osSUFBSTtZQUNKLFFBQVE7WUFDUixVQUFVO1lBQ1YsR0FBRztTQUNKLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsZUFBZSxZQUFZLENBQUM7SUFDMUIscUZBQXFGO0lBQ3JGLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgYmFzZW5hbWUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgeyBkZWZpbmVDb2xsZWN0aW9uLCBkZWZpbmVDb25maWcgfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvY29yZVwiXG5pbXBvcnQgeyBjb21waWxlTURYIH0gZnJvbSBcIkBjb250ZW50LWNvbGxlY3Rpb25zL21keFwiXG5pbXBvcnQgcmVoeXBlU2hpa2kgZnJvbSBcIkBzaGlraWpzL3JlaHlwZVwiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lclR3b3NsYXNoIH0gZnJvbSBcIkBzaGlraWpzL3R3b3NsYXNoXCJcbmltcG9ydCByZWh5cGVLYXRleCBmcm9tIFwicmVoeXBlLWthdGV4XCJcbmltcG9ydCByZWh5cGVTbHVnIGZyb20gXCJyZWh5cGUtc2x1Z1wiXG5pbXBvcnQgcmVtYXJrRGVmaW5pdGlvbkxpc3QgZnJvbSBcInJlbWFyay1kZWZpbml0aW9uLWxpc3RcIlxuaW1wb3J0IHJlbWFya0RpcmVjdGl2ZSBmcm9tIFwicmVtYXJrLWRpcmVjdGl2ZVwiXG5pbXBvcnQgcmVtYXJrR2Vtb2ppIGZyb20gXCJyZW1hcmstZ2Vtb2ppXCJcbmltcG9ydCByZW1hcmtHZm0gZnJvbSBcInJlbWFyay1nZm1cIlxuaW1wb3J0IHJlbWFya01hdGggZnJvbSBcInJlbWFyay1tYXRoXCJcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzXCJcbmltcG9ydCB7IGJ1aWxkQ2hhbmdlbG9nLCBjYWNoZUluY2x1ZGVHbG9iIH0gZnJvbSBcIi4vYWN0aW9ucy9jaGFuZ2Vsb2cvYnVpbGQudHNcIlxuaW1wb3J0IHsgQXJ0aWNsZSB9IGZyb20gXCIuL21vZGVscy9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IHBpY2tEZWZhdWx0SWNvbiB9IGZyb20gXCIuL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCBzbHVnaWZ5IGZyb20gXCJAc2luZHJlc29yaHVzL3NsdWdpZnlcIlxuaW1wb3J0IHJlbWFya0N1c3RvbUhlYWRpbmdJZCBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jdXN0b20taGVhZGluZy1pZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYXJkIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FyZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2x1bW5zIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29sdW1ucy50c1wiXG5pbXBvcnQgeyByZW1hcmtUYWIgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay10YWIudHNcIlxuaW1wb3J0IHsgcmVtYXJrQmFkZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1iYWRnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtCdXR0b24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1idXR0b24udHNcIlxuaW1wb3J0IHsgcmVtYXJrQWJiciB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFiYnIudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGVmbGlzdCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRlZmxpc3QudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGV0YWlscyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRldGFpbHMudHNcIlxuaW1wb3J0IHsgcmVtYXJrRmlsZXRyZWUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1maWxldHJlZS50c1wiXG5pbXBvcnQgeyByZW1hcmtJY29uIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstaWNvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2RlVGFicyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWNvZGUtdGFicy50c1wiXG5pbXBvcnQgeyByZW1hcmtHaXRodWJDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZ2l0aHViLWNhbGxvdXQudHNcIlxuaW1wb3J0IHsgcmVtYXJrSW1hZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pbWFnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtNZWRpYSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lZGlhLnRzXCJcbmltcG9ydCB7IHJlbWFya0Fuc2kgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1hbnNpLnRzXCJcbmltcG9ydCB7IHJlbWFya01lcm1haWQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1tZXJtYWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya1RvYyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRvYy50c1wiXG5pbXBvcnQgeyByZW1hcmtOcG0gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1ucG0udHNcIlxuaW1wb3J0IHsgcmVtYXJrU3RlcHMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1zdGVwcy50c1wiXG5pbXBvcnQge1xuICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQsXG4gIHRyYW5zZm9ybWVyTm90YXRpb25zLFxufSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWxpbmUtaGlnaGxpZ2h0LnRzXCJcbmltcG9ydCB7IHJlaHlwZUlubGluZUNvZGUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS1pbmxpbmUtY29kZS50c1wiXG5pbXBvcnQgeyByZWh5cGVUYXNrTGlzdEExMXkgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS10YXNrLWxpc3QtYTExeS50c1wiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lckljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWljb24udHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUFzc2V0UGF0aCB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1hc3NldC1wYXRoLnRzXCJcbmltcG9ydCB7IHJlc29sdmVJbmNsdWRlcyB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1pbmNsdWRlcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0U2VhcmNoVGV4dCB9IGZyb20gXCIuL2hlbHBlcnMvc2VhcmNoLXRleHQudHNcIlxuaW1wb3J0IHsgZXh0cmFjdFRvYyB9IGZyb20gXCIuL2hlbHBlcnMvdG9jLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5cbmNvbnN0IGNoYW5nZWxvZ1NlY3Rpb25zID1cbiAgY29uZmlnLnNlY3Rpb25zPy5maWx0ZXIocyA9PiBzLnR5cGUgPT09IFwiY2hhbmdlbG9nXCIpID8/IFtdXG5mb3IgKGNvbnN0IHNlY3Rpb24gb2YgY2hhbmdlbG9nU2VjdGlvbnMpIHtcbiAgYXdhaXQgYnVpbGRDaGFuZ2Vsb2coc2VjdGlvbiwgY29uZmlnKVxufVxuXG5jb25zdCBjb25maWdJbmNsdWRlID0gQXJyYXkuaXNBcnJheShjb25maWcuaW5jbHVkZSlcbiAgPyBjb25maWcuaW5jbHVkZVxuICA6IFtjb25maWcuaW5jbHVkZV1cbmNvbnN0IGluY2x1ZGUgPSBjaGFuZ2Vsb2dTZWN0aW9ucy5sZW5ndGhcbiAgPyBbLi4uY29uZmlnSW5jbHVkZSwgY2FjaGVJbmNsdWRlR2xvYigpXVxuICA6IGNvbmZpZ0luY2x1ZGVcblxuLy8gY29udGVudC1jb2xsZWN0aW9ucyBjb21waWxlcyB0aGlzIGZpbGUgdG8gLmNvbnRlbnQtY29sbGVjdGlvbnMvY2FjaGUvO1xuLy8gZ29pbmcgdXAgMiBsZXZlbHMgcmVjb25zdHJ1Y3RzIHRoZSBiYXNlRGlyZWN0b3J5IGl0IHVzZXMgZm9yIHBhdGggcmVzb2x1dGlvblxuY29uc3QgYmFzZURpciA9IHJlc29sdmUoaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLi8uLlwiKVxuY29uc3QgZGlyZWN0b3J5ID0gcmVsYXRpdmUoYmFzZURpciwgY29uZmlnLnJvb3QpIHx8IFwiLlwiXG5cbmZ1bmN0aW9uIHRvUGF0aChmaWxlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IG5hbWUgPSBiYXNlbmFtZShmaWxlUGF0aCkucmVwbGFjZSgvXFwuXFx3KyQvLCBcIlwiKVxuICByZXR1cm4gc2x1Z2lmeShuYW1lKVxufVxuXG5mdW5jdGlvbiBnZXRMYXN0VXBkYXRlZChmaWxlUGF0aDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gZXhlY1N5bmMoYGdpdCBsb2cgLTEgLS1mb3JtYXQ9JWNJIC0tIFwiJHtmaWxlUGF0aH1cImAsIHtcbiAgICAgIGN3ZDogY29uZmlnLnJvb3QsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIH0pLnRyaW0oKVxuICAgIHJldHVybiB0aW1lc3RhbXAgfHwgdW5kZWZpbmVkXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJpcExlYWRpbmdIMShjb250ZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXlsgXFx0XSojXFxzK1teXFxuXSpcXG4rLywgXCJcIilcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRpdGxlKGNvbnRlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL14jXFxzKyguKykkL20uZXhlYyhjb250ZW50KVxuICBpZiAobWF0Y2gpIHJldHVybiBtYXRjaFsxXSFcbiAgcmV0dXJuIChcbiAgICBwYXRoXG4gICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAucG9wKClcbiAgICAgID8ucmVwbGFjZSgvXFwuXFx3KyQvLCBcIlwiKSA/PyBwYXRoXG4gIClcbn1cblxuY29uc3QgYXJ0aWNsZXMgPSBkZWZpbmVDb2xsZWN0aW9uKHtcbiAgbmFtZTogXCJhcnRpY2xlc1wiLFxuICBkaXJlY3RvcnksXG4gIGluY2x1ZGUsXG4gIGV4Y2x1ZGU6IGNvbmZpZy5leGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb24gPz8gcGlja0RlZmF1bHRJY29uKGRvYy5fbWV0YS5wYXRoKVxuICAgIGNvbnN0IHBhdGggPSBkb2MucGF0aCA/PyB0b1BhdGgoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIC8vIFRoZSBhcnRpY2xlJ3MgaDEgaXMgcmVuZGVyZWQgZnJvbSBgdGl0bGVgIGJ5IHRoZSBsYXlvdXQsIHNvIHN0cmlwIGFueVxuICAgIC8vIGxlYWRpbmcgaDEgaW4gdGhlIGJvZHkgdG8gYXZvaWQgdHdvIGgxcyBzaWRlLWJ5LXNpZGUgKGVzcGVjaWFsbHkgd2hlblxuICAgIC8vIGEgY29udGVudCBwYXRjaCBvdmVycmlkZXMgdGhlIHRpdGxlIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGVcbiAgICAvLyBib2R5J3Mgb3duIGhlYWRpbmcpLlxuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gc3RyaXBMZWFkaW5nSDEoY29udGVudClcbiAgICBjb25zdCBtZHggPSBhd2FpdCBjb21waWxlTURYKFxuICAgICAgY29udGV4dCxcbiAgICAgIHsgLi4uZG9jLCBjb250ZW50OiBib2R5Q29udGVudCB9LFxuICAgICAge1xuICAgICAgICByZW1hcmtQbHVnaW5zOiBbXG4gICAgICAgICAgcmVtYXJrR2ZtLFxuICAgICAgICAgIHJlbWFya0dlbW9qaSxcbiAgICAgICAgICByZW1hcmtEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICByZW1hcmtEZWZsaXN0LFxuICAgICAgICAgIHJlbWFya01hdGgsXG4gICAgICAgICAgcmVtYXJrRGlyZWN0aXZlLFxuICAgICAgICAgIHJlbWFya0NhbGxvdXQsXG4gICAgICAgICAgcmVtYXJrQ2FyZCxcbiAgICAgICAgICByZW1hcmtDb2x1bW5zLFxuICAgICAgICAgIHJlbWFya1RhYixcbiAgICAgICAgICByZW1hcmtEZXRhaWxzLFxuICAgICAgICAgIHJlbWFya0ZpbGV0cmVlLFxuICAgICAgICAgIHJlbWFya0ljb24sXG4gICAgICAgICAgcmVtYXJrQmFkZ2UsXG4gICAgICAgICAgcmVtYXJrQnV0dG9uLFxuICAgICAgICAgIHJlbWFya0FiYnIsXG4gICAgICAgICAgcmVtYXJrR2l0aHViQ2FsbG91dCxcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZW1hcmtJbWFnZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlc29sdmUoY29uZmlnLnJvb3QsIGRvYy5fbWV0YS5maWxlUGF0aCksXG4gICAgICAgICAgICAgIHJvb3Q6IGNvbmZpZy5yb290LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlbWFya0Fuc2ksXG4gICAgICAgICAgcmVtYXJrTWVybWFpZCxcbiAgICAgICAgICByZW1hcmtNZWRpYSxcbiAgICAgICAgICByZW1hcmtUb2MsXG4gICAgICAgICAgcmVtYXJrTnBtLFxuICAgICAgICAgIHJlbWFya0NvZGVUYWJzLFxuICAgICAgICAgIHJlbWFya1N0ZXBzLFxuICAgICAgICAgIHJlbWFya0N1c3RvbUhlYWRpbmdJZCxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXh0cmFjdFNlYXJjaFRleHQoY29udGVudClcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IGdldExhc3RVcGRhdGVkKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBpbWFnZSA9IGRvYy5pbWFnZVxuICAgICAgPyByZXNvbHZlQXNzZXRQYXRoKGRvYy5pbWFnZSwgZmlsZVBhdGgsIGNvbmZpZy5yb290KVxuICAgICAgOiB1bmRlZmluZWRcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZG9jLFxuICAgICAgZmlsZTogZG9jLl9tZXRhLmZpbGVQYXRoLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBpbWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgaWNvbixcbiAgICAgIHBhdGgsXG4gICAgICB0b2NJdGVtcyxcbiAgICAgIHNlYXJjaFRleHQsXG4gICAgICBtZHgsXG4gICAgfVxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciB0c2dvIHBpY2tzIHdyb25nIG92ZXJsb2FkIHdoZW4gcmVoeXBlLXNsdWcgYXVnbWVudHMgdW5pZmllZCB0eXBlc1xuICBjb250ZW50OiBbYXJ0aWNsZXNdLFxufSlcbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzNELE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8scUJBQXFCLE1BQU0sdUNBQXVDLENBQUE7QUFDekUsT0FBTyxFQUFF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Im5vZGU6Y2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgeyBiYXNlbmFtZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHsgcGlja0RlZmF1bHRJY29uIH0gZnJvbSBcIi4vaGVscGVycy9hcnRpY2xlLWljb24udHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7IHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstcGFzc3Rocm91Z2gtZGlyZWN0aXZlLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPVxuICBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKVxuICA/IGNvbmZpZy5pbmNsdWRlXG4gIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IGNoYW5nZWxvZ1NlY3Rpb25zLmxlbmd0aFxuICA/IFsuLi5jb25maWdJbmNsdWRlLCBjYWNoZUluY2x1ZGVHbG9iKCldXG4gIDogY29uZmlnSW5jbHVkZVxuXG4vLyBjb250ZW50LWNvbGxlY3Rpb25zIGNvbXBpbGVzIHRoaXMgZmlsZSB0byAuY29udGVudC1jb2xsZWN0aW9ucy9jYWNoZS87XG4vLyBnb2luZyB1cCAyIGxldmVscyByZWNvbnN0cnVjdHMgdGhlIGJhc2VEaXJlY3RvcnkgaXQgdXNlcyBmb3IgcGF0aCByZXNvbHV0aW9uXG5jb25zdCBiYXNlRGlyID0gcmVzb2x2ZShpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uLy4uXCIpXG5jb25zdCBkaXJlY3RvcnkgPSByZWxhdGl2ZShiYXNlRGlyLCBjb25maWcucm9vdCkgfHwgXCIuXCJcblxuZnVuY3Rpb24gdG9QYXRoKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZSA9IGJhc2VuYW1lKGZpbGVQYXRoKS5yZXBsYWNlKC9cXC5cXHcrJC8sIFwiXCIpXG4gIHJldHVybiBzbHVnaWZ5KG5hbWUpXG59XG5cbmZ1bmN0aW9uIGdldExhc3RVcGRhdGVkKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBleGVjU3luYyhgZ2l0IGxvZyAtMSAtLWZvcm1hdD0lY0kgLS0gXCIke2ZpbGVQYXRofVwiYCwge1xuICAgICAgY3dkOiBjb25maWcucm9vdCxcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgfSkudHJpbSgpXG4gICAgcmV0dXJuIHRpbWVzdGFtcCB8fCB1bmRlZmluZWRcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG5cbmZ1bmN0aW9uIHN0cmlwTGVhZGluZ0gxKGNvbnRlbnQ6IHN0cmluZykge1xuICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9eWyBcXHRdKiNcXHMrW15cXG5dKlxcbisvLCBcIlwiKVxufVxuXG5mdW5jdGlvbiBleHRyYWN0VGl0bGUoY29udGVudDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSAvXiNcXHMrKC4rKSQvbS5leGVjKGNvbnRlbnQpXG4gIGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoWzFdIVxuICByZXR1cm4gKFxuICAgIHBhdGhcbiAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgIC5wb3AoKVxuICAgICAgPy5yZXBsYWNlKC9cXC5cXHcrJC8sIFwiXCIpID8/IHBhdGhcbiAgKVxufVxuXG5jb25zdCBhcnRpY2xlcyA9IGRlZmluZUNvbGxlY3Rpb24oe1xuICBuYW1lOiBcImFydGljbGVzXCIsXG4gIGRpcmVjdG9yeSxcbiAgaW5jbHVkZSxcbiAgZXhjbHVkZTogY29uZmlnLmV4Y2x1ZGUsXG4gIHNjaGVtYTogQXJ0aWNsZSxcbiAgdHJhbnNmb3JtOiBhc3luYyAoZG9jdW1lbnQsIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBwYXRjaCA9IGNvbmZpZy5wYXRjaGVzPy5maW5kKHAgPT4gcC5maWxlID09PSBkb2N1bWVudC5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBkb2MgPSBwYXRjaCA/IHsgLi4uZG9jdW1lbnQsIC4uLnBhdGNoLmFydGljbGUgfSA6IGRvY3VtZW50XG4gICAgY29uc3QgZmlsZVBhdGggPSByZXNvbHZlKGNvbmZpZy5yb290LCBkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgY29udGVudCA9IHJlc29sdmVJbmNsdWRlcyhkb2MuY29udGVudCwgZmlsZVBhdGgpXG4gICAgY29uc3QgdGl0bGUgPSBkb2MudGl0bGUgPz8gZXh0cmFjdFRpdGxlKGNvbnRlbnQsIGRvYy5fbWV0YS5wYXRoKVxuICAgIGNvbnN0IGljb24gPSBkb2MuaWNvbiA/PyBwaWNrRGVmYXVsdEljb24oZG9jLl9tZXRhLnBhdGgpXG4gICAgY29uc3QgcGF0aCA9IGRvYy5wYXRoID8/IHRvUGF0aChkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgLy8gVGhlIGFydGljbGUncyBoMSBpcyByZW5kZXJlZCBmcm9tIGB0aXRsZWAgYnkgdGhlIGxheW91dCwgc28gc3RyaXAgYW55XG4gICAgLy8gbGVhZGluZyBoMSBpbiB0aGUgYm9keSB0byBhdm9pZCB0d28gaDFzIHNpZGUtYnktc2lkZSAoZXNwZWNpYWxseSB3aGVuXG4gICAgLy8gYSBjb250ZW50IHBhdGNoIG92ZXJyaWRlcyB0aGUgdGl0bGUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZVxuICAgIC8vIGJvZHkncyBvd24gaGVhZGluZykuXG4gICAgY29uc3QgYm9keUNvbnRlbnQgPSBzdHJpcExlYWRpbmdIMShjb250ZW50KVxuICAgIGNvbnN0IG1keCA9IGF3YWl0IGNvbXBpbGVNRFgoXG4gICAgICBjb250ZXh0LFxuICAgICAgeyAuLi5kb2MsIGNvbnRlbnQ6IGJvZHlDb250ZW50IH0sXG4gICAgICB7XG4gICAgICAgIHJlbWFya1BsdWdpbnM6IFtcbiAgICAgICAgICByZW1hcmtHZm0sXG4gICAgICAgICAgcmVtYXJrR2Vtb2ppLFxuICAgICAgICAgIHJlbWFya0RlZmluaXRpb25MaXN0LFxuICAgICAgICAgIHJlbWFya0RlZmxpc3QsXG4gICAgICAgICAgcmVtYXJrTWF0aCxcbiAgICAgICAgICByZW1hcmtEaXJlY3RpdmUsXG4gICAgICAgICAgcmVtYXJrQ2FsbG91dCxcbiAgICAgICAgICByZW1hcmtDYXJkLFxuICAgICAgICAgIHJlbWFya0NvbHVtbnMsXG4gICAgICAgICAgcmVtYXJrVGFiLFxuICAgICAgICAgIHJlbWFya0RldGFpbHMsXG4gICAgICAgICAgcmVtYXJrRmlsZXRyZWUsXG4gICAgICAgICAgcmVtYXJrSWNvbixcbiAgICAgICAgICByZW1hcmtCYWRnZSxcbiAgICAgICAgICByZW1hcmtCdXR0b24sXG4gICAgICAgICAgcmVtYXJrQWJicixcbiAgICAgICAgICByZW1hcmtHaXRodWJDYWxsb3V0LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlbWFya0ltYWdlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWxlUGF0aDogcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKSxcbiAgICAgICAgICAgICAgcm9vdDogY29uZmlnLnJvb3QsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVtYXJrQW5zaSxcbiAgICAgICAgICByZW1hcmtNZXJtYWlkLFxuICAgICAgICAgIHJlbWFya01lZGlhLFxuICAgICAgICAgIHJlbWFya1RvYyxcbiAgICAgICAgICByZW1hcmtOcG0sXG4gICAgICAgICAgcmVtYXJrQ29kZVRhYnMsXG4gICAgICAgICAgcmVtYXJrU3RlcHMsXG4gICAgICAgICAgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkLFxuICAgICAgICAgIC8vIFJ1biBsYXN0OiBhbnl0aGluZyBzdGlsbCB0eXBlZCBhcyBhIGRpcmVjdGl2ZSBhZnRlciBldmVyeSBoYW5kbGVyXG4gICAgICAgICAgLy8gYWJvdmUgaXMgdW5pbnRlbmRlZCAoZS5nLiBgMy4yOjFgLCBgcG9ydDo4MDgwYCkg4oCUIHBhc3N0aHJvdWdoIGFzXG4gICAgICAgICAgLy8gcGxhaW4gdGV4dCBzbyBpdCBkb2Vzbid0IHJlbmRlciBhcyBhbiBlbXB0eSBzcGFuL2Rpdi5cbiAgICAgICAgICByZW1hcmtQYXNzdGhyb3VnaERpcmVjdGl2ZSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXh0cmFjdFNlYXJjaFRleHQoY29udGVudClcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IGdldExhc3RVcGRhdGVkKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBpbWFnZSA9IGRvYy5pbWFnZVxuICAgICAgPyByZXNvbHZlQXNzZXRQYXRoKGRvYy5pbWFnZSwgZmlsZVBhdGgsIGNvbmZpZy5yb290KVxuICAgICAgOiB1bmRlZmluZWRcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZG9jLFxuICAgICAgZmlsZTogZG9jLl9tZXRhLmZpbGVQYXRoLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBpbWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgaWNvbixcbiAgICAgIHBhdGgsXG4gICAgICB0b2NJdGVtcyxcbiAgICAgIHNlYXJjaFRleHQsXG4gICAgICBtZHgsXG4gICAgfVxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciB0c2dvIHBpY2tzIHdyb25nIG92ZXJsb2FkIHdoZW4gcmVoeXBlLXNsdWcgYXVnbWVudHMgdW5pZmllZCB0eXBlc1xuICBjb250ZW50OiBbYXJ0aWNsZXNdLFxufSlcbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/** Resolve a Lucide icon by kebab-case name, falling back to FileText. */
|
|
2
|
+
export declare function resolveArticleIcon(name: string): import("react").ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
2
3
|
/** Deterministic icon name based on article path */
|
|
3
4
|
export declare function pickDefaultIcon(path: string): string;
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import { FileText, icons } from "lucide-react";
|
|
2
|
+
/** Resolve a Lucide icon by kebab-case name, falling back to FileText. */
|
|
3
|
+
export function resolveArticleIcon(name) {
|
|
4
|
+
const key = toPascalCase(name);
|
|
5
|
+
return key in icons ? icons[key] : FileText;
|
|
6
|
+
}
|
|
7
|
+
/** Curated set of icons used as default fallbacks for articles without one. */
|
|
8
|
+
const defaultIconNames = [
|
|
9
|
+
"binary",
|
|
10
|
+
"blocks",
|
|
11
|
+
"brain-circuit",
|
|
12
|
+
"bug",
|
|
13
|
+
"cloud",
|
|
14
|
+
"code",
|
|
15
|
+
"cpu",
|
|
16
|
+
"database",
|
|
17
|
+
"file-code",
|
|
18
|
+
"git-branch",
|
|
19
|
+
"globe",
|
|
20
|
+
"hard-drive",
|
|
21
|
+
"layers",
|
|
22
|
+
"network",
|
|
23
|
+
"rocket",
|
|
24
|
+
"server",
|
|
25
|
+
"shield",
|
|
26
|
+
"sliders-horizontal",
|
|
27
|
+
"terminal",
|
|
28
|
+
"webhook",
|
|
29
|
+
"zap",
|
|
30
|
+
];
|
|
26
31
|
/** Deterministic icon name based on article path */
|
|
27
32
|
export function pickDefaultIcon(path) {
|
|
28
33
|
let hash = 0;
|
|
@@ -31,4 +36,10 @@ export function pickDefaultIcon(path) {
|
|
|
31
36
|
}
|
|
32
37
|
return defaultIconNames[Math.abs(hash) % defaultIconNames.length];
|
|
33
38
|
}
|
|
34
|
-
|
|
39
|
+
function toPascalCase(name) {
|
|
40
|
+
return name
|
|
41
|
+
.split("-")
|
|
42
|
+
.map(s => s.charAt(0).toUpperCase() + s.slice(1))
|
|
43
|
+
.join("");
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS1pY29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTlDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7QUFDbkUsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLFFBQVE7SUFDUixRQUFRO0lBQ1IsZUFBZTtJQUNmLEtBQUs7SUFDTCxPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxVQUFVO0lBQ1YsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsWUFBWTtJQUNaLFFBQVE7SUFDUixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1Isb0JBQW9CO0lBQ3BCLFVBQVU7SUFDVixTQUFTO0lBQ1QsS0FBSztDQUNOLENBQUE7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFDRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFFLENBQUE7QUFDcEUsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDaEMsT0FBTyxJQUFJO1NBQ1IsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZVRleHQsIGljb25zIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbi8qKiBSZXNvbHZlIGEgTHVjaWRlIGljb24gYnkga2ViYWItY2FzZSBuYW1lLCBmYWxsaW5nIGJhY2sgdG8gRmlsZVRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFydGljbGVJY29uKG5hbWU6IHN0cmluZykge1xuICBjb25zdCBrZXkgPSB0b1Bhc2NhbENhc2UobmFtZSlcbiAgcmV0dXJuIGtleSBpbiBpY29ucyA/IGljb25zW2tleSBhcyBrZXlvZiB0eXBlb2YgaWNvbnNdIDogRmlsZVRleHRcbn1cblxuLyoqIEN1cmF0ZWQgc2V0IG9mIGljb25zIHVzZWQgYXMgZGVmYXVsdCBmYWxsYmFja3MgZm9yIGFydGljbGVzIHdpdGhvdXQgb25lLiAqL1xuY29uc3QgZGVmYXVsdEljb25OYW1lcyA9IFtcbiAgXCJiaW5hcnlcIixcbiAgXCJibG9ja3NcIixcbiAgXCJicmFpbi1jaXJjdWl0XCIsXG4gIFwiYnVnXCIsXG4gIFwiY2xvdWRcIixcbiAgXCJjb2RlXCIsXG4gIFwiY3B1XCIsXG4gIFwiZGF0YWJhc2VcIixcbiAgXCJmaWxlLWNvZGVcIixcbiAgXCJnaXQtYnJhbmNoXCIsXG4gIFwiZ2xvYmVcIixcbiAgXCJoYXJkLWRyaXZlXCIsXG4gIFwibGF5ZXJzXCIsXG4gIFwibmV0d29ya1wiLFxuICBcInJvY2tldFwiLFxuICBcInNlcnZlclwiLFxuICBcInNoaWVsZFwiLFxuICBcInNsaWRlcnMtaG9yaXpvbnRhbFwiLFxuICBcInRlcm1pbmFsXCIsXG4gIFwid2ViaG9va1wiLFxuICBcInphcFwiLFxuXVxuXG4vKiogRGV0ZXJtaW5pc3RpYyBpY29uIG5hbWUgYmFzZWQgb24gYXJ0aWNsZSBwYXRoICovXG5leHBvcnQgZnVuY3Rpb24gcGlja0RlZmF1bHRJY29uKHBhdGg6IHN0cmluZykge1xuICBsZXQgaGFzaCA9IDBcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgaGFzaCA9IChoYXNoICogMzEgKyBwYXRoLmNoYXJDb2RlQXQoaSkpIHwgMFxuICB9XG4gIHJldHVybiBkZWZhdWx0SWNvbk5hbWVzW01hdGguYWJzKGhhc2gpICUgZGVmYXVsdEljb25OYW1lcy5sZW5ndGhdIVxufVxuXG5mdW5jdGlvbiB0b1Bhc2NhbENhc2UobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBuYW1lXG4gICAgLnNwbGl0KFwiLVwiKVxuICAgIC5tYXAocyA9PiBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSlcbiAgICAuam9pbihcIlwiKVxufVxuIl19
|
|
@@ -9,7 +9,7 @@ export declare const UserConfig: z.ZodObject<{
|
|
|
9
9
|
logo: z.ZodOptional<z.ZodString>;
|
|
10
10
|
title: z.ZodDefault<z.ZodString>;
|
|
11
11
|
description: z.ZodDefault<z.ZodString>;
|
|
12
|
-
include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]
|
|
12
|
+
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
13
13
|
exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
14
14
|
codeThemeLight: z.ZodDefault<z.ZodEnum<{
|
|
15
15
|
"ayu-light": "ayu-light";
|
|
@@ -211,7 +211,7 @@ export declare const Config: z.ZodObject<{
|
|
|
211
211
|
logo: z.ZodOptional<z.ZodString>;
|
|
212
212
|
title: z.ZodDefault<z.ZodString>;
|
|
213
213
|
description: z.ZodDefault<z.ZodString>;
|
|
214
|
-
include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]
|
|
214
|
+
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
215
215
|
exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
216
216
|
codeThemeLight: z.ZodDefault<z.ZodEnum<{
|
|
217
217
|
"ayu-light": "ayu-light";
|
package/target/models/config.js
CHANGED
|
@@ -9,7 +9,7 @@ export const UserConfig = z.object({
|
|
|
9
9
|
logo: z.string().optional(),
|
|
10
10
|
title: z.string().default("Livemark"),
|
|
11
11
|
description: z.string().default("Markdown site generator"),
|
|
12
|
-
include: z.union([z.string(), z.array(z.string())]),
|
|
12
|
+
include: z.union([z.string(), z.array(z.string())]).default("**/*.md"),
|
|
13
13
|
exclude: z.union([z.string(), z.array(z.string())]).optional(),
|
|
14
14
|
codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
|
|
15
15
|
codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
|
|
@@ -31,4 +31,4 @@ export const SystemConfig = z.object({
|
|
|
31
31
|
configPath: z.string(),
|
|
32
32
|
});
|
|
33
33
|
export const Config = UserConfig.merge(SystemConfig);
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU0xRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDckMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUQsY0FBYyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDMUQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDeEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9CLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbkMsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDM0MsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsSUFBSTtJQUNqQixJQUFJLEVBQUUsSUFBSTtJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4vbGluay50c1wiXG5pbXBvcnQgeyBQYXRjaCB9IGZyb20gXCIuL3BhdGNoLnRzXCJcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9zZWN0aW9uLnRzXCJcbmltcG9ydCB7IENvZGVUaGVtZURhcmssIENvZGVUaGVtZUxpZ2h0IH0gZnJvbSBcIi4vdGhlbWUudHNcIlxuXG4vKipcbiAqIFVzZXItcHJvdmlkZWQgY29uZmlndXJhdGlvbiBmb3IgTGl2ZW1hcmsuXG4gKi9cbmV4cG9ydCB0eXBlIFVzZXJDb25maWcgPSB6LmluZmVyPHR5cGVvZiBVc2VyQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFVzZXJDb25maWcgPSB6Lm9iamVjdCh7XG4gIHNpdGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmF2aWNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBsb2dvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRpdGxlOiB6LnN0cmluZygpLmRlZmF1bHQoXCJMaXZlbWFya1wiKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkuZGVmYXVsdChcIk1hcmtkb3duIHNpdGUgZ2VuZXJhdG9yXCIpLFxuICBpbmNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkuZGVmYXVsdChcIioqLyoubWRcIiksXG4gIGV4Y2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKS5vcHRpb25hbCgpLFxuICBjb2RlVGhlbWVMaWdodDogQ29kZVRoZW1lTGlnaHQuZGVmYXVsdChcImNhdHBwdWNjaW4tbGF0dGVcIiksXG4gIGNvZGVUaGVtZURhcms6IENvZGVUaGVtZURhcmsuZGVmYXVsdChcImNhdHBwdWNjaW4tbW9jaGFcIiksXG4gIGxpbmtzOiB6LmFycmF5KExpbmspLm9wdGlvbmFsKCksXG4gIHNlY3Rpb25zOiB6LmFycmF5KFNlY3Rpb24pLm9wdGlvbmFsKCksXG4gIHBhdGNoZXM6IHouYXJyYXkoUGF0Y2gpLm9wdGlvbmFsKCksXG59KVxuXG4vKiogV2Vic2l0ZSBjb25maWd1cmF0aW9uIGluamVjdGVkIGF0IGJ1aWxkIHRpbWUgdmlhIFZpdGUgZGVmaW5lICovXG5leHBvcnQgdHlwZSBXZWJzaXRlQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgV2Vic2l0ZUNvbmZpZz5cbmV4cG9ydCBjb25zdCBXZWJzaXRlQ29uZmlnID0gVXNlckNvbmZpZy5waWNrKHtcbiAgdGl0bGU6IHRydWUsXG4gIGRlc2NyaXB0aW9uOiB0cnVlLFxuICBzaXRlOiB0cnVlLFxuICBmYXZpY29uOiB0cnVlLFxuICBsb2dvOiB0cnVlLFxuICBsaW5rczogdHJ1ZSxcbiAgc2VjdGlvbnM6IHRydWUsXG59KVxuXG4vKipcbiAqIFN5c3RlbS1jb21wdXRlZCBjb25maWd1cmF0aW9uIGRlcml2ZWQgZnJvbSB0aGUgY29uZmlnIGZpbGUgbG9jYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN5c3RlbUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIFN5c3RlbUNvbmZpZz5cbmV4cG9ydCBjb25zdCBTeXN0ZW1Db25maWcgPSB6Lm9iamVjdCh7XG4gIHJvb3Q6IHouc3RyaW5nKCksXG4gIGNvbmZpZ1BhdGg6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEZ1bGx5IHJlc29sdmVkIExpdmVtYXJrIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHouaW5mZXI8dHlwZW9mIENvbmZpZz5cbmV4cG9ydCBjb25zdCBDb25maWcgPSBVc2VyQ29uZmlnLm1lcmdlKFN5c3RlbUNvbmZpZylcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Root } from "mdast";
|
|
2
|
+
import type { Plugin } from "unified";
|
|
3
|
+
/** Convert any remaining `:name`, `::name`, `:::name` directive nodes back to
|
|
4
|
+
* plain text after the directive-handling plugins have run.
|
|
5
|
+
*
|
|
6
|
+
* `remark-directive` parses anything matching `:[a-zA-Z0-9-]+` as a directive,
|
|
7
|
+
* including patterns like `3.2:1` or `port:8080` that weren't meant as
|
|
8
|
+
* directives at all. Without this pass, the leftover nodes render as empty
|
|
9
|
+
* `<span>`/`<div>` elements (because remark-rehype's default for unknown
|
|
10
|
+
* directive nodes drops the surrounding text). */
|
|
11
|
+
export declare const remarkPassthroughDirective: Plugin<[], Root>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SKIP, visit } from "unist-util-visit";
|
|
2
|
+
/** Convert any remaining `:name`, `::name`, `:::name` directive nodes back to
|
|
3
|
+
* plain text after the directive-handling plugins have run.
|
|
4
|
+
*
|
|
5
|
+
* `remark-directive` parses anything matching `:[a-zA-Z0-9-]+` as a directive,
|
|
6
|
+
* including patterns like `3.2:1` or `port:8080` that weren't meant as
|
|
7
|
+
* directives at all. Without this pass, the leftover nodes render as empty
|
|
8
|
+
* `<span>`/`<div>` elements (because remark-rehype's default for unknown
|
|
9
|
+
* directive nodes drops the surrounding text). */
|
|
10
|
+
export const remarkPassthroughDirective = () => {
|
|
11
|
+
return tree => {
|
|
12
|
+
visit(tree, (node, index, parent) => {
|
|
13
|
+
if (index === undefined ||
|
|
14
|
+
!parent ||
|
|
15
|
+
(node.type !== "textDirective" &&
|
|
16
|
+
node.type !== "leafDirective" &&
|
|
17
|
+
node.type !== "containerDirective"))
|
|
18
|
+
return;
|
|
19
|
+
const directive = node;
|
|
20
|
+
const prefix = directive.type === "containerDirective"
|
|
21
|
+
? ":::"
|
|
22
|
+
: directive.type === "leafDirective"
|
|
23
|
+
? "::"
|
|
24
|
+
: ":";
|
|
25
|
+
const text = {
|
|
26
|
+
type: "text",
|
|
27
|
+
value: `${prefix}${directive.name}`,
|
|
28
|
+
};
|
|
29
|
+
parent.children.splice(index, 1, text);
|
|
30
|
+
return [SKIP, index + 1];
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtYXJrLXBhc3N0aHJvdWdoLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wbHVnaW5zL3JlbWFyay1wYXNzdGhyb3VnaC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUk5Qzs7Ozs7OzttREFPbUQ7QUFDbkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXFCLEdBQUcsRUFBRTtJQUMvRCxPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ1osS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFDRSxLQUFLLEtBQUssU0FBUztnQkFDbkIsQ0FBQyxNQUFNO2dCQUNQLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlO29CQUM1QixJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWU7b0JBQzdCLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUM7Z0JBRXJDLE9BQU07WUFDUixNQUFNLFNBQVMsR0FBRyxJQUFpQixDQUFBO1lBQ25DLE1BQU0sTUFBTSxHQUNWLFNBQVMsQ0FBQyxJQUFJLEtBQUssb0JBQW9CO2dCQUNyQyxDQUFDLENBQUMsS0FBSztnQkFDUCxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxlQUFlO29CQUNsQyxDQUFDLENBQUMsSUFBSTtvQkFDTixDQUFDLENBQUMsR0FBRyxDQUFBO1lBQ1gsTUFBTSxJQUFJLEdBQVM7Z0JBQ2pCLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFO2FBQ3BDLENBQUE7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDb250YWluZXJEaXJlY3RpdmUsXG4gIExlYWZEaXJlY3RpdmUsXG4gIFRleHREaXJlY3RpdmUsXG59IGZyb20gXCJtZGFzdC11dGlsLWRpcmVjdGl2ZVwiXG5pbXBvcnQgdHlwZSB7IFJvb3QsIFRleHQgfSBmcm9tIFwibWRhc3RcIlxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwidW5pZmllZFwiXG5pbXBvcnQgeyBTS0lQLCB2aXNpdCB9IGZyb20gXCJ1bmlzdC11dGlsLXZpc2l0XCJcblxudHlwZSBEaXJlY3RpdmUgPSBUZXh0RGlyZWN0aXZlIHwgTGVhZkRpcmVjdGl2ZSB8IENvbnRhaW5lckRpcmVjdGl2ZVxuXG4vKiogQ29udmVydCBhbnkgcmVtYWluaW5nIGA6bmFtZWAsIGA6Om5hbWVgLCBgOjo6bmFtZWAgZGlyZWN0aXZlIG5vZGVzIGJhY2sgdG9cbiAqICBwbGFpbiB0ZXh0IGFmdGVyIHRoZSBkaXJlY3RpdmUtaGFuZGxpbmcgcGx1Z2lucyBoYXZlIHJ1bi5cbiAqXG4gKiAgYHJlbWFyay1kaXJlY3RpdmVgIHBhcnNlcyBhbnl0aGluZyBtYXRjaGluZyBgOlthLXpBLVowLTktXStgIGFzIGEgZGlyZWN0aXZlLFxuICogIGluY2x1ZGluZyBwYXR0ZXJucyBsaWtlIGAzLjI6MWAgb3IgYHBvcnQ6ODA4MGAgdGhhdCB3ZXJlbid0IG1lYW50IGFzXG4gKiAgZGlyZWN0aXZlcyBhdCBhbGwuIFdpdGhvdXQgdGhpcyBwYXNzLCB0aGUgbGVmdG92ZXIgbm9kZXMgcmVuZGVyIGFzIGVtcHR5XG4gKiAgYDxzcGFuPmAvYDxkaXY+YCBlbGVtZW50cyAoYmVjYXVzZSByZW1hcmstcmVoeXBlJ3MgZGVmYXVsdCBmb3IgdW5rbm93blxuICogIGRpcmVjdGl2ZSBub2RlcyBkcm9wcyB0aGUgc3Vycm91bmRpbmcgdGV4dCkuICovXG5leHBvcnQgY29uc3QgcmVtYXJrUGFzc3Rocm91Z2hEaXJlY3RpdmU6IFBsdWdpbjxbXSwgUm9vdD4gPSAoKSA9PiB7XG4gIHJldHVybiB0cmVlID0+IHtcbiAgICB2aXNpdCh0cmVlLCAobm9kZSwgaW5kZXgsIHBhcmVudCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBpbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICFwYXJlbnQgfHxcbiAgICAgICAgKG5vZGUudHlwZSAhPT0gXCJ0ZXh0RGlyZWN0aXZlXCIgJiZcbiAgICAgICAgICBub2RlLnR5cGUgIT09IFwibGVhZkRpcmVjdGl2ZVwiICYmXG4gICAgICAgICAgbm9kZS50eXBlICE9PSBcImNvbnRhaW5lckRpcmVjdGl2ZVwiKVxuICAgICAgKVxuICAgICAgICByZXR1cm5cbiAgICAgIGNvbnN0IGRpcmVjdGl2ZSA9IG5vZGUgYXMgRGlyZWN0aXZlXG4gICAgICBjb25zdCBwcmVmaXggPVxuICAgICAgICBkaXJlY3RpdmUudHlwZSA9PT0gXCJjb250YWluZXJEaXJlY3RpdmVcIlxuICAgICAgICAgID8gXCI6OjpcIlxuICAgICAgICAgIDogZGlyZWN0aXZlLnR5cGUgPT09IFwibGVhZkRpcmVjdGl2ZVwiXG4gICAgICAgICAgICA/IFwiOjpcIlxuICAgICAgICAgICAgOiBcIjpcIlxuICAgICAgY29uc3QgdGV4dDogVGV4dCA9IHtcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBgJHtwcmVmaXh9JHtkaXJlY3RpdmUubmFtZX1gLFxuICAgICAgfVxuICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSwgdGV4dClcbiAgICAgIHJldHVybiBbU0tJUCwgaW5kZXggKyAxXVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
package/target/vite.config.js
CHANGED
|
@@ -25,10 +25,13 @@ if (!existsSync(gitignorePath)) {
|
|
|
25
25
|
}
|
|
26
26
|
const routeChildren = [route("/$", "$.tsx")];
|
|
27
27
|
if (existsSync(join(overridesRoot, "routes"))) {
|
|
28
|
-
// physical() resolves
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
|
|
28
|
+
// physical(dir) resolves `dir` relative to the routes directory
|
|
29
|
+
// (`srcDirectory/routes`). A hardcoded "../../.livemark/routes" only
|
|
30
|
+
// works when source/ sits one level under config.root — it lands at
|
|
31
|
+
// node_modules/.livemark/routes once livemark is installed. Compute
|
|
32
|
+
// the path dynamically from the consumer's actual layout.
|
|
33
|
+
const routesDir = join(sourceDir, "routes");
|
|
34
|
+
routeChildren.push(physical(relative(routesDir, join(overridesRoot, "routes"))));
|
|
32
35
|
}
|
|
33
36
|
export default defineConfig({
|
|
34
37
|
root: config.root,
|
|
@@ -64,4 +67,4 @@ export default defineConfig({
|
|
|
64
67
|
svgr(),
|
|
65
68
|
],
|
|
66
69
|
});
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxnRUFBZ0U7SUFDaEUscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsMERBQTBEO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDM0MsYUFBYSxDQUFDLElBQUksQ0FDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUE7QUFDSCxDQUFDO0FBRUQsZUFBZSxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ25ELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtJQUNwQyxNQUFNLEVBQUU7UUFDTix3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEU7SUFDRCxPQUFPLEVBQUU7UUFDUCxRQUFRLENBQUM7WUFDUCxZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhO1lBQ2IsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDOUIsQ0FBQztRQUNGLFFBQVEsRUFBRTtRQUNWLFFBQVEsRUFBRTtRQUNWLGtCQUFrQixDQUFDO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLHdCQUF3QixDQUFDO1NBQzNELENBQUM7UUFDRixhQUFhLENBQUM7WUFDWixZQUFZLEVBQUUsY0FBYztZQUM1QixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN0QixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDOUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNsQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUN0QyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3RCLE1BQU0sRUFBRTtnQkFDTixrQkFBa0IsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzthQUMzRDtTQUNGLENBQUM7UUFDRixLQUFLLEVBQUU7UUFDUCxJQUFJLEVBQUU7S0FDUDtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIG1rZGlyU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgY29udGVudENvbGxlY3Rpb25zIGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy92aXRlXCJcbmltcG9ydCB0YWlsd2luZCBmcm9tIFwiQHRhaWx3aW5kY3NzL3ZpdGVcIlxuaW1wb3J0IHsgZGV2dG9vbHMgfSBmcm9tIFwiQHRhbnN0YWNrL2RldnRvb2xzLXZpdGVcIlxuaW1wb3J0IHsgdGFuc3RhY2tTdGFydCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtc3RhcnQvcGx1Z2luL3ZpdGVcIlxuaW1wb3J0IHtcbiAgcGh5c2ljYWwsXG4gIHJvb3RSb3V0ZSxcbiAgcm91dGUsXG4gIHR5cGUgVmlydHVhbFJvdXRlTm9kZSxcbn0gZnJvbSBcIkB0YW5zdGFjay92aXJ0dWFsLWZpbGUtcm91dGVzXCJcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3RcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IHN2Z3IgZnJvbSBcInZpdGUtcGx1Z2luLXN2Z3JcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgV2Vic2l0ZUNvbmZpZyB9IGZyb20gXCIuL21vZGVscy9jb25maWcudHNcIlxuaW1wb3J0IHsgT1ZFUlJJREVfU1VCRElSUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGxpdmVtYXJrIH0gZnJvbSBcIi4vcGx1Z2lucy92aXRlLWxpdmVtYXJrLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5jb25zdCBzb3VyY2VEaXIgPSBpbXBvcnQubWV0YS5kaXJuYW1lXG5jb25zdCBzb3VyY2VSZWxhdGl2ZSA9IHJlbGF0aXZlKGNvbmZpZy5yb290LCBzb3VyY2VEaXIpXG5jb25zdCBvdmVycmlkZXNSb290ID0gam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIilcblxuLy8gU2VlZCBgLmxpdmVtYXJrLy5naXRpZ25vcmVgIG9uIGZpcnN0IHJ1biBzbyBWaXRlJ3MgYnVpbGQvY2FjaGUgYXJ0aWZhY3RzXG4vLyBuZXZlciBnZXQgY29tbWl0dGVkIGJ5IGFjY2lkZW50LlxuY29uc3QgZ2l0aWdub3JlUGF0aCA9IGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCIuZ2l0aWdub3JlXCIpXG5pZiAoIWV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgbWtkaXJTeW5jKG92ZXJyaWRlc1Jvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gIHdyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIvYnVpbGRcXG4vY2FjaGVcXG5cIilcbn1cblxuY29uc3Qgcm91dGVDaGlsZHJlbjogVmlydHVhbFJvdXRlTm9kZVtdID0gW3JvdXRlKFwiLyRcIiwgXCIkLnRzeFwiKV1cbmlmIChleGlzdHNTeW5jKGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCJyb3V0ZXNcIikpKSB7XG4gIC8vIHBoeXNpY2FsKGRpcikgcmVzb2x2ZXMgYGRpcmAgcmVsYXRpdmUgdG8gdGhlIHJvdXRlcyBkaXJlY3RvcnlcbiAgLy8gKGBzcmNEaXJlY3Rvcnkvcm91dGVzYCkuIEEgaGFyZGNvZGVkIFwiLi4vLi4vLmxpdmVtYXJrL3JvdXRlc1wiIG9ubHlcbiAgLy8gd29ya3Mgd2hlbiBzb3VyY2UvIHNpdHMgb25lIGxldmVsIHVuZGVyIGNvbmZpZy5yb290IOKAlCBpdCBsYW5kcyBhdFxuICAvLyBub2RlX21vZHVsZXMvLmxpdmVtYXJrL3JvdXRlcyBvbmNlIGxpdmVtYXJrIGlzIGluc3RhbGxlZC4gQ29tcHV0ZVxuICAvLyB0aGUgcGF0aCBkeW5hbWljYWxseSBmcm9tIHRoZSBjb25zdW1lcidzIGFjdHVhbCBsYXlvdXQuXG4gIGNvbnN0IHJvdXRlc0RpciA9IGpvaW4oc291cmNlRGlyLCBcInJvdXRlc1wiKVxuICByb3V0ZUNoaWxkcmVuLnB1c2goXG4gICAgcGh5c2ljYWwocmVsYXRpdmUocm91dGVzRGlyLCBqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSksXG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcm9vdDogY29uZmlnLnJvb3QsXG4gIHB1YmxpY0Rpcjogam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIiwgXCJwdWJsaWNcIiksXG4gIGJ1aWxkOiB7IG91dERpcjogXCIubGl2ZW1hcmsvYnVpbGRcIiB9LFxuICBkZWZpbmU6IHtcbiAgICBcImltcG9ydC5tZXRhLmVudi5DT05GSUdcIjogSlNPTi5zdHJpbmdpZnkoV2Vic2l0ZUNvbmZpZy5wYXJzZShjb25maWcpKSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIGxpdmVtYXJrKHtcbiAgICAgIGRlZmF1bHRzUm9vdDogc291cmNlRGlyLFxuICAgICAgb3ZlcnJpZGVzUm9vdCxcbiAgICAgIHN1YmRpcnM6IFsuLi5PVkVSUklERV9TVUJESVJTXSxcbiAgICAgIGNvbmZpZ1BhdGg6IGNvbmZpZy5jb25maWdQYXRoLFxuICAgIH0pLFxuICAgIGRldnRvb2xzKCksXG4gICAgdGFpbHdpbmQoKSxcbiAgICBjb250ZW50Q29sbGVjdGlvbnMoe1xuICAgICAgY29uZmlnUGF0aDogam9pbihzb3VyY2VSZWxhdGl2ZSwgXCJjb250ZW50LWNvbGxlY3Rpb25zLnRzXCIpLFxuICAgIH0pLFxuICAgIHRhbnN0YWNrU3RhcnQoe1xuICAgICAgc3JjRGlyZWN0b3J5OiBzb3VyY2VSZWxhdGl2ZSxcbiAgICAgIHBhZ2VzOiBbeyBwYXRoOiBcIi9cIiB9XSxcbiAgICAgIHByZXJlbmRlcjogeyBlbmFibGVkOiB0cnVlLCBjcmF3bExpbmtzOiB0cnVlIH0sXG4gICAgICBzaXRlbWFwOiBjb25maWcuc2l0ZVxuICAgICAgICA/IHsgZW5hYmxlZDogdHJ1ZSwgaG9zdDogY29uZmlnLnNpdGUgfVxuICAgICAgICA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICAgIHJvdXRlcjoge1xuICAgICAgICB2aXJ0dWFsUm91dGVDb25maWc6IHJvb3RSb3V0ZShcIl9fcm9vdC50c3hcIiwgcm91dGVDaGlsZHJlbiksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJlYWN0KCksXG4gICAgc3ZncigpLFxuICBdLFxufSlcbiJdfQ==
|