livemark 0.14.0 → 0.16.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.
Files changed (54) hide show
  1. package/build/components/Layout.js +8 -2
  2. package/build/components/SidebarArticles.js +9 -9
  3. package/build/components/SidebarLinks.js +3 -2
  4. package/build/components/SidebarSections.js +8 -2
  5. package/build/components/SiteTitle.js +3 -2
  6. package/build/content/article.d.ts +10 -10
  7. package/build/content/article.js +19 -17
  8. package/build/content-collections.js +3 -2
  9. package/build/helpers/article.d.ts +1 -15
  10. package/build/helpers/article.js +1 -34
  11. package/build/helpers/prefix-url.d.ts +6 -0
  12. package/build/helpers/prefix-url.js +24 -0
  13. package/build/helpers/prefix-url.unit.d.ts +1 -0
  14. package/build/helpers/prefix-url.unit.js +45 -0
  15. package/build/helpers/resolve-asset-path.d.ts +1 -1
  16. package/build/helpers/resolve-asset-path.js +9 -5
  17. package/build/helpers/resolve-asset-path.unit.d.ts +1 -0
  18. package/build/helpers/resolve-asset-path.unit.js +34 -0
  19. package/build/helpers/section.js +2 -1
  20. package/build/models/article.d.ts +0 -9
  21. package/build/models/article.js +1 -2
  22. package/build/models/config.d.ts +39 -11
  23. package/build/models/config.js +11 -1
  24. package/build/models/patch.d.ts +0 -1
  25. package/build/models/section.d.ts +27 -6
  26. package/build/models/section.js +14 -3
  27. package/build/plugins/remark-image.d.ts +1 -0
  28. package/build/plugins/remark-image.js +3 -3
  29. package/build/plugins/vite-livemark.js +6 -1
  30. package/build/router.js +3 -1
  31. package/build/routes/__root.js +3 -2
  32. package/build/vite.config.js +18 -4
  33. package/package.json +1 -1
  34. package/source/components/Layout.tsx +17 -1
  35. package/source/components/SidebarArticles.tsx +17 -24
  36. package/source/components/SidebarLinks.tsx +2 -1
  37. package/source/components/SidebarSections.tsx +18 -1
  38. package/source/components/SiteTitle.tsx +2 -1
  39. package/source/content/article.ts +20 -26
  40. package/source/content-collections.ts +2 -1
  41. package/source/helpers/article.ts +1 -39
  42. package/source/helpers/prefix-url.ts +22 -0
  43. package/source/helpers/prefix-url.unit.ts +57 -0
  44. package/source/helpers/resolve-asset-path.ts +12 -5
  45. package/source/helpers/resolve-asset-path.unit.ts +59 -0
  46. package/source/helpers/section.ts +1 -0
  47. package/source/models/article.ts +0 -10
  48. package/source/models/config.ts +9 -0
  49. package/source/models/section.ts +16 -2
  50. package/source/plugins/remark-image.ts +3 -3
  51. package/source/plugins/vite-livemark.ts +5 -0
  52. package/source/router.tsx +2 -0
  53. package/source/routes/__root.tsx +5 -1
  54. package/source/vite.config.ts +17 -3
@@ -1,4 +1,4 @@
1
- import type { ArticleGroup, ArticleNode } from "../models/article.ts";
1
+ import type { ArticleNode } from "../models/article.ts";
2
2
  /** Build a tree from a flat sorted list of articles based on path hierarchy */
3
3
  export declare function buildArticleTree(articles: {
4
4
  path: string;
@@ -6,19 +6,5 @@ export declare function buildArticleTree(articles: {
6
6
  label?: string;
7
7
  icon: string;
8
8
  }[]): ArticleNode[];
9
- /**
10
- * Partition root nodes into sidebar sections.
11
- *
12
- * Walks root nodes in sort order. A root whose article has a `group` field
13
- * opens a new section; subsequent roots without `group` append to the current
14
- * section. Roots before the first `group` field land in a single leading
15
- * section with `name: undefined` (rendered without a label).
16
- *
17
- * `group` on non-root articles is ignored — only roots gate section boundaries.
18
- */
19
- export declare function groupArticleTree(tree: ArticleNode[], articles: {
20
- path: string;
21
- group?: string;
22
- }[]): ArticleGroup[];
23
9
  /** Depth-first flatten of an article tree into a list of paths */
24
10
  export declare function flattenArticleTree(nodes: ArticleNode[]): string[];
@@ -28,39 +28,6 @@ export function buildArticleTree(articles) {
28
28
  }
29
29
  return roots;
30
30
  }
31
- /**
32
- * Partition root nodes into sidebar sections.
33
- *
34
- * Walks root nodes in sort order. A root whose article has a `group` field
35
- * opens a new section; subsequent roots without `group` append to the current
36
- * section. Roots before the first `group` field land in a single leading
37
- * section with `name: undefined` (rendered without a label).
38
- *
39
- * `group` on non-root articles is ignored — only roots gate section boundaries.
40
- */
41
- export function groupArticleTree(tree, articles) {
42
- const groupByPathname = new Map();
43
- for (const article of articles) {
44
- groupByPathname.set(article.path, article.group);
45
- }
46
- const sections = [];
47
- let current;
48
- for (const node of tree) {
49
- const group = groupByPathname.get(node.path);
50
- if (group) {
51
- current = { name: group, nodes: [node] };
52
- sections.push(current);
53
- }
54
- else if (current) {
55
- current.nodes.push(node);
56
- }
57
- else {
58
- current = { name: undefined, nodes: [node] };
59
- sections.push(current);
60
- }
61
- }
62
- return sections;
63
- }
64
31
  /** Depth-first flatten of an article tree into a list of paths */
65
32
  export function flattenArticleTree(nodes) {
66
33
  const result = [];
@@ -70,4 +37,4 @@ export function flattenArticleTree(nodes) {
70
37
  }
71
38
  return result;
72
39
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL2FydGljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFLRztJQUVILE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFBO0lBRTlDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFBO0lBRS9CLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLElBQUk7WUFBRSxTQUFRO1FBQ25CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBRS9ELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQW1CLEVBQ25CLFFBQTRDO0lBRTVDLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFBO0lBQzdELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQW1CLEVBQUUsQ0FBQTtJQUNuQyxJQUFJLE9BQWlDLENBQUE7SUFFckMsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFBO1lBQ3hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEIsQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7WUFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQW9CO0lBQ3JELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQTtJQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcnRpY2xlR3JvdXAsIEFydGljbGVOb2RlIH0gZnJvbSBcIi4uL21vZGVscy9hcnRpY2xlLnRzXCJcblxuLyoqIEJ1aWxkIGEgdHJlZSBmcm9tIGEgZmxhdCBzb3J0ZWQgbGlzdCBvZiBhcnRpY2xlcyBiYXNlZCBvbiBwYXRoIGhpZXJhcmNoeSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQXJ0aWNsZVRyZWUoXG4gIGFydGljbGVzOiB7XG4gICAgcGF0aDogc3RyaW5nXG4gICAgdGl0bGU6IHN0cmluZ1xuICAgIGxhYmVsPzogc3RyaW5nXG4gICAgaWNvbjogc3RyaW5nXG4gIH1bXSxcbikge1xuICBjb25zdCBub2RlTWFwID0gbmV3IE1hcDxzdHJpbmcsIEFydGljbGVOb2RlPigpXG5cbiAgZm9yIChjb25zdCBhcnRpY2xlIG9mIGFydGljbGVzKSB7XG4gICAgbm9kZU1hcC5zZXQoYXJ0aWNsZS5wYXRoLCB7XG4gICAgICBwYXRoOiBhcnRpY2xlLnBhdGgsXG4gICAgICB0aXRsZTogYXJ0aWNsZS50aXRsZSxcbiAgICAgIGxhYmVsOiBhcnRpY2xlLmxhYmVsLFxuICAgICAgaWNvbjogYXJ0aWNsZS5pY29uLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCByb290czogQXJ0aWNsZU5vZGVbXSA9IFtdXG5cbiAgZm9yIChjb25zdCBhcnRpY2xlIG9mIGFydGljbGVzKSB7XG4gICAgY29uc3Qgbm9kZSA9IG5vZGVNYXAuZ2V0KGFydGljbGUucGF0aClcbiAgICBpZiAoIW5vZGUpIGNvbnRpbnVlXG4gICAgY29uc3QgdHJpbW1lZCA9IGFydGljbGUucGF0aC5yZXBsYWNlKC9cXC8kLywgXCJcIilcbiAgICBjb25zdCBsYXN0U2xhc2ggPSB0cmltbWVkLmxhc3RJbmRleE9mKFwiL1wiKVxuICAgIGNvbnN0IHBhcmVudFBhdGggPSBsYXN0U2xhc2ggPiAwID8gYCR7dHJpbW1lZC5zbGljZSgwLCBsYXN0U2xhc2gpfS9gIDogXCJcIlxuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudFBhdGggPyBub2RlTWFwLmdldChwYXJlbnRQYXRoKSA6IHVuZGVmaW5lZFxuXG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdHMucHVzaChub2RlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb290c1xufVxuXG4vKipcbiAqIFBhcnRpdGlvbiByb290IG5vZGVzIGludG8gc2lkZWJhciBzZWN0aW9ucy5cbiAqXG4gKiBXYWxrcyByb290IG5vZGVzIGluIHNvcnQgb3JkZXIuIEEgcm9vdCB3aG9zZSBhcnRpY2xlIGhhcyBhIGBncm91cGAgZmllbGRcbiAqIG9wZW5zIGEgbmV3IHNlY3Rpb247IHN1YnNlcXVlbnQgcm9vdHMgd2l0aG91dCBgZ3JvdXBgIGFwcGVuZCB0byB0aGUgY3VycmVudFxuICogc2VjdGlvbi4gUm9vdHMgYmVmb3JlIHRoZSBmaXJzdCBgZ3JvdXBgIGZpZWxkIGxhbmQgaW4gYSBzaW5nbGUgbGVhZGluZ1xuICogc2VjdGlvbiB3aXRoIGBuYW1lOiB1bmRlZmluZWRgIChyZW5kZXJlZCB3aXRob3V0IGEgbGFiZWwpLlxuICpcbiAqIGBncm91cGAgb24gbm9uLXJvb3QgYXJ0aWNsZXMgaXMgaWdub3JlZCDigJQgb25seSByb290cyBnYXRlIHNlY3Rpb24gYm91bmRhcmllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQXJ0aWNsZVRyZWUoXG4gIHRyZWU6IEFydGljbGVOb2RlW10sXG4gIGFydGljbGVzOiB7IHBhdGg6IHN0cmluZzsgZ3JvdXA/OiBzdHJpbmcgfVtdLFxuKTogQXJ0aWNsZUdyb3VwW10ge1xuICBjb25zdCBncm91cEJ5UGF0aG5hbWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpXG4gIGZvciAoY29uc3QgYXJ0aWNsZSBvZiBhcnRpY2xlcykge1xuICAgIGdyb3VwQnlQYXRobmFtZS5zZXQoYXJ0aWNsZS5wYXRoLCBhcnRpY2xlLmdyb3VwKVxuICB9XG5cbiAgY29uc3Qgc2VjdGlvbnM6IEFydGljbGVHcm91cFtdID0gW11cbiAgbGV0IGN1cnJlbnQ6IEFydGljbGVHcm91cCB8IHVuZGVmaW5lZFxuXG4gIGZvciAoY29uc3Qgbm9kZSBvZiB0cmVlKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBncm91cEJ5UGF0aG5hbWUuZ2V0KG5vZGUucGF0aClcbiAgICBpZiAoZ3JvdXApIHtcbiAgICAgIGN1cnJlbnQgPSB7IG5hbWU6IGdyb3VwLCBub2RlczogW25vZGVdIH1cbiAgICAgIHNlY3Rpb25zLnB1c2goY3VycmVudClcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnQpIHtcbiAgICAgIGN1cnJlbnQubm9kZXMucHVzaChub2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50ID0geyBuYW1lOiB1bmRlZmluZWQsIG5vZGVzOiBbbm9kZV0gfVxuICAgICAgc2VjdGlvbnMucHVzaChjdXJyZW50KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzZWN0aW9uc1xufVxuXG4vKiogRGVwdGgtZmlyc3QgZmxhdHRlbiBvZiBhbiBhcnRpY2xlIHRyZWUgaW50byBhIGxpc3Qgb2YgcGF0aHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuQXJ0aWNsZVRyZWUobm9kZXM6IEFydGljbGVOb2RlW10pIHtcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIHJlc3VsdC5wdXNoKG5vZGUucGF0aClcbiAgICByZXN1bHQucHVzaCguLi5mbGF0dGVuQXJ0aWNsZVRyZWUobm9kZS5jaGlsZHJlbikpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL2FydGljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFLRztJQUVILE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFBO0lBRTlDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFBO0lBRS9CLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLElBQUk7WUFBRSxTQUFRO1FBQ25CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBRS9ELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQW9CO0lBQ3JELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQTtJQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcnRpY2xlTm9kZSB9IGZyb20gXCIuLi9tb2RlbHMvYXJ0aWNsZS50c1wiXG5cbi8qKiBCdWlsZCBhIHRyZWUgZnJvbSBhIGZsYXQgc29ydGVkIGxpc3Qgb2YgYXJ0aWNsZXMgYmFzZWQgb24gcGF0aCBoaWVyYXJjaHkgKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFydGljbGVUcmVlKFxuICBhcnRpY2xlczoge1xuICAgIHBhdGg6IHN0cmluZ1xuICAgIHRpdGxlOiBzdHJpbmdcbiAgICBsYWJlbD86IHN0cmluZ1xuICAgIGljb246IHN0cmluZ1xuICB9W10sXG4pIHtcbiAgY29uc3Qgbm9kZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnRpY2xlTm9kZT4oKVxuXG4gIGZvciAoY29uc3QgYXJ0aWNsZSBvZiBhcnRpY2xlcykge1xuICAgIG5vZGVNYXAuc2V0KGFydGljbGUucGF0aCwge1xuICAgICAgcGF0aDogYXJ0aWNsZS5wYXRoLFxuICAgICAgdGl0bGU6IGFydGljbGUudGl0bGUsXG4gICAgICBsYWJlbDogYXJ0aWNsZS5sYWJlbCxcbiAgICAgIGljb246IGFydGljbGUuaWNvbixcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3Qgcm9vdHM6IEFydGljbGVOb2RlW10gPSBbXVxuXG4gIGZvciAoY29uc3QgYXJ0aWNsZSBvZiBhcnRpY2xlcykge1xuICAgIGNvbnN0IG5vZGUgPSBub2RlTWFwLmdldChhcnRpY2xlLnBhdGgpXG4gICAgaWYgKCFub2RlKSBjb250aW51ZVxuICAgIGNvbnN0IHRyaW1tZWQgPSBhcnRpY2xlLnBhdGgucmVwbGFjZSgvXFwvJC8sIFwiXCIpXG4gICAgY29uc3QgbGFzdFNsYXNoID0gdHJpbW1lZC5sYXN0SW5kZXhPZihcIi9cIilcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gbGFzdFNsYXNoID4gMCA/IGAke3RyaW1tZWQuc2xpY2UoMCwgbGFzdFNsYXNoKX0vYCA6IFwiXCJcbiAgICBjb25zdCBwYXJlbnQgPSBwYXJlbnRQYXRoID8gbm9kZU1hcC5nZXQocGFyZW50UGF0aCkgOiB1bmRlZmluZWRcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3RzLnB1c2gobm9kZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcm9vdHNcbn1cblxuLyoqIERlcHRoLWZpcnN0IGZsYXR0ZW4gb2YgYW4gYXJ0aWNsZSB0cmVlIGludG8gYSBsaXN0IG9mIHBhdGhzICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbkFydGljbGVUcmVlKG5vZGVzOiBBcnRpY2xlTm9kZVtdKSB7XG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXVxuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICByZXN1bHQucHVzaChub2RlLnBhdGgpXG4gICAgcmVzdWx0LnB1c2goLi4uZmxhdHRlbkFydGljbGVUcmVlKG5vZGUuY2hpbGRyZW4pKVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /** Prefix a root-relative URL with `base` when the site is mounted at
2
+ * a sub-path. Leaves protocol-absolute (`http(s)://`, `//`), scheme
3
+ * (`mailto:`, `tel:`, `data:`), hash, and relative URLs untouched, and
4
+ * is idempotent — already-prefixed URLs are returned unchanged so
5
+ * config validation or hot reload can't double-prefix. */
6
+ export declare function prefixUrl(url: string, base: string | undefined): string;
@@ -0,0 +1,24 @@
1
+ /** Prefix a root-relative URL with `base` when the site is mounted at
2
+ * a sub-path. Leaves protocol-absolute (`http(s)://`, `//`), scheme
3
+ * (`mailto:`, `tel:`, `data:`), hash, and relative URLs untouched, and
4
+ * is idempotent — already-prefixed URLs are returned unchanged so
5
+ * config validation or hot reload can't double-prefix. */
6
+ export function prefixUrl(url, base) {
7
+ if (!base)
8
+ return url;
9
+ if (url.startsWith("http://") ||
10
+ url.startsWith("https://") ||
11
+ url.startsWith("//") ||
12
+ url.startsWith("mailto:") ||
13
+ url.startsWith("tel:") ||
14
+ url.startsWith("data:") ||
15
+ url.startsWith("#")) {
16
+ return url;
17
+ }
18
+ if (!url.startsWith("/"))
19
+ return url;
20
+ if (url === base || url.startsWith(`${base}/`))
21
+ return url;
22
+ return `${base}${url}`;
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3ByZWZpeC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7MkRBSTJEO0FBQzNELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBVyxFQUFFLElBQXdCO0lBQzdELElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxHQUFHLENBQUE7SUFDckIsSUFDRSxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUN6QixHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwQixHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUN6QixHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUN0QixHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUE7SUFDcEMsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFBO0lBQzFELE9BQU8sR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBQcmVmaXggYSByb290LXJlbGF0aXZlIFVSTCB3aXRoIGBiYXNlYCB3aGVuIHRoZSBzaXRlIGlzIG1vdW50ZWQgYXRcbiAqICBhIHN1Yi1wYXRoLiBMZWF2ZXMgcHJvdG9jb2wtYWJzb2x1dGUgKGBodHRwKHMpOi8vYCwgYC8vYCksIHNjaGVtZVxuICogIChgbWFpbHRvOmAsIGB0ZWw6YCwgYGRhdGE6YCksIGhhc2gsIGFuZCByZWxhdGl2ZSBVUkxzIHVudG91Y2hlZCwgYW5kXG4gKiAgaXMgaWRlbXBvdGVudCDigJQgYWxyZWFkeS1wcmVmaXhlZCBVUkxzIGFyZSByZXR1cm5lZCB1bmNoYW5nZWQgc29cbiAqICBjb25maWcgdmFsaWRhdGlvbiBvciBob3QgcmVsb2FkIGNhbid0IGRvdWJsZS1wcmVmaXguICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4VXJsKHVybDogc3RyaW5nLCBiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgaWYgKCFiYXNlKSByZXR1cm4gdXJsXG4gIGlmIChcbiAgICB1cmwuc3RhcnRzV2l0aChcImh0dHA6Ly9cIikgfHxcbiAgICB1cmwuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpIHx8XG4gICAgdXJsLnN0YXJ0c1dpdGgoXCIvL1wiKSB8fFxuICAgIHVybC5zdGFydHNXaXRoKFwibWFpbHRvOlwiKSB8fFxuICAgIHVybC5zdGFydHNXaXRoKFwidGVsOlwiKSB8fFxuICAgIHVybC5zdGFydHNXaXRoKFwiZGF0YTpcIikgfHxcbiAgICB1cmwuc3RhcnRzV2l0aChcIiNcIilcbiAgKSB7XG4gICAgcmV0dXJuIHVybFxuICB9XG4gIGlmICghdXJsLnN0YXJ0c1dpdGgoXCIvXCIpKSByZXR1cm4gdXJsXG4gIGlmICh1cmwgPT09IGJhc2UgfHwgdXJsLnN0YXJ0c1dpdGgoYCR7YmFzZX0vYCkpIHJldHVybiB1cmxcbiAgcmV0dXJuIGAke2Jhc2V9JHt1cmx9YFxufVxuIl19
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from "vite-plus/test";
2
+ import { prefixUrl } from "./prefix-url.js";
3
+ describe("prefixUrl", () => {
4
+ it("should return url unchanged when base is undefined", () => {
5
+ expect(prefixUrl("/foo", undefined)).toBe("/foo");
6
+ });
7
+ it("should prefix a root-relative url", () => {
8
+ expect(prefixUrl("/foo", "/repo")).toBe("/repo/foo");
9
+ });
10
+ it("should prefix a deep root-relative url", () => {
11
+ expect(prefixUrl("/a/b/c.png", "/repo")).toBe("/repo/a/b/c.png");
12
+ });
13
+ it("should leave protocol-absolute http urls untouched", () => {
14
+ expect(prefixUrl("http://x.com/y", "/repo")).toBe("http://x.com/y");
15
+ expect(prefixUrl("https://x.com/y", "/repo")).toBe("https://x.com/y");
16
+ });
17
+ it("should leave protocol-relative urls untouched", () => {
18
+ expect(prefixUrl("//cdn.x.com/y", "/repo")).toBe("//cdn.x.com/y");
19
+ });
20
+ it("should leave scheme urls untouched", () => {
21
+ expect(prefixUrl("mailto:a@b.com", "/repo")).toBe("mailto:a@b.com");
22
+ expect(prefixUrl("tel:+123", "/repo")).toBe("tel:+123");
23
+ expect(prefixUrl("data:image/png;base64,xyz", "/repo")).toBe("data:image/png;base64,xyz");
24
+ });
25
+ it("should leave hash urls untouched", () => {
26
+ expect(prefixUrl("#section", "/repo")).toBe("#section");
27
+ });
28
+ it("should leave document-relative urls untouched", () => {
29
+ expect(prefixUrl("foo.png", "/repo")).toBe("foo.png");
30
+ expect(prefixUrl("./foo.png", "/repo")).toBe("./foo.png");
31
+ expect(prefixUrl("../foo.png", "/repo")).toBe("../foo.png");
32
+ });
33
+ it("should be idempotent on already-prefixed urls", () => {
34
+ expect(prefixUrl("/repo/foo", "/repo")).toBe("/repo/foo");
35
+ expect(prefixUrl("/repo", "/repo")).toBe("/repo");
36
+ });
37
+ it("should not match prefix-as-substring", () => {
38
+ expect(prefixUrl("/repository/foo", "/repo")).toBe("/repo/repository/foo");
39
+ });
40
+ it("should support multi-segment base", () => {
41
+ expect(prefixUrl("/foo", "/a/b")).toBe("/a/b/foo");
42
+ expect(prefixUrl("/a/b/foo", "/a/b")).toBe("/a/b/foo");
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LXVybC51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvcHJlZml4LXVybC51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUUzQyxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtJQUN6QixFQUFFLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1FBQzVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUN0RCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNsRSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7UUFDNUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ25FLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN2RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxHQUFHLEVBQUU7UUFDdkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDbkUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUNuRSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN2RCxNQUFNLENBQUMsU0FBUyxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxRCwyQkFBMkIsQ0FDNUIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6RCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxHQUFHLEVBQUU7UUFDdkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDckQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDN0QsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1FBQ3ZELE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3pELE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtRQUM5QyxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDNUUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3hELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi9wcmVmaXgtdXJsLnRzXCJcblxuZGVzY3JpYmUoXCJwcmVmaXhVcmxcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCByZXR1cm4gdXJsIHVuY2hhbmdlZCB3aGVuIGJhc2UgaXMgdW5kZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJlZml4VXJsKFwiL2Zvb1wiLCB1bmRlZmluZWQpKS50b0JlKFwiL2Zvb1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHByZWZpeCBhIHJvb3QtcmVsYXRpdmUgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJlZml4VXJsKFwiL2Zvb1wiLCBcIi9yZXBvXCIpKS50b0JlKFwiL3JlcG8vZm9vXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcHJlZml4IGEgZGVlcCByb290LXJlbGF0aXZlIHVybFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByZWZpeFVybChcIi9hL2IvYy5wbmdcIiwgXCIvcmVwb1wiKSkudG9CZShcIi9yZXBvL2EvYi9jLnBuZ1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGxlYXZlIHByb3RvY29sLWFic29sdXRlIGh0dHAgdXJscyB1bnRvdWNoZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVmaXhVcmwoXCJodHRwOi8veC5jb20veVwiLCBcIi9yZXBvXCIpKS50b0JlKFwiaHR0cDovL3guY29tL3lcIilcbiAgICBleHBlY3QocHJlZml4VXJsKFwiaHR0cHM6Ly94LmNvbS95XCIsIFwiL3JlcG9cIikpLnRvQmUoXCJodHRwczovL3guY29tL3lcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBsZWF2ZSBwcm90b2NvbC1yZWxhdGl2ZSB1cmxzIHVudG91Y2hlZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByZWZpeFVybChcIi8vY2RuLnguY29tL3lcIiwgXCIvcmVwb1wiKSkudG9CZShcIi8vY2RuLnguY29tL3lcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBsZWF2ZSBzY2hlbWUgdXJscyB1bnRvdWNoZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVmaXhVcmwoXCJtYWlsdG86YUBiLmNvbVwiLCBcIi9yZXBvXCIpKS50b0JlKFwibWFpbHRvOmFAYi5jb21cIilcbiAgICBleHBlY3QocHJlZml4VXJsKFwidGVsOisxMjNcIiwgXCIvcmVwb1wiKSkudG9CZShcInRlbDorMTIzXCIpXG4gICAgZXhwZWN0KHByZWZpeFVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCx4eXpcIiwgXCIvcmVwb1wiKSkudG9CZShcbiAgICAgIFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LHh5elwiLFxuICAgIClcbiAgfSlcblxuICBpdChcInNob3VsZCBsZWF2ZSBoYXNoIHVybHMgdW50b3VjaGVkXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJlZml4VXJsKFwiI3NlY3Rpb25cIiwgXCIvcmVwb1wiKSkudG9CZShcIiNzZWN0aW9uXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbGVhdmUgZG9jdW1lbnQtcmVsYXRpdmUgdXJscyB1bnRvdWNoZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVmaXhVcmwoXCJmb28ucG5nXCIsIFwiL3JlcG9cIikpLnRvQmUoXCJmb28ucG5nXCIpXG4gICAgZXhwZWN0KHByZWZpeFVybChcIi4vZm9vLnBuZ1wiLCBcIi9yZXBvXCIpKS50b0JlKFwiLi9mb28ucG5nXCIpXG4gICAgZXhwZWN0KHByZWZpeFVybChcIi4uL2Zvby5wbmdcIiwgXCIvcmVwb1wiKSkudG9CZShcIi4uL2Zvby5wbmdcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBiZSBpZGVtcG90ZW50IG9uIGFscmVhZHktcHJlZml4ZWQgdXJsc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByZWZpeFVybChcIi9yZXBvL2Zvb1wiLCBcIi9yZXBvXCIpKS50b0JlKFwiL3JlcG8vZm9vXCIpXG4gICAgZXhwZWN0KHByZWZpeFVybChcIi9yZXBvXCIsIFwiL3JlcG9cIikpLnRvQmUoXCIvcmVwb1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXgtYXMtc3Vic3RyaW5nXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJlZml4VXJsKFwiL3JlcG9zaXRvcnkvZm9vXCIsIFwiL3JlcG9cIikpLnRvQmUoXCIvcmVwby9yZXBvc2l0b3J5L2Zvb1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHN1cHBvcnQgbXVsdGktc2VnbWVudCBiYXNlXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJlZml4VXJsKFwiL2Zvb1wiLCBcIi9hL2JcIikpLnRvQmUoXCIvYS9iL2Zvb1wiKVxuICAgIGV4cGVjdChwcmVmaXhVcmwoXCIvYS9iL2Zvb1wiLCBcIi9hL2JcIikpLnRvQmUoXCIvYS9iL2Zvb1wiKVxuICB9KVxufSlcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  /** Resolve a relative asset path to an absolute URL serveable by Vite */
2
- export declare function resolveAssetPath(url: string, filePath: string, root: string): string;
2
+ export declare function resolveAssetPath(url: string, filePath: string, root: string, base?: string): string;
@@ -1,9 +1,13 @@
1
- import { dirname, relative, resolve } from "node:path";
1
+ import { dirname, relative, resolve, sep } from "node:path";
2
+ import { prefixUrl } from "./prefix-url.js";
2
3
  /** Resolve a relative asset path to an absolute URL serveable by Vite */
3
- export function resolveAssetPath(url, filePath, root) {
4
- if (url.startsWith("http") || url.startsWith("/") || url.startsWith("data:"))
4
+ export function resolveAssetPath(url, filePath, root, base) {
5
+ if (url.startsWith("http") || url.startsWith("data:"))
5
6
  return url;
7
+ if (url.startsWith("/"))
8
+ return prefixUrl(url, base);
6
9
  const absolute = resolve(dirname(filePath), url);
7
- return "/" + relative(root, absolute);
10
+ const rel = relative(root, absolute).split(sep).join("/");
11
+ return prefixUrl("/" + rel, base);
8
12
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1hc3NldC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvcmVzb2x2ZS1hc3NldC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0RCx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxRQUFnQixFQUFFLElBQVk7SUFDMUUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDMUUsT0FBTyxHQUFHLENBQUE7SUFDWixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2hELE9BQU8sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpcm5hbWUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5cbi8qKiBSZXNvbHZlIGEgcmVsYXRpdmUgYXNzZXQgcGF0aCB0byBhbiBhYnNvbHV0ZSBVUkwgc2VydmVhYmxlIGJ5IFZpdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXNzZXRQYXRoKHVybDogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCByb290OiBzdHJpbmcpIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSB8fCB1cmwuc3RhcnRzV2l0aChcIi9cIikgfHwgdXJsLnN0YXJ0c1dpdGgoXCJkYXRhOlwiKSlcbiAgICByZXR1cm4gdXJsXG4gIGNvbnN0IGFic29sdXRlID0gcmVzb2x2ZShkaXJuYW1lKGZpbGVQYXRoKSwgdXJsKVxuICByZXR1cm4gXCIvXCIgKyByZWxhdGl2ZShyb290LCBhYnNvbHV0ZSlcbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1hc3NldC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvcmVzb2x2ZS1hc3NldC1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLHlFQUF5RTtBQUN6RSxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQVcsRUFDWCxRQUFnQixFQUNoQixJQUFZLEVBQ1osSUFBYTtJQUViLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFBO0lBQ2pFLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDekQsT0FBTyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlybmFtZSwgcmVsYXRpdmUsIHJlc29sdmUsIHNlcCB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgcHJlZml4VXJsIH0gZnJvbSBcIi4vcHJlZml4LXVybC50c1wiXG5cbi8qKiBSZXNvbHZlIGEgcmVsYXRpdmUgYXNzZXQgcGF0aCB0byBhbiBhYnNvbHV0ZSBVUkwgc2VydmVhYmxlIGJ5IFZpdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXNzZXRQYXRoKFxuICB1cmw6IHN0cmluZyxcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgcm9vdDogc3RyaW5nLFxuICBiYXNlPzogc3RyaW5nLFxuKSB7XG4gIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBcIikgfHwgdXJsLnN0YXJ0c1dpdGgoXCJkYXRhOlwiKSkgcmV0dXJuIHVybFxuICBpZiAodXJsLnN0YXJ0c1dpdGgoXCIvXCIpKSByZXR1cm4gcHJlZml4VXJsKHVybCwgYmFzZSlcbiAgY29uc3QgYWJzb2x1dGUgPSByZXNvbHZlKGRpcm5hbWUoZmlsZVBhdGgpLCB1cmwpXG4gIGNvbnN0IHJlbCA9IHJlbGF0aXZlKHJvb3QsIGFic29sdXRlKS5zcGxpdChzZXApLmpvaW4oXCIvXCIpXG4gIHJldHVybiBwcmVmaXhVcmwoXCIvXCIgKyByZWwsIGJhc2UpXG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ import { describe, expect, it } from "vite-plus/test";
2
+ import { resolveAssetPath } from "./resolve-asset-path.js";
3
+ describe("resolveAssetPath", () => {
4
+ const root = "/site";
5
+ const filePath = "/site/docs/page.md";
6
+ it("should resolve a sibling relative path", () => {
7
+ expect(resolveAssetPath("./logo.png", filePath, root)).toBe("/docs/logo.png");
8
+ });
9
+ it("should resolve a parent relative path", () => {
10
+ expect(resolveAssetPath("../assets/x.png", filePath, root)).toBe("/assets/x.png");
11
+ });
12
+ it("should pass through a root-relative url", () => {
13
+ expect(resolveAssetPath("/foo.png", filePath, root)).toBe("/foo.png");
14
+ });
15
+ it("should pass through an http url", () => {
16
+ expect(resolveAssetPath("https://x.com/y.png", filePath, root)).toBe("https://x.com/y.png");
17
+ });
18
+ it("should pass through a data url", () => {
19
+ expect(resolveAssetPath("data:image/png;base64,xyz", filePath, root)).toBe("data:image/png;base64,xyz");
20
+ });
21
+ it("should prefix a resolved relative path with base", () => {
22
+ expect(resolveAssetPath("./logo.png", filePath, root, "/repo")).toBe("/repo/docs/logo.png");
23
+ });
24
+ it("should prefix a root-relative url with base", () => {
25
+ expect(resolveAssetPath("/foo.png", filePath, root, "/repo")).toBe("/repo/foo.png");
26
+ });
27
+ it("should not double-prefix an already-prefixed url", () => {
28
+ expect(resolveAssetPath("/repo/foo.png", filePath, root, "/repo")).toBe("/repo/foo.png");
29
+ });
30
+ it("should not prefix external urls when base is set", () => {
31
+ expect(resolveAssetPath("https://x.com/y.png", filePath, root, "/repo")).toBe("https://x.com/y.png");
32
+ });
33
+ });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1hc3NldC1wYXRoLnVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUUxRCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUNwQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQTtJQUVyQyxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RCxnQkFBZ0IsQ0FDakIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5RCxlQUFlLENBQ2hCLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdkUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2xFLHFCQUFxQixDQUN0QixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hFLDJCQUEyQixDQUM1QixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO1FBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEUscUJBQXFCLENBQ3RCLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRSxlQUFlLENBQ2hCLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyRSxlQUFlLENBQ2hCLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsTUFBTSxDQUNKLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQ2pFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDL0IsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGUtcGx1cy90ZXN0XCJcbmltcG9ydCB7IHJlc29sdmVBc3NldFBhdGggfSBmcm9tIFwiLi9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuXG5kZXNjcmliZShcInJlc29sdmVBc3NldFBhdGhcIiwgKCkgPT4ge1xuICBjb25zdCByb290ID0gXCIvc2l0ZVwiXG4gIGNvbnN0IGZpbGVQYXRoID0gXCIvc2l0ZS9kb2NzL3BhZ2UubWRcIlxuXG4gIGl0KFwic2hvdWxkIHJlc29sdmUgYSBzaWJsaW5nIHJlbGF0aXZlIHBhdGhcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChyZXNvbHZlQXNzZXRQYXRoKFwiLi9sb2dvLnBuZ1wiLCBmaWxlUGF0aCwgcm9vdCkpLnRvQmUoXG4gICAgICBcIi9kb2NzL2xvZ28ucG5nXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHJlc29sdmUgYSBwYXJlbnQgcmVsYXRpdmUgcGF0aFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHJlc29sdmVBc3NldFBhdGgoXCIuLi9hc3NldHMveC5wbmdcIiwgZmlsZVBhdGgsIHJvb3QpKS50b0JlKFxuICAgICAgXCIvYXNzZXRzL3gucG5nXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHBhc3MgdGhyb3VnaCBhIHJvb3QtcmVsYXRpdmUgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcIi9mb28ucG5nXCIsIGZpbGVQYXRoLCByb290KSkudG9CZShcIi9mb28ucG5nXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcGFzcyB0aHJvdWdoIGFuIGh0dHAgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcImh0dHBzOi8veC5jb20veS5wbmdcIiwgZmlsZVBhdGgsIHJvb3QpKS50b0JlKFxuICAgICAgXCJodHRwczovL3guY29tL3kucG5nXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHBhc3MgdGhyb3VnaCBhIGRhdGEgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCx4eXpcIiwgZmlsZVBhdGgsIHJvb3QpKS50b0JlKFxuICAgICAgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQseHl6XCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHByZWZpeCBhIHJlc29sdmVkIHJlbGF0aXZlIHBhdGggd2l0aCBiYXNlXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcIi4vbG9nby5wbmdcIiwgZmlsZVBhdGgsIHJvb3QsIFwiL3JlcG9cIikpLnRvQmUoXG4gICAgICBcIi9yZXBvL2RvY3MvbG9nby5wbmdcIixcbiAgICApXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcHJlZml4IGEgcm9vdC1yZWxhdGl2ZSB1cmwgd2l0aCBiYXNlXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcIi9mb28ucG5nXCIsIGZpbGVQYXRoLCByb290LCBcIi9yZXBvXCIpKS50b0JlKFxuICAgICAgXCIvcmVwby9mb28ucG5nXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG5vdCBkb3VibGUtcHJlZml4IGFuIGFscmVhZHktcHJlZml4ZWQgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QocmVzb2x2ZUFzc2V0UGF0aChcIi9yZXBvL2Zvby5wbmdcIiwgZmlsZVBhdGgsIHJvb3QsIFwiL3JlcG9cIikpLnRvQmUoXG4gICAgICBcIi9yZXBvL2Zvby5wbmdcIixcbiAgICApXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbm90IHByZWZpeCBleHRlcm5hbCB1cmxzIHdoZW4gYmFzZSBpcyBzZXRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIHJlc29sdmVBc3NldFBhdGgoXCJodHRwczovL3guY29tL3kucG5nXCIsIGZpbGVQYXRoLCByb290LCBcIi9yZXBvXCIpLFxuICAgICkudG9CZShcImh0dHBzOi8veC5jb20veS5wbmdcIilcbiAgfSlcbn0pXG4iXX0=
@@ -2,6 +2,7 @@ const DEFAULT_ICONS = {
2
2
  article: "book-open",
3
3
  blog: "rss",
4
4
  changelog: "history",
5
+ external: "external-link",
5
6
  };
6
7
  /** Return the section's icon, falling back to a type-based default */
7
8
  export function sectionIcon(section) {
@@ -36,4 +37,4 @@ export function partitionBySection(articles, sections) {
36
37
  }
37
38
  return buckets;
38
39
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3NlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxhQUFhLEdBQW9DO0lBQ3JELE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxLQUFLO0lBQ1gsU0FBUyxFQUFFLFNBQVM7Q0FDckIsQ0FBQTtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQXVDO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsV0FBbUIsRUFDbkIsUUFBYTtJQUViLElBQUksSUFBbUIsQ0FBQTtJQUN2QixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUE7SUFDZixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQ0UsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFDL0IsQ0FBQztZQUNELElBQUksR0FBRyxPQUFPLENBQUE7WUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxRQUFhLEVBQ2IsUUFBOEI7SUFFOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQTtJQUN0QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ3BELE1BQU0sR0FBRyxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxDQUFBO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9zZWN0aW9uLnRzXCJcblxuY29uc3QgREVGQVVMVF9JQ09OUzogUmVjb3JkPFNlY3Rpb25bXCJ0eXBlXCJdLCBzdHJpbmc+ID0ge1xuICBhcnRpY2xlOiBcImJvb2stb3BlblwiLFxuICBibG9nOiBcInJzc1wiLFxuICBjaGFuZ2Vsb2c6IFwiaGlzdG9yeVwiLFxufVxuXG4vKiogUmV0dXJuIHRoZSBzZWN0aW9uJ3MgaWNvbiwgZmFsbGluZyBiYWNrIHRvIGEgdHlwZS1iYXNlZCBkZWZhdWx0ICovXG5leHBvcnQgZnVuY3Rpb24gc2VjdGlvbkljb24oc2VjdGlvbjogUGljazxTZWN0aW9uLCBcImljb25cIiB8IFwidHlwZVwiPikge1xuICByZXR1cm4gc2VjdGlvbi5pY29uID8/IERFRkFVTFRfSUNPTlNbc2VjdGlvbi50eXBlXVxufVxuXG4vKiogRmluZCB0aGUgc2VjdGlvbiB3aG9zZSBwcmVmaXggaXMgdGhlIGxvbmdlc3QgcHJlZml4IG9mIHRoZSBhcnRpY2xlIHBhdGggKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFNlY3Rpb248UyBleHRlbmRzIHsgcHJlZml4OiBzdHJpbmcgfT4oXG4gIGFydGljbGVQYXRoOiBzdHJpbmcsXG4gIHNlY3Rpb25zOiBTW10sXG4pOiBTIHwgdW5kZWZpbmVkIHtcbiAgbGV0IGJlc3Q6IFMgfCB1bmRlZmluZWRcbiAgbGV0IGJlc3RMZW4gPSAwXG4gIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgIGlmIChcbiAgICAgIGFydGljbGVQYXRoLnN0YXJ0c1dpdGgoc2VjdGlvbi5wcmVmaXgpICYmXG4gICAgICBzZWN0aW9uLnByZWZpeC5sZW5ndGggPiBiZXN0TGVuXG4gICAgKSB7XG4gICAgICBiZXN0ID0gc2VjdGlvblxuICAgICAgYmVzdExlbiA9IHNlY3Rpb24ucHJlZml4Lmxlbmd0aFxuICAgIH1cbiAgfVxuICByZXR1cm4gYmVzdFxufVxuXG4vKiogU3BsaXQgYXJ0aWNsZXMgaW50byBwZXItc2VjdGlvbiBidWNrZXRzLiBVbm1hdGNoZWQgYXJ0aWNsZXMgZ28gdG8gXCJfX2RlZmF1bHRfX1wiICovXG5leHBvcnQgZnVuY3Rpb24gcGFydGl0aW9uQnlTZWN0aW9uPFQgZXh0ZW5kcyB7IHBhdGg6IHN0cmluZyB9PihcbiAgYXJ0aWNsZXM6IFRbXSxcbiAgc2VjdGlvbnM6IHsgcHJlZml4OiBzdHJpbmcgfVtdLFxuKTogTWFwPHN0cmluZywgVFtdPiB7XG4gIGNvbnN0IGJ1Y2tldHMgPSBuZXcgTWFwPHN0cmluZywgVFtdPigpXG4gIGZvciAoY29uc3QgYXJ0aWNsZSBvZiBhcnRpY2xlcykge1xuICAgIGNvbnN0IHNlY3Rpb24gPSBtYXRjaFNlY3Rpb24oYXJ0aWNsZS5wYXRoLCBzZWN0aW9ucylcbiAgICBjb25zdCBrZXkgPSBzZWN0aW9uPy5wcmVmaXggPz8gXCJfX2RlZmF1bHRfX1wiXG4gICAgY29uc3QgYnVja2V0ID0gYnVja2V0cy5nZXQoa2V5KVxuICAgIGlmIChidWNrZXQpIHtcbiAgICAgIGJ1Y2tldC5wdXNoKGFydGljbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1Y2tldHMuc2V0KGtleSwgW2FydGljbGVdKVxuICAgIH1cbiAgfVxuICByZXR1cm4gYnVja2V0c1xufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3NlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxhQUFhLEdBQW9DO0lBQ3JELE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxLQUFLO0lBQ1gsU0FBUyxFQUFFLFNBQVM7SUFDcEIsUUFBUSxFQUFFLGVBQWU7Q0FDMUIsQ0FBQTtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQXVDO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsV0FBbUIsRUFDbkIsUUFBYTtJQUViLElBQUksSUFBbUIsQ0FBQTtJQUN2QixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUE7SUFDZixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQ0UsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFDL0IsQ0FBQztZQUNELElBQUksR0FBRyxPQUFPLENBQUE7WUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxRQUFhLEVBQ2IsUUFBOEI7SUFFOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQTtJQUN0QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ3BELE1BQU0sR0FBRyxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxDQUFBO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9zZWN0aW9uLnRzXCJcblxuY29uc3QgREVGQVVMVF9JQ09OUzogUmVjb3JkPFNlY3Rpb25bXCJ0eXBlXCJdLCBzdHJpbmc+ID0ge1xuICBhcnRpY2xlOiBcImJvb2stb3BlblwiLFxuICBibG9nOiBcInJzc1wiLFxuICBjaGFuZ2Vsb2c6IFwiaGlzdG9yeVwiLFxuICBleHRlcm5hbDogXCJleHRlcm5hbC1saW5rXCIsXG59XG5cbi8qKiBSZXR1cm4gdGhlIHNlY3Rpb24ncyBpY29uLCBmYWxsaW5nIGJhY2sgdG8gYSB0eXBlLWJhc2VkIGRlZmF1bHQgKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWN0aW9uSWNvbihzZWN0aW9uOiBQaWNrPFNlY3Rpb24sIFwiaWNvblwiIHwgXCJ0eXBlXCI+KSB7XG4gIHJldHVybiBzZWN0aW9uLmljb24gPz8gREVGQVVMVF9JQ09OU1tzZWN0aW9uLnR5cGVdXG59XG5cbi8qKiBGaW5kIHRoZSBzZWN0aW9uIHdob3NlIHByZWZpeCBpcyB0aGUgbG9uZ2VzdCBwcmVmaXggb2YgdGhlIGFydGljbGUgcGF0aCAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoU2VjdGlvbjxTIGV4dGVuZHMgeyBwcmVmaXg6IHN0cmluZyB9PihcbiAgYXJ0aWNsZVBhdGg6IHN0cmluZyxcbiAgc2VjdGlvbnM6IFNbXSxcbik6IFMgfCB1bmRlZmluZWQge1xuICBsZXQgYmVzdDogUyB8IHVuZGVmaW5lZFxuICBsZXQgYmVzdExlbiA9IDBcbiAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgYXJ0aWNsZVBhdGguc3RhcnRzV2l0aChzZWN0aW9uLnByZWZpeCkgJiZcbiAgICAgIHNlY3Rpb24ucHJlZml4Lmxlbmd0aCA+IGJlc3RMZW5cbiAgICApIHtcbiAgICAgIGJlc3QgPSBzZWN0aW9uXG4gICAgICBiZXN0TGVuID0gc2VjdGlvbi5wcmVmaXgubGVuZ3RoXG4gICAgfVxuICB9XG4gIHJldHVybiBiZXN0XG59XG5cbi8qKiBTcGxpdCBhcnRpY2xlcyBpbnRvIHBlci1zZWN0aW9uIGJ1Y2tldHMuIFVubWF0Y2hlZCBhcnRpY2xlcyBnbyB0byBcIl9fZGVmYXVsdF9fXCIgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb25CeVNlY3Rpb248VCBleHRlbmRzIHsgcGF0aDogc3RyaW5nIH0+KFxuICBhcnRpY2xlczogVFtdLFxuICBzZWN0aW9uczogeyBwcmVmaXg6IHN0cmluZyB9W10sXG4pOiBNYXA8c3RyaW5nLCBUW10+IHtcbiAgY29uc3QgYnVja2V0cyA9IG5ldyBNYXA8c3RyaW5nLCBUW10+KClcbiAgZm9yIChjb25zdCBhcnRpY2xlIG9mIGFydGljbGVzKSB7XG4gICAgY29uc3Qgc2VjdGlvbiA9IG1hdGNoU2VjdGlvbihhcnRpY2xlLnBhdGgsIHNlY3Rpb25zKVxuICAgIGNvbnN0IGtleSA9IHNlY3Rpb24/LnByZWZpeCA/PyBcIl9fZGVmYXVsdF9fXCJcbiAgICBjb25zdCBidWNrZXQgPSBidWNrZXRzLmdldChrZXkpXG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgYnVja2V0LnB1c2goYXJ0aWNsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgYnVja2V0cy5zZXQoa2V5LCBbYXJ0aWNsZV0pXG4gICAgfVxuICB9XG4gIHJldHVybiBidWNrZXRzXG59XG4iXX0=
@@ -10,7 +10,6 @@ export declare const Article: z.ZodObject<{
10
10
  icon: z.ZodOptional<z.ZodString>;
11
11
  order: z.ZodOptional<z.ZodNumber>;
12
12
  path: z.ZodOptional<z.ZodString>;
13
- group: z.ZodOptional<z.ZodString>;
14
13
  sidebar: z.ZodDefault<z.ZodBoolean>;
15
14
  toc: z.ZodDefault<z.ZodBoolean>;
16
15
  image: z.ZodOptional<z.ZodString>;
@@ -48,11 +47,3 @@ export interface ArticleNode {
48
47
  icon: string;
49
48
  children: ArticleNode[];
50
49
  }
51
- /**
52
- * A contiguous section of root articles sharing the same `group` label.
53
- * `name: undefined` represents the leading ungrouped section (at most one).
54
- */
55
- export interface ArticleGroup {
56
- name?: string;
57
- nodes: ArticleNode[];
58
- }
@@ -8,7 +8,6 @@ export const Article = z.object({
8
8
  icon: nonEmptyString.optional(),
9
9
  order: z.number().optional(),
10
10
  path: nonEmptyString.optional(),
11
- group: nonEmptyString.optional(),
12
11
  sidebar: z.boolean().default(true),
13
12
  toc: z.boolean().default(true),
14
13
  image: nonEmptyString.optional(),
@@ -18,4 +17,4 @@ export const Article = z.object({
18
17
  sourceUrl: nonEmptyString.optional(),
19
18
  sourceAction: z.enum(["edit", "view"]).default("edit"),
20
19
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUtwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyRSxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0NBQ3ZELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IG5vbkVtcHR5U3RyaW5nIH0gZnJvbSBcIi4uL2hlbHBlcnMvbW9kZWwudHNcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuLyoqIEZyb250bWF0dGVyIHNjaGVtYSBmb3IgYSBtYXJrZG93biBhcnRpY2xlLiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWNsZSA9IHouaW5mZXI8dHlwZW9mIEFydGljbGU+XG5leHBvcnQgY29uc3QgQXJ0aWNsZSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGxhYmVsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgaWNvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcGF0aDogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgZ3JvdXA6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIHNpZGViYXI6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIHRvYzogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgaW1hZ2U6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGF1dGhvcjogei51bmlvbihbbm9uRW1wdHlTdHJpbmcsIHouYXJyYXkobm9uRW1wdHlTdHJpbmcpXSkub3B0aW9uYWwoKSxcbiAgZGF0ZTogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheShub25FbXB0eVN0cmluZykub3B0aW9uYWwoKSxcbiAgc291cmNlVXJsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBzb3VyY2VBY3Rpb246IHouZW51bShbXCJlZGl0XCIsIFwidmlld1wiXSkuZGVmYXVsdChcImVkaXRcIiksXG59KVxuXG4vKiogUHJvY2Vzc2VkIGFydGljbGUgcmVhZHkgZm9yIHBhZ2UgcmVuZGVyaW5nIChyZXN1bHQgb2YgY29udGVudC1jb2xsZWN0aW9ucyB0cmFuc2Zvcm0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVmlldyB7XG4gIHBhdGg6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgbWR4OiBzdHJpbmdcbiAgdG9jSXRlbXM6IFRvY0l0ZW1bXVxuICB0b2M/OiBib29sZWFuXG4gIGxhc3RVcGRhdGVkPzogc3RyaW5nXG4gIHNpZGViYXI/OiBib29sZWFuXG4gIGltYWdlPzogc3RyaW5nXG4gIGF1dGhvcj86IHN0cmluZyB8IHN0cmluZ1tdXG4gIGRhdGU/OiBzdHJpbmdcbiAgdGFncz86IHN0cmluZ1tdXG4gIHNvdXJjZVVybD86IHN0cmluZ1xuICBzb3VyY2VBY3Rpb24/OiBcImVkaXRcIiB8IFwidmlld1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZU5vZGUge1xuICBwYXRoOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBsYWJlbD86IHN0cmluZ1xuICBpY29uOiBzdHJpbmdcbiAgY2hpbGRyZW46IEFydGljbGVOb2RlW11cbn1cblxuLyoqXG4gKiBBIGNvbnRpZ3VvdXMgc2VjdGlvbiBvZiByb290IGFydGljbGVzIHNoYXJpbmcgdGhlIHNhbWUgYGdyb3VwYCBsYWJlbC5cbiAqIGBuYW1lOiB1bmRlZmluZWRgIHJlcHJlc2VudHMgdGhlIGxlYWRpbmcgdW5ncm91cGVkIHNlY3Rpb24gKGF0IG1vc3Qgb25lKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlR3JvdXAge1xuICBuYW1lPzogc3RyaW5nXG4gIG5vZGVzOiBBcnRpY2xlTm9kZVtdXG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUtwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyRSxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0NBQ3ZELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IG5vbkVtcHR5U3RyaW5nIH0gZnJvbSBcIi4uL2hlbHBlcnMvbW9kZWwudHNcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuLyoqIEZyb250bWF0dGVyIHNjaGVtYSBmb3IgYSBtYXJrZG93biBhcnRpY2xlLiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWNsZSA9IHouaW5mZXI8dHlwZW9mIEFydGljbGU+XG5leHBvcnQgY29uc3QgQXJ0aWNsZSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGxhYmVsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgaWNvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcGF0aDogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgc2lkZWJhcjogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgdG9jOiB6LmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICBpbWFnZTogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgYXV0aG9yOiB6LnVuaW9uKFtub25FbXB0eVN0cmluZywgei5hcnJheShub25FbXB0eVN0cmluZyldKS5vcHRpb25hbCgpLFxuICBkYXRlOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICB0YWdzOiB6LmFycmF5KG5vbkVtcHR5U3RyaW5nKS5vcHRpb25hbCgpLFxuICBzb3VyY2VVcmw6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIHNvdXJjZUFjdGlvbjogei5lbnVtKFtcImVkaXRcIiwgXCJ2aWV3XCJdKS5kZWZhdWx0KFwiZWRpdFwiKSxcbn0pXG5cbi8qKiBQcm9jZXNzZWQgYXJ0aWNsZSByZWFkeSBmb3IgcGFnZSByZW5kZXJpbmcgKHJlc3VsdCBvZiBjb250ZW50LWNvbGxlY3Rpb25zIHRyYW5zZm9ybSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVWaWV3IHtcbiAgcGF0aDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgY29udGVudDogc3RyaW5nXG4gIGZpbGU6IHN0cmluZ1xuICBtZHg6IHN0cmluZ1xuICB0b2NJdGVtczogVG9jSXRlbVtdXG4gIHRvYz86IGJvb2xlYW5cbiAgbGFzdFVwZGF0ZWQ/OiBzdHJpbmdcbiAgc2lkZWJhcj86IGJvb2xlYW5cbiAgaW1hZ2U/OiBzdHJpbmdcbiAgYXV0aG9yPzogc3RyaW5nIHwgc3RyaW5nW11cbiAgZGF0ZT86IHN0cmluZ1xuICB0YWdzPzogc3RyaW5nW11cbiAgc291cmNlVXJsPzogc3RyaW5nXG4gIHNvdXJjZUFjdGlvbj86IFwiZWRpdFwiIHwgXCJ2aWV3XCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlTm9kZSB7XG4gIHBhdGg6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGxhYmVsPzogc3RyaW5nXG4gIGljb246IHN0cmluZ1xuICBjaGlsZHJlbjogQXJ0aWNsZU5vZGVbXVxufVxuIl19
@@ -15,6 +15,7 @@ export type UserConfig = Omit<z.infer<typeof UserConfig>, "vite"> & {
15
15
  };
16
16
  export declare const UserConfig: z.ZodObject<{
17
17
  site: z.ZodOptional<z.ZodString>;
18
+ base: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
18
19
  favicon: z.ZodOptional<z.ZodString>;
19
20
  logo: z.ZodOptional<z.ZodString>;
20
21
  title: z.ZodDefault<z.ZodString>;
@@ -103,32 +104,41 @@ export declare const UserConfig: z.ZodObject<{
103
104
  sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
104
105
  icon: z.ZodOptional<z.ZodString>;
105
106
  title: z.ZodString;
106
- prefix: z.ZodString;
107
107
  position: z.ZodDefault<z.ZodEnum<{
108
108
  header: "header";
109
109
  sidebar: "sidebar";
110
110
  }>>;
111
111
  type: z.ZodLiteral<"article">;
112
+ prefix: z.ZodString;
112
113
  }, z.core.$strip>, z.ZodObject<{
113
114
  icon: z.ZodOptional<z.ZodString>;
114
115
  title: z.ZodString;
115
- prefix: z.ZodString;
116
116
  position: z.ZodDefault<z.ZodEnum<{
117
117
  header: "header";
118
118
  sidebar: "sidebar";
119
119
  }>>;
120
120
  type: z.ZodLiteral<"blog">;
121
+ prefix: z.ZodString;
121
122
  }, z.core.$strip>, z.ZodObject<{
122
123
  icon: z.ZodOptional<z.ZodString>;
123
124
  title: z.ZodString;
124
- prefix: z.ZodString;
125
125
  position: z.ZodDefault<z.ZodEnum<{
126
126
  header: "header";
127
127
  sidebar: "sidebar";
128
128
  }>>;
129
129
  type: z.ZodLiteral<"changelog">;
130
+ prefix: z.ZodString;
130
131
  source: z.ZodString;
131
132
  version: z.ZodOptional<z.ZodBoolean>;
133
+ }, z.core.$strip>, z.ZodObject<{
134
+ icon: z.ZodOptional<z.ZodString>;
135
+ title: z.ZodString;
136
+ position: z.ZodDefault<z.ZodEnum<{
137
+ header: "header";
138
+ sidebar: "sidebar";
139
+ }>>;
140
+ type: z.ZodLiteral<"external">;
141
+ url: z.ZodString;
132
142
  }, z.core.$strip>], "type">>>>;
133
143
  patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
134
144
  file: z.ZodString;
@@ -139,7 +149,6 @@ export declare const UserConfig: z.ZodObject<{
139
149
  icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
140
150
  order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
141
151
  path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
142
- group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
143
152
  sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
144
153
  toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
145
154
  image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -159,6 +168,7 @@ export declare const UserConfig: z.ZodObject<{
159
168
  export type WebsiteConfig = z.infer<typeof WebsiteConfig>;
160
169
  export declare const WebsiteConfig: z.ZodObject<{
161
170
  site: z.ZodOptional<z.ZodString>;
171
+ base: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
162
172
  favicon: z.ZodOptional<z.ZodString>;
163
173
  logo: z.ZodOptional<z.ZodString>;
164
174
  title: z.ZodDefault<z.ZodString>;
@@ -176,32 +186,41 @@ export declare const WebsiteConfig: z.ZodObject<{
176
186
  sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
177
187
  icon: z.ZodOptional<z.ZodString>;
178
188
  title: z.ZodString;
179
- prefix: z.ZodString;
180
189
  position: z.ZodDefault<z.ZodEnum<{
181
190
  header: "header";
182
191
  sidebar: "sidebar";
183
192
  }>>;
184
193
  type: z.ZodLiteral<"article">;
194
+ prefix: z.ZodString;
185
195
  }, z.core.$strip>, z.ZodObject<{
186
196
  icon: z.ZodOptional<z.ZodString>;
187
197
  title: z.ZodString;
188
- prefix: z.ZodString;
189
198
  position: z.ZodDefault<z.ZodEnum<{
190
199
  header: "header";
191
200
  sidebar: "sidebar";
192
201
  }>>;
193
202
  type: z.ZodLiteral<"blog">;
203
+ prefix: z.ZodString;
194
204
  }, z.core.$strip>, z.ZodObject<{
195
205
  icon: z.ZodOptional<z.ZodString>;
196
206
  title: z.ZodString;
197
- prefix: z.ZodString;
198
207
  position: z.ZodDefault<z.ZodEnum<{
199
208
  header: "header";
200
209
  sidebar: "sidebar";
201
210
  }>>;
202
211
  type: z.ZodLiteral<"changelog">;
212
+ prefix: z.ZodString;
203
213
  source: z.ZodString;
204
214
  version: z.ZodOptional<z.ZodBoolean>;
215
+ }, z.core.$strip>, z.ZodObject<{
216
+ icon: z.ZodOptional<z.ZodString>;
217
+ title: z.ZodString;
218
+ position: z.ZodDefault<z.ZodEnum<{
219
+ header: "header";
220
+ sidebar: "sidebar";
221
+ }>>;
222
+ type: z.ZodLiteral<"external">;
223
+ url: z.ZodString;
205
224
  }, z.core.$strip>], "type">>>>;
206
225
  }, z.core.$strip>;
207
226
  /**
@@ -222,6 +241,7 @@ export declare const SystemConfig: z.ZodObject<{
222
241
  export type Config = z.infer<typeof Config>;
223
242
  export declare const Config: z.ZodObject<{
224
243
  site: z.ZodOptional<z.ZodString>;
244
+ base: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
225
245
  favicon: z.ZodOptional<z.ZodString>;
226
246
  logo: z.ZodOptional<z.ZodString>;
227
247
  title: z.ZodDefault<z.ZodString>;
@@ -310,32 +330,41 @@ export declare const Config: z.ZodObject<{
310
330
  sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
311
331
  icon: z.ZodOptional<z.ZodString>;
312
332
  title: z.ZodString;
313
- prefix: z.ZodString;
314
333
  position: z.ZodDefault<z.ZodEnum<{
315
334
  header: "header";
316
335
  sidebar: "sidebar";
317
336
  }>>;
318
337
  type: z.ZodLiteral<"article">;
338
+ prefix: z.ZodString;
319
339
  }, z.core.$strip>, z.ZodObject<{
320
340
  icon: z.ZodOptional<z.ZodString>;
321
341
  title: z.ZodString;
322
- prefix: z.ZodString;
323
342
  position: z.ZodDefault<z.ZodEnum<{
324
343
  header: "header";
325
344
  sidebar: "sidebar";
326
345
  }>>;
327
346
  type: z.ZodLiteral<"blog">;
347
+ prefix: z.ZodString;
328
348
  }, z.core.$strip>, z.ZodObject<{
329
349
  icon: z.ZodOptional<z.ZodString>;
330
350
  title: z.ZodString;
331
- prefix: z.ZodString;
332
351
  position: z.ZodDefault<z.ZodEnum<{
333
352
  header: "header";
334
353
  sidebar: "sidebar";
335
354
  }>>;
336
355
  type: z.ZodLiteral<"changelog">;
356
+ prefix: z.ZodString;
337
357
  source: z.ZodString;
338
358
  version: z.ZodOptional<z.ZodBoolean>;
359
+ }, z.core.$strip>, z.ZodObject<{
360
+ icon: z.ZodOptional<z.ZodString>;
361
+ title: z.ZodString;
362
+ position: z.ZodDefault<z.ZodEnum<{
363
+ header: "header";
364
+ sidebar: "sidebar";
365
+ }>>;
366
+ type: z.ZodLiteral<"external">;
367
+ url: z.ZodString;
339
368
  }, z.core.$strip>], "type">>>>;
340
369
  patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
341
370
  file: z.ZodString;
@@ -346,7 +375,6 @@ export declare const Config: z.ZodObject<{
346
375
  icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
347
376
  order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
348
377
  path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
349
- group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
350
378
  sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
351
379
  toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
352
380
  image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -5,6 +5,15 @@ import { Section } from "./section.js";
5
5
  import { CodeThemeDark, CodeThemeLight } from "./theme.js";
6
6
  export const UserConfig = z.object({
7
7
  site: z.string().optional(),
8
+ base: z
9
+ .string()
10
+ .optional()
11
+ .transform(v => {
12
+ if (!v)
13
+ return undefined;
14
+ const trimmed = v.replace(/^\/|\/$/g, "");
15
+ return trimmed ? `/${trimmed}` : undefined;
16
+ }),
8
17
  favicon: z.string().optional(),
9
18
  logo: z.string().optional(),
10
19
  title: z.string().default("Livemark"),
@@ -25,6 +34,7 @@ export const WebsiteConfig = UserConfig.pick({
25
34
  title: true,
26
35
  description: true,
27
36
  site: true,
37
+ base: true,
28
38
  favicon: true,
29
39
  logo: true,
30
40
  links: true,
@@ -35,4 +45,4 @@ export const SystemConfig = z.object({
35
45
  configPath: z.string(),
36
46
  });
37
47
  export const Config = UserConfig.merge(SystemConfig);
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWtCMUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3JDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDdEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlELGNBQWMsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQzFELGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQ3hELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQixRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2xDLHNFQUFzRTtJQUN0RSxtRUFBbUU7SUFDbkUsa0VBQWtFO0lBQ2xFLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzNDLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLElBQUk7SUFDakIsSUFBSSxFQUFFLElBQUk7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUMsQ0FBQTtBQU1GLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQTtBQVVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuaW1wb3J0IHR5cGUgeyBDb25maWdFbnYsIFVzZXJDb25maWcgYXMgVml0ZVVzZXJDb25maWcgfSBmcm9tIFwidml0ZVwiXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4vbGluay50c1wiXG5pbXBvcnQgeyBQYXRjaCB9IGZyb20gXCIuL3BhdGNoLnRzXCJcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9zZWN0aW9uLnRzXCJcbmltcG9ydCB7IENvZGVUaGVtZURhcmssIENvZGVUaGVtZUxpZ2h0IH0gZnJvbSBcIi4vdGhlbWUudHNcIlxuXG4vKiogRXNjYXBlIGhhdGNoIGZvciBhcmJpdHJhcnkgVml0ZSBjb25maWcg4oCUIGFjY2VwdHMgZWl0aGVyIGEgY29uZmlnXG4gKiAgb2JqZWN0IChzaW1wbGUgb3ZlcnJpZGVzKSBvciBhIGZ1bmN0aW9uIGZvcm0gKGAoZW52KSA9PiBjb25maWdgLFxuICogIG1hdGNoaW5nIFZpdGUncyBvd24gYGRlZmluZUNvbmZpZ2ApLiBNZXJnZWQgb24gdG9wIG9mIGxpdmVtYXJrJ3NcbiAqICBkZWZhdWx0cyB2aWEgYG1lcmdlQ29uZmlnYCwgc28gcGx1Z2luIGFycmF5cyBjb25jYXRlbmF0ZSwgZGVmaW5lc1xuICogIG1lcmdlLCBldGMuIFVzZSB0aGlzIGZvciBkZXBsb3ltZW50LXRhcmdldCB0d2Vha3MgKGUuZy4gQ0YgV29ya2Vyc1xuICogIHZpYSBgZW52aXJvbm1lbnRzLnNzci5yZXNvbHZlLmNvbmRpdGlvbnM6IFtcIndvcmtlcmRcIiwgLi4uXWApLiAqL1xuZXhwb3J0IHR5cGUgVml0ZU92ZXJyaWRlID1cbiAgfCBWaXRlVXNlckNvbmZpZ1xuICB8ICgoZW52OiBDb25maWdFbnYpID0+IFZpdGVVc2VyQ29uZmlnIHwgUHJvbWlzZTxWaXRlVXNlckNvbmZpZz4pXG5cbi8qKlxuICogVXNlci1wcm92aWRlZCBjb25maWd1cmF0aW9uIGZvciBMaXZlbWFyay5cbiAqL1xuZXhwb3J0IHR5cGUgVXNlckNvbmZpZyA9IE9taXQ8ei5pbmZlcjx0eXBlb2YgVXNlckNvbmZpZz4sIFwidml0ZVwiPiAmIHtcbiAgdml0ZT86IFZpdGVPdmVycmlkZVxufVxuZXhwb3J0IGNvbnN0IFVzZXJDb25maWcgPSB6Lm9iamVjdCh7XG4gIHNpdGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmF2aWNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBsb2dvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRpdGxlOiB6LnN0cmluZygpLmRlZmF1bHQoXCJMaXZlbWFya1wiKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkuZGVmYXVsdChcIk1hcmtkb3duIHNpdGUgZ2VuZXJhdG9yXCIpLFxuICBpbmNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkuZGVmYXVsdChcIioqLyoubWRcIiksXG4gIGV4Y2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKS5vcHRpb25hbCgpLFxuICBjb2RlVGhlbWVMaWdodDogQ29kZVRoZW1lTGlnaHQuZGVmYXVsdChcImNhdHBwdWNjaW4tbGF0dGVcIiksXG4gIGNvZGVUaGVtZURhcms6IENvZGVUaGVtZURhcmsuZGVmYXVsdChcImNhdHBwdWNjaW4tbW9jaGFcIiksXG4gIGxpbmtzOiB6LmFycmF5KExpbmspLm9wdGlvbmFsKCksXG4gIHNlY3Rpb25zOiB6LmFycmF5KFNlY3Rpb24pLm9wdGlvbmFsKCksXG4gIHBhdGNoZXM6IHouYXJyYXkoUGF0Y2gpLm9wdGlvbmFsKCksXG4gIC8vIFN0b3JlZCBhcyBgdW5rbm93bmAgaW4gdGhlIHNjaGVtYSAoem9kIGNhbid0IHR5cGUgYSBWaXRlIFVzZXJDb25maWdcbiAgLy8gb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgb25lIG1lYW5pbmdmdWxseSk7IHRoZSBwdWJsaWMgVHlwZVNjcmlwdFxuICAvLyBzdXJmYWNlIGFib3ZlIGxpZnRzIGl0IGJhY2sgdG8gVml0ZU92ZXJyaWRlIGZvciBlZGl0b3Igc3VwcG9ydC5cbiAgdml0ZTogei51bmtub3duKCkub3B0aW9uYWwoKSxcbn0pXG5cbi8qKiBXZWJzaXRlIGNvbmZpZ3VyYXRpb24gaW5qZWN0ZWQgYXQgYnVpbGQgdGltZSB2aWEgVml0ZSBkZWZpbmUgKi9cbmV4cG9ydCB0eXBlIFdlYnNpdGVDb25maWcgPSB6LmluZmVyPHR5cGVvZiBXZWJzaXRlQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFdlYnNpdGVDb25maWcgPSBVc2VyQ29uZmlnLnBpY2soe1xuICB0aXRsZTogdHJ1ZSxcbiAgZGVzY3JpcHRpb246IHRydWUsXG4gIHNpdGU6IHRydWUsXG4gIGZhdmljb246IHRydWUsXG4gIGxvZ286IHRydWUsXG4gIGxpbmtzOiB0cnVlLFxuICBzZWN0aW9uczogdHJ1ZSxcbn0pXG5cbi8qKlxuICogU3lzdGVtLWNvbXB1dGVkIGNvbmZpZ3VyYXRpb24gZGVyaXZlZCBmcm9tIHRoZSBjb25maWcgZmlsZSBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU3lzdGVtQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgU3lzdGVtQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFN5c3RlbUNvbmZpZyA9IHoub2JqZWN0KHtcbiAgcm9vdDogei5zdHJpbmcoKSxcbiAgY29uZmlnUGF0aDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKlxuICogRnVsbHkgcmVzb2x2ZWQgTGl2ZW1hcmsgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBgdml0ZWAgc3RheXMgYHVua25vd25gIGhlcmUgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGUgcnVudGltZSBzY2hlbWFcbiAqIHByb2R1Y2VzIOKAlCBjb25zdW1lci1mYWNpbmcgdHlwaW5nIGhhcHBlbnMgdmlhIHtAbGluayBVc2VyQ29uZmlnfSBzb1xuICogYGRlZmluZUNvbmZpZ2Agc2hvd3MgdGhlIHJpZ2h0IHNoYXBlIGluIGVkaXRvcnMuXG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHouaW5mZXI8dHlwZW9mIENvbmZpZz5cbmV4cG9ydCBjb25zdCBDb25maWcgPSBVc2VyQ29uZmlnLm1lcmdlKFN5c3RlbUNvbmZpZylcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWtCMUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsSUFBSSxFQUFFLENBQUM7U0FDSixNQUFNLEVBQUU7U0FDUixRQUFRLEVBQUU7U0FDVixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDYixJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDNUMsQ0FBQyxDQUFDO0lBQ0osT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3JDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDdEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlELGNBQWMsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQzFELGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQ3hELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQixRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2xDLHNFQUFzRTtJQUN0RSxtRUFBbUU7SUFDbkUsa0VBQWtFO0lBQ2xFLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzNDLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLElBQUk7SUFDakIsSUFBSSxFQUFFLElBQUk7SUFDVixJQUFJLEVBQUUsSUFBSTtJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBVUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5pbXBvcnQgdHlwZSB7IENvbmZpZ0VudiwgVXNlckNvbmZpZyBhcyBWaXRlVXNlckNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiLi9saW5rLnRzXCJcbmltcG9ydCB7IFBhdGNoIH0gZnJvbSBcIi4vcGF0Y2gudHNcIlxuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuL3NlY3Rpb24udHNcIlxuaW1wb3J0IHsgQ29kZVRoZW1lRGFyaywgQ29kZVRoZW1lTGlnaHQgfSBmcm9tIFwiLi90aGVtZS50c1wiXG5cbi8qKiBFc2NhcGUgaGF0Y2ggZm9yIGFyYml0cmFyeSBWaXRlIGNvbmZpZyDigJQgYWNjZXB0cyBlaXRoZXIgYSBjb25maWdcbiAqICBvYmplY3QgKHNpbXBsZSBvdmVycmlkZXMpIG9yIGEgZnVuY3Rpb24gZm9ybSAoYChlbnYpID0+IGNvbmZpZ2AsXG4gKiAgbWF0Y2hpbmcgVml0ZSdzIG93biBgZGVmaW5lQ29uZmlnYCkuIE1lcmdlZCBvbiB0b3Agb2YgbGl2ZW1hcmsnc1xuICogIGRlZmF1bHRzIHZpYSBgbWVyZ2VDb25maWdgLCBzbyBwbHVnaW4gYXJyYXlzIGNvbmNhdGVuYXRlLCBkZWZpbmVzXG4gKiAgbWVyZ2UsIGV0Yy4gVXNlIHRoaXMgZm9yIGRlcGxveW1lbnQtdGFyZ2V0IHR3ZWFrcyAoZS5nLiBDRiBXb3JrZXJzXG4gKiAgdmlhIGBlbnZpcm9ubWVudHMuc3NyLnJlc29sdmUuY29uZGl0aW9uczogW1wid29ya2VyZFwiLCAuLi5dYCkuICovXG5leHBvcnQgdHlwZSBWaXRlT3ZlcnJpZGUgPVxuICB8IFZpdGVVc2VyQ29uZmlnXG4gIHwgKChlbnY6IENvbmZpZ0VudikgPT4gVml0ZVVzZXJDb25maWcgfCBQcm9taXNlPFZpdGVVc2VyQ29uZmlnPilcblxuLyoqXG4gKiBVc2VyLXByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gZm9yIExpdmVtYXJrLlxuICovXG5leHBvcnQgdHlwZSBVc2VyQ29uZmlnID0gT21pdDx6LmluZmVyPHR5cGVvZiBVc2VyQ29uZmlnPiwgXCJ2aXRlXCI+ICYge1xuICB2aXRlPzogVml0ZU92ZXJyaWRlXG59XG5leHBvcnQgY29uc3QgVXNlckNvbmZpZyA9IHoub2JqZWN0KHtcbiAgc2l0ZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBiYXNlOiB6XG4gICAgLnN0cmluZygpXG4gICAgLm9wdGlvbmFsKClcbiAgICAudHJhbnNmb3JtKHYgPT4ge1xuICAgICAgaWYgKCF2KSByZXR1cm4gdW5kZWZpbmVkXG4gICAgICBjb25zdCB0cmltbWVkID0gdi5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIilcbiAgICAgIHJldHVybiB0cmltbWVkID8gYC8ke3RyaW1tZWR9YCA6IHVuZGVmaW5lZFxuICAgIH0pLFxuICBmYXZpY29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvZ286IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkuZGVmYXVsdChcIkxpdmVtYXJrXCIpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5kZWZhdWx0KFwiTWFya2Rvd24gc2l0ZSBnZW5lcmF0b3JcIiksXG4gIGluY2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKS5kZWZhdWx0KFwiKiovKi5tZFwiKSxcbiAgZXhjbHVkZTogei51bmlvbihbei5zdHJpbmcoKSwgei5hcnJheSh6LnN0cmluZygpKV0pLm9wdGlvbmFsKCksXG4gIGNvZGVUaGVtZUxpZ2h0OiBDb2RlVGhlbWVMaWdodC5kZWZhdWx0KFwiY2F0cHB1Y2Npbi1sYXR0ZVwiKSxcbiAgY29kZVRoZW1lRGFyazogQ29kZVRoZW1lRGFyay5kZWZhdWx0KFwiY2F0cHB1Y2Npbi1tb2NoYVwiKSxcbiAgbGlua3M6IHouYXJyYXkoTGluaykub3B0aW9uYWwoKSxcbiAgc2VjdGlvbnM6IHouYXJyYXkoU2VjdGlvbikub3B0aW9uYWwoKSxcbiAgcGF0Y2hlczogei5hcnJheShQYXRjaCkub3B0aW9uYWwoKSxcbiAgLy8gU3RvcmVkIGFzIGB1bmtub3duYCBpbiB0aGUgc2NoZW1hICh6b2QgY2FuJ3QgdHlwZSBhIFZpdGUgVXNlckNvbmZpZ1xuICAvLyBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBvbmUgbWVhbmluZ2Z1bGx5KTsgdGhlIHB1YmxpYyBUeXBlU2NyaXB0XG4gIC8vIHN1cmZhY2UgYWJvdmUgbGlmdHMgaXQgYmFjayB0byBWaXRlT3ZlcnJpZGUgZm9yIGVkaXRvciBzdXBwb3J0LlxuICB2aXRlOiB6LnVua25vd24oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIFdlYnNpdGUgY29uZmlndXJhdGlvbiBpbmplY3RlZCBhdCBidWlsZCB0aW1lIHZpYSBWaXRlIGRlZmluZSAqL1xuZXhwb3J0IHR5cGUgV2Vic2l0ZUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIFdlYnNpdGVDb25maWc+XG5leHBvcnQgY29uc3QgV2Vic2l0ZUNvbmZpZyA9IFVzZXJDb25maWcucGljayh7XG4gIHRpdGxlOiB0cnVlLFxuICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgc2l0ZTogdHJ1ZSxcbiAgYmFzZTogdHJ1ZSxcbiAgZmF2aWNvbjogdHJ1ZSxcbiAgbG9nbzogdHJ1ZSxcbiAgbGlua3M6IHRydWUsXG4gIHNlY3Rpb25zOiB0cnVlLFxufSlcblxuLyoqXG4gKiBTeXN0ZW0tY29tcHV0ZWQgY29uZmlndXJhdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZyBmaWxlIGxvY2F0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTeXN0ZW1Db25maWcgPSB6LmluZmVyPHR5cGVvZiBTeXN0ZW1Db25maWc+XG5leHBvcnQgY29uc3QgU3lzdGVtQ29uZmlnID0gei5vYmplY3Qoe1xuICByb290OiB6LnN0cmluZygpLFxuICBjb25maWdQYXRoOiB6LnN0cmluZygpLFxufSlcblxuLyoqXG4gKiBGdWxseSByZXNvbHZlZCBMaXZlbWFyayBjb25maWd1cmF0aW9uLlxuICpcbiAqIGB2aXRlYCBzdGF5cyBgdW5rbm93bmAgaGVyZSBiZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBydW50aW1lIHNjaGVtYVxuICogcHJvZHVjZXMg4oCUIGNvbnN1bWVyLWZhY2luZyB0eXBpbmcgaGFwcGVucyB2aWEge0BsaW5rIFVzZXJDb25maWd9IHNvXG4gKiBgZGVmaW5lQ29uZmlnYCBzaG93cyB0aGUgcmlnaHQgc2hhcGUgaW4gZWRpdG9ycy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgQ29uZmlnPlxuZXhwb3J0IGNvbnN0IENvbmZpZyA9IFVzZXJDb25maWcubWVyZ2UoU3lzdGVtQ29uZmlnKVxuIl19
@@ -10,7 +10,6 @@ export declare const Patch: z.ZodObject<{
10
10
  icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
11
11
  order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
12
12
  path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
13
- group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
14
13
  sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
15
14
  toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
15
  image: z.ZodOptional<z.ZodOptional<z.ZodString>>;