livemark 0.27.2 → 0.28.1
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/build/components/HeaderSearch.js +3 -2
- package/build/components/SearchDialog.js +3 -2
- package/build/components/SearchResultGroups.d.ts +6 -0
- package/build/components/SearchResultGroups.js +25 -0
- package/build/content-collections.js +33 -8
- package/build/helpers/article-search.d.ts +1 -7
- package/build/helpers/article-search.js +1 -24
- package/build/helpers/fence-languages.d.ts +2 -0
- package/build/helpers/fence-languages.js +14 -0
- package/build/helpers/fence-languages.unit.d.ts +1 -0
- package/build/helpers/fence-languages.unit.js +22 -0
- package/build/helpers/tailwind-sources.d.ts +4 -2
- package/build/helpers/tailwind-sources.js +10 -5
- package/build/helpers/tailwind-sources.unit.js +9 -8
- package/build/plugins/vite-livemark.js +3 -3
- package/build/router.js +6 -1
- package/build/routes/$.js +5 -1
- package/build/vite.config.js +4 -2
- package/package.json +1 -1
- package/skills/livemark-customization/SKILL.md +3 -2
- package/skills/livemark-deployment/SKILL.md +72 -0
- package/skills/livemark-landing/SKILL.md +84 -0
- package/source/components/HeaderSearch.tsx +2 -1
- package/source/components/SearchDialog.tsx +2 -1
- package/source/components/SearchResultGroups.tsx +54 -0
- package/source/content-collections.ts +37 -9
- package/source/helpers/{article-search.tsx → article-search.ts} +1 -53
- package/source/helpers/fence-languages.ts +21 -0
- package/source/helpers/fence-languages.unit.ts +28 -0
- package/source/helpers/tailwind-sources.ts +9 -4
- package/source/helpers/tailwind-sources.unit.ts +9 -8
- package/source/plugins/vite-livemark.ts +2 -2
- package/source/router.tsx +6 -0
- package/source/routes/$.tsx +3 -0
- package/source/vite.config.ts +3 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
3
|
import { X } from "lucide-react";
|
|
4
|
-
import {
|
|
4
|
+
import { useArticleSearch } from "../helpers/article-search.js";
|
|
5
|
+
import { SearchResultGroups } from "./SearchResultGroups.js";
|
|
5
6
|
import { Command, CommandEmpty, CommandInput, CommandList } from "../elements/command.js";
|
|
6
7
|
/** Search field that takes over the header below `lg`, with results dropping under it */
|
|
7
8
|
export function HeaderSearch(props) {
|
|
@@ -30,4 +31,4 @@ export function HeaderSearch(props) {
|
|
|
30
31
|
search.selectArticle(path);
|
|
31
32
|
} })] }) })] }));
|
|
32
33
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyU2VhcmNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3pELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQTBCLENBQUE7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF5QixDQUFBO0FBRTFGLHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQThCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUE7SUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQTtJQUN4QyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFBO0lBRWxELGlGQUFpRjtJQUNqRixlQUFlLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUUsT0FBTyxFQUFFLENBQUE7UUFDVCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDMUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzdDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDL0MsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4saUZBQWlGO0lBQ2pGLE9BQU8sQ0FDTCxNQUFDLE9BQU8sSUFDTixHQUFHLEVBQUUsR0FBRyw4QkFFUixZQUFZLEVBQUUsS0FBSyxFQUNuQixJQUFJLFFBQ0osU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRO2dCQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM3QyxDQUFDLEVBQ0QsU0FBUyxFQUFDLGtGQUFrRixhQUU1RixlQUFLLFNBQVMsRUFBQywwQ0FBMEMsYUFDdkQsY0FBSyxTQUFTLEVBQUMsa0xBQWtMLFlBQy9MLEtBQUMsWUFBWSxJQUNYLFNBQVMsUUFDVCxXQUFXLEVBQUMsZ0JBQWdCLEVBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsR0FDcEMsR0FDRSxFQUNOLGlCQUNFLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLGdCQUNYLGNBQWMsRUFDekIsS0FBSyxFQUFDLGNBQWMsRUFDcEIsU0FBUyxFQUFDLDhKQUE4SixZQUV4SyxLQUFDLENBQUMsSUFBQyxTQUFTLEVBQUMsUUFBUSxHQUFHLEdBQ2pCLElBQ0wsRUFDTixjQUNFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFDeEIsU0FBUyxFQUFDLG1FQUFtRSxZQUU3RSxNQUFDLFdBQVcsSUFBQyxTQUFTLEVBQUMsc0NBQXNDLGFBQzNELEtBQUMsWUFBWSxjQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dDQUNsQixDQUFDLENBQUMsbUJBQW1CO2dDQUNyQixDQUFDLENBQUMscUNBQXFDLEdBQzVCLEVBQ2YsS0FBQyxrQkFBa0IsSUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ25CLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0NBQ2YsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO2dDQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQzVCLENBQUMsR0FDRCxJQUNVLEdBQ1YsSUFDRSxDQUNYLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFggfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IHVzZUFydGljbGVTZWFyY2ggfSBmcm9tIFwiLi4vaGVscGVycy9hcnRpY2xlLXNlYXJjaC50c1wiXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRHcm91cHMgfSBmcm9tIFwiLi9TZWFyY2hSZXN1bHRHcm91cHMudHN4XCJcbmltcG9ydCB7IENvbW1hbmQsIENvbW1hbmRFbXB0eSwgQ29tbWFuZElucHV0LCBDb21tYW5kTGlzdCB9IGZyb20gXCIuLi9lbGVtZW50cy9jb21tYW5kLnRzeFwiXG5cbi8qKiBTZWFyY2ggZmllbGQgdGhhdCB0YWtlcyBvdmVyIHRoZSBoZWFkZXIgYmVsb3cgYGxnYCwgd2l0aCByZXN1bHRzIGRyb3BwaW5nIHVuZGVyIGl0ICovXG5leHBvcnQgZnVuY3Rpb24gSGVhZGVyU2VhcmNoKHByb3BzOiB7IG9uQ2xvc2U6ICgpID0+IHZvaWQgfSkge1xuICBjb25zdCBzZWFyY2ggPSB1c2VBcnRpY2xlU2VhcmNoKClcbiAgY29uc3QgYmFyID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbcGFuZWxUb3AsIHNldFBhbmVsVG9wXSA9IHVzZVN0YXRlPG51bWJlcj4oKVxuXG4gIC8vIE1lYXN1cmVkLCBub3QgYHRvcC0xNmA6IHdoaWxlIHRoZSBCYW5uZXIgaXMgaW4gdmlldyBpdCBwdXNoZXMgdGhlIGhlYWRlciBkb3duLlxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG1lYXN1cmUgPSAoKSA9PiBzZXRQYW5lbFRvcChiYXIuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKVxuICAgIG1lYXN1cmUoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG1lYXN1cmUsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIG1lYXN1cmUpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG1lYXN1cmUpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBtZWFzdXJlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gYGRhdGEtaGVhZGVyLXNlYXJjaGAgbGlmdHMgdGhlIGhlYWRlciBvdmVyIHRoZSBUb2MgYmFyIGFuZCBCYWNrVG9Ub3AgKExheW91dCkuXG4gIHJldHVybiAoXG4gICAgPENvbW1hbmRcbiAgICAgIHJlZj17YmFyfVxuICAgICAgZGF0YS1oZWFkZXItc2VhcmNoXG4gICAgICBzaG91bGRGaWx0ZXI9e2ZhbHNlfVxuICAgICAgbG9vcFxuICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHByb3BzLm9uQ2xvc2UoKVxuICAgICAgfX1cbiAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgei0xMCBvdmVyZmxvdy12aXNpYmxlIHJvdW5kZWQtbm9uZSEgYmctYmFja2dyb3VuZCBwLTAgbGc6aGlkZGVuXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIGl0ZW1zLWNlbnRlciBnYXAtMSBwbC0xIHByLTJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgWyZfW2RhdGEtc2xvdD1jb21tYW5kLWlucHV0LXdyYXBwZXJdXTpwLTAgWyZfW2RhdGEtc2xvdD1pbnB1dC1ncm91cF1dOmJvcmRlci10cmFuc3BhcmVudCEgWyZfW2RhdGEtc2xvdD1pbnB1dC1ncm91cF1dOmJnLXRyYW5zcGFyZW50ISBbJl9bZGF0YS1zbG90PWlucHV0LWdyb3VwXV06cmluZy0wIVwiPlxuICAgICAgICAgIDxDb21tYW5kSW5wdXRcbiAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZG9jcy4uLlwiXG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoLnF1ZXJ5fVxuICAgICAgICAgICAgb25WYWx1ZUNoYW5nZT17c2VhcmNoLnNlYXJjaEFydGljbGVzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17cHJvcHMub25DbG9zZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2Ugc2VhcmNoXCJcbiAgICAgICAgICB0aXRsZT1cIkNsb3NlIHNlYXJjaFwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBzaXplLTkgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtY29udHJvbCB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6YmctbXV0ZWQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxYIGNsYXNzTmFtZT1cInNpemUtNVwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7IHRvcDogcGFuZWxUb3AgfX1cbiAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQteC0wIGJvdHRvbS0wIGZsZXggZmxleC1jb2wgYm9yZGVyLXQgYmctYmFja2dyb3VuZCBwLTFcIlxuICAgICAgPlxuICAgICAgICA8Q29tbWFuZExpc3QgY2xhc3NOYW1lPVwibWF4LWgtbm9uZSBmbGV4LTEgb3ZlcnNjcm9sbC1jb250YWluXCI+XG4gICAgICAgICAgPENvbW1hbmRFbXB0eT5cbiAgICAgICAgICAgIHtzZWFyY2gucXVlcnkudHJpbSgpXG4gICAgICAgICAgICAgID8gXCJObyByZXN1bHRzIGZvdW5kLlwiXG4gICAgICAgICAgICAgIDogXCJUeXBlIHRvIHNlYXJjaCBhY3Jvc3MgYWxsIGNvbnRlbnRzLlwifVxuICAgICAgICAgIDwvQ29tbWFuZEVtcHR5PlxuICAgICAgICAgIDxTZWFyY2hSZXN1bHRHcm91cHNcbiAgICAgICAgICAgIHF1ZXJ5PXtzZWFyY2gucXVlcnl9XG4gICAgICAgICAgICBncm91cGVkPXtzZWFyY2guZ3JvdXBlZH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtwYXRoID0+IHtcbiAgICAgICAgICAgICAgcHJvcHMub25DbG9zZSgpXG4gICAgICAgICAgICAgIHNlYXJjaC5zZWxlY3RBcnRpY2xlKHBhdGgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQ29tbWFuZExpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L0NvbW1hbmQ+XG4gIClcbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useArticleSearch } from "../helpers/article-search.js";
|
|
3
|
+
import { SearchResultGroups } from "./SearchResultGroups.js";
|
|
3
4
|
import { CommandDialog, CommandEmpty, CommandInput, CommandList, } from "../elements/command.js";
|
|
4
5
|
/** Full-text search dialog powered by Orama */
|
|
5
6
|
export function SearchDialog(props) {
|
|
@@ -11,4 +12,4 @@ export function SearchDialog(props) {
|
|
|
11
12
|
search.selectArticle(path);
|
|
12
13
|
} })] }), _jsxs("div", { className: "flex items-center gap-4 border-t mt-2 px-4 py-2.5 text-sm text-muted-foreground", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("kbd", { className: "rounded border border-border bg-muted px-1.5 py-0.5 text-xs font-mono", children: "\u2191\u2193" }), "navigate"] }), _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("kbd", { className: "rounded border border-border bg-muted px-1.5 py-0.5 text-xs font-mono", children: "\u21B5" }), "select"] }), _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("kbd", { className: "rounded border border-border bg-muted px-1.5 py-0.5 text-xs font-mono", children: "esc" }), "close"] })] })] }));
|
|
13
14
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2VhcmNoRGlhbG9nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQTBCLENBQUE7QUFDN0QsT0FBTyxFQUNMLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLHdCQUF5QixDQUFBO0FBRWhDLCtDQUErQztBQUMvQyxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBRzVCO0lBQ0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtJQUVqQyxPQUFPLENBQ0wsTUFBQyxhQUFhLElBQ1osS0FBSyxFQUFDLFFBQVEsRUFDZCxXQUFXLEVBQUMsc0JBQXNCLEVBQ2xDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFDaEMsWUFBWSxFQUFFLEtBQUssRUFDbkIsSUFBSSxtQkFFSixLQUFDLFlBQVksSUFDWCxXQUFXLEVBQUMsZ0JBQWdCLEVBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEdBQ3hDLEVBQ0YsTUFBQyxXQUFXLElBQUMsU0FBUyxFQUFDLFVBQVUsYUFDL0IsS0FBQyxZQUFZLGNBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7NEJBQ2xCLENBQUMsQ0FBQyxtQkFBbUI7NEJBQ3JCLENBQUMsQ0FBQyxxQ0FBcUMsR0FDNUIsRUFDZixLQUFDLGtCQUFrQixJQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDZixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBOzRCQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUM1QixDQUFDLEdBQ0QsSUFDVSxFQUNkLGVBQUssU0FBUyxFQUFDLGlGQUFpRixhQUM5RixnQkFBTSxTQUFTLEVBQUMsMkJBQTJCLGFBQ3pDLGNBQUssU0FBUyxFQUFDLHVFQUF1RSw2QkFFaEYsZ0JBRUQsRUFDUCxnQkFBTSxTQUFTLEVBQUMsMkJBQTJCLGFBQ3pDLGNBQUssU0FBUyxFQUFDLHVFQUF1RSx1QkFFaEYsY0FFRCxFQUNQLGdCQUFNLFNBQVMsRUFBQywyQkFBMkIsYUFDekMsY0FBSyxTQUFTLEVBQUMsdUVBQXVFLG9CQUVoRixhQUVELElBQ0gsSUFDUSxDQUNqQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUFydGljbGVTZWFyY2ggfSBmcm9tIFwiLi4vaGVscGVycy9hcnRpY2xlLXNlYXJjaC50c1wiXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRHcm91cHMgfSBmcm9tIFwiLi9TZWFyY2hSZXN1bHRHcm91cHMudHN4XCJcbmltcG9ydCB7XG4gIENvbW1hbmREaWFsb2csXG4gIENvbW1hbmRFbXB0eSxcbiAgQ29tbWFuZElucHV0LFxuICBDb21tYW5kTGlzdCxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL2NvbW1hbmQudHN4XCJcblxuLyoqIEZ1bGwtdGV4dCBzZWFyY2ggZGlhbG9nIHBvd2VyZWQgYnkgT3JhbWEgKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWFyY2hEaWFsb2cocHJvcHM6IHtcbiAgb3BlbjogYm9vbGVhblxuICBvbk9wZW5DaGFuZ2U6IChvcGVuOiBib29sZWFuKSA9PiB2b2lkXG59KSB7XG4gIGNvbnN0IHNlYXJjaCA9IHVzZUFydGljbGVTZWFyY2goKVxuXG4gIHJldHVybiAoXG4gICAgPENvbW1hbmREaWFsb2dcbiAgICAgIHRpdGxlPVwiU2VhcmNoXCJcbiAgICAgIGRlc2NyaXB0aW9uPVwiU2VhcmNoIGRvY3VtZW50YXRpb25cIlxuICAgICAgb3Blbj17cHJvcHMub3Blbn1cbiAgICAgIG9uT3BlbkNoYW5nZT17cHJvcHMub25PcGVuQ2hhbmdlfVxuICAgICAgc2hvdWxkRmlsdGVyPXtmYWxzZX1cbiAgICAgIGxvb3BcbiAgICA+XG4gICAgICA8Q29tbWFuZElucHV0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGRvY3MuLi5cIlxuICAgICAgICB2YWx1ZT17c2VhcmNoLnF1ZXJ5fVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtzZWFyY2guc2VhcmNoQXJ0aWNsZXN9XG4gICAgICAgIG9uQ2xlYXI9eygpID0+IHNlYXJjaC5zZWFyY2hBcnRpY2xlcyhcIlwiKX1cbiAgICAgIC8+XG4gICAgICA8Q29tbWFuZExpc3QgY2xhc3NOYW1lPVwibWF4LWgtODBcIj5cbiAgICAgICAgPENvbW1hbmRFbXB0eT5cbiAgICAgICAgICB7c2VhcmNoLnF1ZXJ5LnRyaW0oKVxuICAgICAgICAgICAgPyBcIk5vIHJlc3VsdHMgZm91bmQuXCJcbiAgICAgICAgICAgIDogXCJUeXBlIHRvIHNlYXJjaCBhY3Jvc3MgYWxsIGNvbnRlbnRzLlwifVxuICAgICAgICA8L0NvbW1hbmRFbXB0eT5cbiAgICAgICAgPFNlYXJjaFJlc3VsdEdyb3Vwc1xuICAgICAgICAgIHF1ZXJ5PXtzZWFyY2gucXVlcnl9XG4gICAgICAgICAgZ3JvdXBlZD17c2VhcmNoLmdyb3VwZWR9XG4gICAgICAgICAgb25TZWxlY3Q9e3BhdGggPT4ge1xuICAgICAgICAgICAgcHJvcHMub25PcGVuQ2hhbmdlKGZhbHNlKVxuICAgICAgICAgICAgc2VhcmNoLnNlbGVjdEFydGljbGUocGF0aClcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9Db21tYW5kTGlzdD5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgYm9yZGVyLXQgbXQtMiBweC00IHB5LTIuNSB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGtiZCBjbGFzc05hbWU9XCJyb3VuZGVkIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTEuNSBweS0wLjUgdGV4dC14cyBmb250LW1vbm9cIj5cbiAgICAgICAgICAgIOKGkeKGk1xuICAgICAgICAgIDwva2JkPlxuICAgICAgICAgIG5hdmlnYXRlXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgIDxrYmQgY2xhc3NOYW1lPVwicm91bmRlZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1tdXRlZCBweC0xLjUgcHktMC41IHRleHQteHMgZm9udC1tb25vXCI+XG4gICAgICAgICAgICDihrVcbiAgICAgICAgICA8L2tiZD5cbiAgICAgICAgICBzZWxlY3RcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGtiZCBjbGFzc05hbWU9XCJyb3VuZGVkIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTEuNSBweS0wLjUgdGV4dC14cyBmb250LW1vbm9cIj5cbiAgICAgICAgICAgIGVzY1xuICAgICAgICAgIDwva2JkPlxuICAgICAgICAgIGNsb3NlXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvQ29tbWFuZERpYWxvZz5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CommandGroup, CommandItem } from "../elements/command.js";
|
|
3
|
+
import { resolveArticleIcon } from "../helpers/article-icon.js";
|
|
4
|
+
import { buildHighlightPattern, findTextMatches } from "../helpers/search-highlight.js";
|
|
5
|
+
export function SearchResultGroups(props) {
|
|
6
|
+
return [...props.grouped.entries()].map(([group, items]) => (_jsx(CommandGroup, { heading: group, children: items.map(result => {
|
|
7
|
+
const Icon = resolveArticleIcon(result.icon);
|
|
8
|
+
return (_jsxs(CommandItem, { value: result.path, onSelect: () => props.onSelect(result.path), className: "py-2.5", children: [Icon && _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: [_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: props.query }) }))] })] }, result.path));
|
|
9
|
+
}) }, group)));
|
|
10
|
+
}
|
|
11
|
+
function HighlightedText(props) {
|
|
12
|
+
const pattern = buildHighlightPattern(props.term);
|
|
13
|
+
if (!pattern)
|
|
14
|
+
return _jsx(_Fragment, { children: props.text });
|
|
15
|
+
const parts = [];
|
|
16
|
+
let cursor = 0;
|
|
17
|
+
for (const [start, end] of findTextMatches(props.text, pattern)) {
|
|
18
|
+
parts.push(props.text.slice(cursor, start));
|
|
19
|
+
parts.push(_jsx("span", { className: "text-foreground font-medium", children: props.text.slice(start, end) }, start));
|
|
20
|
+
cursor = end;
|
|
21
|
+
}
|
|
22
|
+
parts.push(props.text.slice(cursor));
|
|
23
|
+
return _jsx(_Fragment, { children: parts });
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoUmVzdWx0R3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2VhcmNoUmVzdWx0R3JvdXBzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBeUIsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUUvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFFdkYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBSWxDO0lBQ0MsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUMxRCxLQUFDLFlBQVksSUFBYSxPQUFPLEVBQUUsS0FBSyxZQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM1QyxPQUFPLENBQ0wsTUFBQyxXQUFXLElBRVYsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ2xCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDM0MsU0FBUyxFQUFDLFFBQVEsYUFFakIsSUFBSSxJQUFJLEtBQUMsSUFBSSxJQUFDLFNBQVMsRUFBQyw4Q0FBOEMsR0FBRyxFQUMxRSxlQUFLLFNBQVMsRUFBQywrQkFBK0IsYUFDNUMsZUFBTSxTQUFTLEVBQUMsdUJBQXVCLFlBQUUsTUFBTSxDQUFDLEtBQUssR0FBUSxFQUM1RCxNQUFNLENBQUMsT0FBTyxJQUFJLENBQ2pCLGVBQU0sU0FBUyxFQUFDLDRDQUE0QyxZQUMxRCxLQUFDLGVBQWUsSUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBSSxHQUN2RCxDQUNSLElBQ0csS0FiRCxNQUFNLENBQUMsSUFBSSxDQWNKLENBQ2YsQ0FBQTtRQUNILENBQUMsQ0FBQyxJQXJCZSxLQUFLLENBc0JULENBQ2hCLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFxQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLDRCQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUksQ0FBQTtJQUN0QyxNQUFNLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQ25DLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUNkLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDM0MsS0FBSyxDQUFDLElBQUksQ0FDUixlQUFrQixTQUFTLEVBQUMsNkJBQTZCLFlBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFEcEIsS0FBSyxDQUVULENBQ1IsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLENBQUE7SUFDZCxDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLE9BQU8sNEJBQUcsS0FBSyxHQUFJLENBQUE7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmRHcm91cCwgQ29tbWFuZEl0ZW0gfSBmcm9tIFwiLi4vZWxlbWVudHMvY29tbWFuZC50c3hcIlxuaW1wb3J0IHsgcmVzb2x2ZUFydGljbGVJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCB0eXBlIHsgU2VhcmNoUmVzdWx0IH0gZnJvbSBcIi4uL2hlbHBlcnMvYXJ0aWNsZS1zZWFyY2gudHNcIlxuaW1wb3J0IHsgYnVpbGRIaWdobGlnaHRQYXR0ZXJuLCBmaW5kVGV4dE1hdGNoZXMgfSBmcm9tIFwiLi4vaGVscGVycy9zZWFyY2gtaGlnaGxpZ2h0LnRzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIFNlYXJjaFJlc3VsdEdyb3Vwcyhwcm9wczoge1xuICBxdWVyeTogc3RyaW5nXG4gIGdyb3VwZWQ6IE1hcDxzdHJpbmcsIFNlYXJjaFJlc3VsdFtdPlxuICBvblNlbGVjdDogKHBhdGg6IHN0cmluZykgPT4gdm9pZFxufSkge1xuICByZXR1cm4gWy4uLnByb3BzLmdyb3VwZWQuZW50cmllcygpXS5tYXAoKFtncm91cCwgaXRlbXNdKSA9PiAoXG4gICAgPENvbW1hbmRHcm91cCBrZXk9e2dyb3VwfSBoZWFkaW5nPXtncm91cH0+XG4gICAgICB7aXRlbXMubWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIGNvbnN0IEljb24gPSByZXNvbHZlQXJ0aWNsZUljb24ocmVzdWx0Lmljb24pXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbW1hbmRJdGVtXG4gICAgICAgICAgICBrZXk9e3Jlc3VsdC5wYXRofVxuICAgICAgICAgICAgdmFsdWU9e3Jlc3VsdC5wYXRofVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IHByb3BzLm9uU2VsZWN0KHJlc3VsdC5wYXRoKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInB5LTIuNVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0ljb24gJiYgPEljb24gY2xhc3NOYW1lPVwic2l6ZS01IHNocmluay0wIG10LTAuNSBzZWxmLXN0YXJ0IG9wYWNpdHktNjBcIiAvPn1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMC41IG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtbWVkaXVtXCI+e3Jlc3VsdC50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgIHtyZXN1bHQuc25pcHBldCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHRleHQ9e3Jlc3VsdC5zbmlwcGV0fSB0ZXJtPXtwcm9wcy5xdWVyeX0gLz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0NvbW1hbmRJdGVtPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8L0NvbW1hbmRHcm91cD5cbiAgKSlcbn1cblxuZnVuY3Rpb24gSGlnaGxpZ2h0ZWRUZXh0KHByb3BzOiB7IHRleHQ6IHN0cmluZzsgdGVybTogc3RyaW5nIH0pIHtcbiAgY29uc3QgcGF0dGVybiA9IGJ1aWxkSGlnaGxpZ2h0UGF0dGVybihwcm9wcy50ZXJtKVxuICBpZiAoIXBhdHRlcm4pIHJldHVybiA8Pntwcm9wcy50ZXh0fTwvPlxuICBjb25zdCBwYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXVxuICBsZXQgY3Vyc29yID0gMFxuICBmb3IgKGNvbnN0IFtzdGFydCwgZW5kXSBvZiBmaW5kVGV4dE1hdGNoZXMocHJvcHMudGV4dCwgcGF0dGVybikpIHtcbiAgICBwYXJ0cy5wdXNoKHByb3BzLnRleHQuc2xpY2UoY3Vyc29yLCBzdGFydCkpXG4gICAgcGFydHMucHVzaChcbiAgICAgIDxzcGFuIGtleT17c3RhcnR9IGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZCBmb250LW1lZGl1bVwiPlxuICAgICAgICB7cHJvcHMudGV4dC5zbGljZShzdGFydCwgZW5kKX1cbiAgICAgIDwvc3Bhbj4sXG4gICAgKVxuICAgIGN1cnNvciA9IGVuZFxuICB9XG4gIHBhcnRzLnB1c2gocHJvcHMudGV4dC5zbGljZShjdXJzb3IpKVxuICByZXR1cm4gPD57cGFydHN9PC8+XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { basename, relative, resolve } from "node:path";
|
|
4
4
|
import { DEFAULT_EXCLUDES } from "./settings.js";
|
|
@@ -45,6 +45,7 @@ import { rehypeTaskListA11y } from "./plugins/rehype-task-list-a11y.js";
|
|
|
45
45
|
import { transformerIcon } from "./plugins/shiki-icon.js";
|
|
46
46
|
import { resolveAssetPath } from "./helpers/resolve-asset-path.js";
|
|
47
47
|
import { resolveIncludes } from "./helpers/resolve-includes.js";
|
|
48
|
+
import { collectFenceLanguages } from "./helpers/fence-languages.js";
|
|
48
49
|
import { extractSearchText } from "./helpers/search-text.js";
|
|
49
50
|
import { stripLeadingH1 } from "./helpers/llms.js";
|
|
50
51
|
import { extractToc } from "./helpers/toc.js";
|
|
@@ -77,16 +78,36 @@ function toPath(filePath) {
|
|
|
77
78
|
const name = basename(filePath).replace(/\.\w+$/, "");
|
|
78
79
|
return slugify(name);
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
+
const lastUpdatedByFile = readLastUpdatedDates();
|
|
82
|
+
// One `git log` for every file: a spawn per article blocks the build ~30 ms each, and
|
|
83
|
+
// isn't cached across builds like the MDX is.
|
|
84
|
+
function readLastUpdatedDates() {
|
|
85
|
+
const dates = new Map();
|
|
81
86
|
try {
|
|
82
|
-
const
|
|
87
|
+
const log = execFileSync("git", [
|
|
88
|
+
"-c",
|
|
89
|
+
"core.quotePath=false",
|
|
90
|
+
"log",
|
|
91
|
+
"--format=%x00%cI",
|
|
92
|
+
"--name-only",
|
|
93
|
+
"--relative",
|
|
94
|
+
], {
|
|
83
95
|
cwd: config.root,
|
|
84
96
|
encoding: "utf-8",
|
|
85
|
-
|
|
86
|
-
|
|
97
|
+
maxBuffer: 256 * 1024 * 1024,
|
|
98
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
99
|
+
});
|
|
100
|
+
let date;
|
|
101
|
+
for (const line of log.split("\n")) {
|
|
102
|
+
if (line.startsWith("\0"))
|
|
103
|
+
date = line.slice(1);
|
|
104
|
+
else if (line && date && !dates.has(line))
|
|
105
|
+
dates.set(line, date);
|
|
106
|
+
}
|
|
107
|
+
return dates;
|
|
87
108
|
}
|
|
88
109
|
catch {
|
|
89
|
-
return
|
|
110
|
+
return dates;
|
|
90
111
|
}
|
|
91
112
|
}
|
|
92
113
|
function extractTitle(content, path) {
|
|
@@ -169,6 +190,10 @@ const articles = defineCollection({
|
|
|
169
190
|
// renders without line padding, theme colours or transformers.
|
|
170
191
|
defaultLanguage: "text",
|
|
171
192
|
fallbackLanguage: "text",
|
|
193
|
+
// Without `langs`, Shiki compiles all ~360 bundled grammars up front (~4 s).
|
|
194
|
+
// `lazy` covers fences a remark plugin generates, which the scan cannot see.
|
|
195
|
+
langs: await collectFenceLanguages(bodyContent),
|
|
196
|
+
lazy: true,
|
|
172
197
|
// Darken catppuccin-latte's green (the colour used for strings and
|
|
173
198
|
// some comments) — the theme default #40A02B lands at 3.2:1 on the
|
|
174
199
|
// code-block background, below the WCAG AA 4.5:1 threshold.
|
|
@@ -194,7 +219,7 @@ const articles = defineCollection({
|
|
|
194
219
|
});
|
|
195
220
|
const tocItems = extractToc(content);
|
|
196
221
|
const searchText = extractSearchText(content);
|
|
197
|
-
const lastUpdated =
|
|
222
|
+
const lastUpdated = lastUpdatedByFile.get(doc._meta.filePath);
|
|
198
223
|
const image = doc.image
|
|
199
224
|
? resolveAssetPath(doc.image, filePath, config.root, config.base)
|
|
200
225
|
: undefined;
|
|
@@ -216,4 +241,4 @@ export default defineConfig({
|
|
|
216
241
|
// @ts-expect-error tsgo picks wrong overload when rehype-slug augments unified types
|
|
217
242
|
content: [articles],
|
|
218
243
|
});
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxPQUFPLE1BQU0sdUJBQXVCLENBQUE7QUFDM0MsT0FB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QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN0RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSztZQUNyQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDYixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXO1lBQ1gsS0FBSztZQUNMLEtBQUs7WUFDTCxJQUFJO1lBQ0osSUFBSTtZQUNKLFFBQVE7WUFDUixVQUFVO1lBQ1YsR0FBRztTQUNKLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsZUFBZSxZQUFZLENBQUM7SUFDMUIscUZBQXFGO0lBQ3JGLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGJhc2VuYW1lLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgREVGQVVMVF9FWENMVURFUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7IHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstcGFzc3Rocm91Z2gtZGlyZWN0aXZlLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBzdHJpcExlYWRpbmdIMSB9IGZyb20gXCIuL2hlbHBlcnMvbGxtcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKSA/IGNvbmZpZy5pbmNsdWRlIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IFtcbiAgLi4uY29uZmlnSW5jbHVkZSxcbiAgLi4uY2hhbmdlbG9nU2VjdGlvbnMubWFwKHNlY3Rpb24gPT4gY2FjaGVJbmNsdWRlR2xvYihzZWN0aW9uLCBjb25maWcpKSxcbl1cblxuY29uc3QgdXNlckV4Y2x1ZGUgPSBjb25maWcuZXhjbHVkZVxuICA/IEFycmF5LmlzQXJyYXkoY29uZmlnLmV4Y2x1ZGUpXG4gICAgPyBjb25maWcuZXhjbHVkZVxuICAgIDogW2NvbmZpZy5leGNsdWRlXVxuICA6IFtdXG4vLyBXaGVuIHRoZSBjb25zdW1lciBkb2Vzbid0IGhhdmUgYSAuZ2l0aWdub3JlLCBmYWxsIGJhY2sgdG8gYSBzZW5zaWJsZVxuLy8gZmxvb3Igc28gYCoqLyoubWRgIGRvZXNuJ3Qgc3dlZXAgdXAgZXZlcnkgUkVBRE1FLm1kIHVuZGVyIG5vZGVfbW9kdWxlcyxcbi8vIGJ1aWxkIG91dHB1dHMsIGV0Yy4gV2l0aCBhIC5naXRpZ25vcmUgcHJlc2VudCB3ZSB0cnVzdCB0aGUgdXNlci5cbmNvbnN0IGhhc0dpdGlnbm9yZSA9IGV4aXN0c1N5bmMocmVzb2x2ZShjb25maWcucm9vdCwgXCIuZ2l0aWdub3JlXCIpKVxuY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBoYXNHaXRpZ25vcmUgPyBbXSA6IFsuLi5ERUZBVUxUX0VYQ0xVREVTXVxuY29uc3QgZXhjbHVkZSA9IFsuLi5kZWZhdWx0RXhjbHVkZSwgLi4udXNlckV4Y2x1ZGVdXG5cbi8vIGNvbnRlbnQtY29sbGVjdGlvbnMgY29tcGlsZXMgdGhpcyBmaWxlIHRvIC5jb250ZW50LWNvbGxlY3Rpb25zL2NhY2hlLztcbi8vIGdvaW5nIHVwIDIgbGV2ZWxzIHJlY29uc3RydWN0cyB0aGUgYmFzZURpcmVjdG9yeSBpdCB1c2VzIGZvciBwYXRoIHJlc29sdXRpb25cbmNvbnN0IGJhc2VEaXIgPSByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLi5cIilcbmNvbnN0IGRpcmVjdG9yeSA9IHJlbGF0aXZlKGJhc2VEaXIsIGNvbmZpZy5yb290KSB8fCBcIi5cIlxuXG5mdW5jdGlvbiB0b1BhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIilcbiAgcmV0dXJuIHNsdWdpZnkobmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdFVwZGF0ZWQoZmlsZVBhdGg6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IGV4ZWNTeW5jKGBnaXQgbG9nIC0xIC0tZm9ybWF0PSVjSSAtLSBcIiR7ZmlsZVBhdGh9XCJgLCB7XG4gICAgICBjd2Q6IGNvbmZpZy5yb290LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICB9KS50cmltKClcbiAgICByZXR1cm4gdGltZXN0YW1wIHx8IHVuZGVmaW5lZFxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRpdGxlKGNvbnRlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL14jXFxzKyguKykkL20uZXhlYyhjb250ZW50KVxuICBpZiAobWF0Y2gpIHJldHVybiBtYXRjaFsxXSFcbiAgcmV0dXJuIChcbiAgICBwYXRoXG4gICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAucG9wKClcbiAgICAgID8ucmVwbGFjZSgvXFwuXFx3KyQvLCBcIlwiKSA/PyBwYXRoXG4gIClcbn1cblxuY29uc3QgYXJ0aWNsZXMgPSBkZWZpbmVDb2xsZWN0aW9uKHtcbiAgbmFtZTogXCJhcnRpY2xlc1wiLFxuICBkaXJlY3RvcnksXG4gIGluY2x1ZGUsXG4gIGV4Y2x1ZGUsXG4gIHNjaGVtYTogQXJ0aWNsZSxcbiAgdHJhbnNmb3JtOiBhc3luYyAoZG9jdW1lbnQsIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBwYXRjaCA9IGNvbmZpZy5wYXRjaGVzPy5maW5kKHAgPT4gcC5maWxlID09PSBkb2N1bWVudC5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBkb2MgPSBwYXRjaCA/IHsgLi4uZG9jdW1lbnQsIC4uLnBhdGNoLmFydGljbGUgfSA6IGRvY3VtZW50XG4gICAgY29uc3QgZmlsZVBhdGggPSByZXNvbHZlKGNvbmZpZy5yb290LCBkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlc29sdmVJbmNsdWRlcyhkb2MuY29udGVudCwgZmlsZVBhdGgpXG4gICAgY29uc3QgdGl0bGUgPSBkb2MudGl0bGUgPz8gZXh0cmFjdFRpdGxlKGNvbnRlbnQsIGRvYy5fbWV0YS5wYXRoKVxuICAgIGNvbnN0IGljb24gPSBkb2MuaWNvblxuICAgIGNvbnN0IHBhdGggPSBkb2MucGF0aCA/PyB0b1BhdGgoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIC8vIFRoZSBhcnRpY2xlJ3MgaDEgaXMgcmVuZGVyZWQgZnJvbSBgdGl0bGVgIGJ5IHRoZSBsYXlvdXQsIHNvIHN0cmlwIGFueVxuICAgIC8vIGxlYWRpbmcgaDEgaW4gdGhlIGJvZHkgdG8gYXZvaWQgdHdvIGgxcyBzaWRlLWJ5LXNpZGUgKGVzcGVjaWFsbHkgd2hlblxuICAgIC8vIGEgY29udGVudCBwYXRjaCBvdmVycmlkZXMgdGhlIHRpdGxlIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGVcbiAgICAvLyBib2R5J3Mgb3duIGhlYWRpbmcpLlxuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gc3RyaXBMZWFkaW5nSDEoY29udGVudClcbiAgICBjb25zdCBtZHggPSBhd2FpdCBjb21waWxlTURYKFxuICAgICAgY29udGV4dCxcbiAgICAgIHsgLi4uZG9jLCBjb250ZW50OiBib2R5Q29udGVudCB9LFxuICAgICAge1xuICAgICAgICByZW1hcmtQbHVnaW5zOiBbXG4gICAgICAgICAgcmVtYXJrR2ZtLFxuICAgICAgICAgIHJlbWFya0dlbW9qaSxcbiAgICAgICAgICByZW1hcmtEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICByZW1hcmtEZWZsaXN0LFxuICAgICAgICAgIHJlbWFya01hdGgsXG4gICAgICAgICAgcmVtYXJrRGlyZWN0aXZlLFxuICAgICAgICAgIHJlbWFya0NhbGxvdXQsXG4gICAgICAgICAgcmVtYXJrQ2FyZCxcbiAgICAgICAgICByZW1hcmtDb2x1bW5zLFxuICAgICAgICAgIHJlbWFya1RhYixcbiAgICAgICAgICByZW1hcmtEZXRhaWxzLFxuICAgICAgICAgIHJlbWFya0ZpbGV0cmVlLFxuICAgICAgICAgIHJlbWFya0ljb24sXG4gICAgICAgICAgcmVtYXJrQmFkZ2UsXG4gICAgICAgICAgcmVtYXJrQnV0dG9uLFxuICAgICAgICAgIHJlbWFya0FiYnIsXG4gICAgICAgICAgcmVtYXJrR2l0aHViQ2FsbG91dCxcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZW1hcmtJbWFnZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlc29sdmUoY29uZmlnLnJvb3QsIGRvYy5fbWV0YS5maWxlUGF0aCksXG4gICAgICAgICAgICAgIHJvb3Q6IGNvbmZpZy5yb290LFxuICAgICAgICAgICAgICBiYXNlOiBjb25maWcuYmFzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZW1hcmtBbnNpLFxuICAgICAgICAgIHJlbWFya01lcm1haWQsXG4gICAgICAgICAgcmVtYXJrTWVkaWEsXG4gICAgICAgICAgcmVtYXJrVG9jLFxuICAgICAgICAgIHJlbWFya05wbSxcbiAgICAgICAgICByZW1hcmtDb2RlVGFicyxcbiAgICAgICAgICByZW1hcmtTdGVwcyxcbiAgICAgICAgICByZW1hcmtDdXN0b21IZWFkaW5nSWQsXG4gICAgICAgICAgLy8gUnVuIGxhc3Q6IGFueXRoaW5nIHN0aWxsIHR5cGVkIGFzIGEgZGlyZWN0aXZlIGFmdGVyIGV2ZXJ5IGhhbmRsZXJcbiAgICAgICAgICAvLyBhYm92ZSBpcyB1bmludGVuZGVkIChlLmcuIGAzLjI6MWAsIGBwb3J0OjgwODBgKSDigJQgcGFzc3Rocm91Z2ggYXNcbiAgICAgICAgICAvLyBwbGFpbiB0ZXh0IHNvIGl0IGRvZXNuJ3QgcmVuZGVyIGFzIGFuIGVtcHR5IHNwYW4vZGl2LlxuICAgICAgICAgIHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlLFxuICAgICAgICBdLFxuICAgICAgICByZWh5cGVQbHVnaW5zOiBbXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVoeXBlU2hpa2ksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRoZW1lczoge1xuICAgICAgICAgICAgICAgIGxpZ2h0OiBjb25maWcuY29kZVRoZW1lTGlnaHQsXG4gICAgICAgICAgICAgICAgZGFyazogY29uZmlnLmNvZGVUaGVtZURhcmssXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIEEgZmVuY2Ugd2l0aCBubyBvciBhbiB1bmtub3duIGxhbmcgaXMgb3RoZXJ3aXNlIHNraXBwZWQgYnkgU2hpa2kgYW5kXG4gICAgICAgICAgICAgIC8vIHJlbmRlcnMgd2l0aG91dCBsaW5lIHBhZGRpbmcsIHRoZW1lIGNvbG91cnMgb3IgdHJhbnNmb3JtZXJzLlxuICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IFwidGV4dFwiLFxuICAgICAgICAgICAgICBmYWxsYmFja0xhbmd1YWdlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgLy8gRGFya2VuIGNhdHBwdWNjaW4tbGF0dGUncyBncmVlbiAodGhlIGNvbG91ciB1c2VkIGZvciBzdHJpbmdzIGFuZFxuICAgICAgICAgICAgICAvLyBzb21lIGNvbW1lbnRzKSDigJQgdGhlIHRoZW1lIGRlZmF1bHQgIzQwQTAyQiBsYW5kcyBhdCAzLjI6MSBvbiB0aGVcbiAgICAgICAgICAgICAgLy8gY29kZS1ibG9jayBiYWNrZ3JvdW5kLCBiZWxvdyB0aGUgV0NBRyBBQSA0LjU6MSB0aHJlc2hvbGQuXG4gICAgICAgICAgICAgIGNvbG9yUmVwbGFjZW1lbnRzOiB7XG4gICAgICAgICAgICAgICAgXCJjYXRwcHVjY2luLWxhdHRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiIzQwYTAyYlwiOiBcIiMyYTdlMTZcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmFuc2Zvcm1lcnM6IFtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lclR3b3NsYXNoKHsgZXhwbGljaXRUcmlnZ2VyOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVySWNvbigpLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyTm90YXRpb25zKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJMaW5lSGlnaGxpZ2h0KCksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHBhcnNlTWV0YVN0cmluZzogKG1ldGE6IHN0cmluZykgPT4gKHsgXCJkYXRhLW1ldGFcIjogbWV0YSB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWh5cGVJbmxpbmVDb2RlLFxuICAgICAgICAgIHJlaHlwZVNsdWcsXG4gICAgICAgICAgcmVoeXBlS2F0ZXgsXG4gICAgICAgICAgcmVoeXBlVGFza0xpc3RBMTF5LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApXG4gICAgY29uc3QgdG9jSXRlbXMgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IGV4dHJhY3RTZWFyY2hUZXh0KGNvbnRlbnQpXG4gICAgY29uc3QgbGFzdFVwZGF0ZWQgPSBnZXRMYXN0VXBkYXRlZChkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgaW1hZ2UgPSBkb2MuaW1hZ2VcbiAgICAgID8gcmVzb2x2ZUFzc2V0UGF0aChkb2MuaW1hZ2UsIGZpbGVQYXRoLCBjb25maWcucm9vdCwgY29uZmlnLmJhc2UpXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICAuLi5kb2MsXG4gICAgICBmaWxlOiBkb2MuX21ldGEuZmlsZVBhdGgsXG4gICAgICBsYXN0VXBkYXRlZCxcbiAgICAgIGltYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBpY29uLFxuICAgICAgcGF0aCxcbiAgICAgIHRvY0l0ZW1zLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIG1keCxcbiAgICB9XG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRzZ28gcGlja3Mgd3Jvbmcgb3ZlcmxvYWQgd2hlbiByZWh5cGUtc2x1ZyBhdWdtZW50cyB1bmlmaWVkIHR5cGVzXG4gIGNvbnRlbnQ6IFthcnRpY2xlc10sXG59KVxuIl19
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxPQUFPLE1BQU0sdUJBQXVCLENBQUE7QUFDM0MsT0FBTyxxQkFBcUIsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDdEYsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsR0FDckIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQTtBQUVqQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDcEYsS0FBSyxNQUFNLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3ZGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsR0FBRyxhQUFhO0lBQ2hCLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQ3ZFLENBQUE7QUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTztJQUNoQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUNoQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDTix1RUFBdUU7QUFDdkUsMEVBQTBFO0FBQzFFLG1FQUFtRTtBQUNuRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQTtBQUNuRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUE7QUFDaEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFBO0FBRW5ELHlFQUF5RTtBQUN6RSwrRUFBK0U7QUFDL0UsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUNyRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUE7QUFFdkQsU0FBUyxNQUFNLENBQUMsUUFBZ0I7SUFDOUIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDdEIsQ0FBQztBQUVELE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQTtBQUVoRCxzRkFBc0Y7QUFDdEYsOENBQThDO0FBQzlDLFNBQVMsb0JBQW9CO0lBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBQ3ZDLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FDdEIsS0FBSyxFQUNMO1lBQ0UsSUFBSTtZQUNKLHNCQUFzQjtZQUN0QixLQUFLO1lBQ0wsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixZQUFZO1NBQ2IsRUFDRDtZQUNFLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsT0FBTztZQUNqQixTQUFTLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJO1lBQzVCLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDO1NBQ3BDLENBQ0YsQ0FBQTtRQUNELElBQUksSUFBd0IsQ0FBQTtRQUM1QixLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUMxQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNsRSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE9BQWUsRUFBRSxJQUFZO0lBQ2pELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekMsSUFBSSxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUE7SUFDM0IsT0FBTyxDQUNMLElBQUk7U0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxFQUFFO1FBQ04sRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FDbEMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztJQUNoQyxJQUFJLEVBQUUsVUFBVTtJQUNoQixTQUFTO0lBQ1QsT0FBTztJQUNQLE9BQU87SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekQsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM1RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkQsd0VBQXdFO1FBQ3hFLHdFQUF3RTtRQUN4RSxzRUFBc0U7UUFDdEUsdUJBQXVCO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLFVBQVUsQ0FDMUIsT0FBTyxFQUNQLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUNoQztZQUNFLGFBQWEsRUFBRTtnQkFDYixTQUFTO2dCQUNULFlBQVk7Z0JBQ1osb0JBQW9CO2dCQUNwQixhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsZUFBZTtnQkFDZixhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsYUFBYTtnQkFDYixTQUFTO2dCQUNULGFBQWE7Z0JBQ2IsY0FBYztnQkFDZCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsWUFBWTtnQkFDWixVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkI7b0JBQ0UsV0FBVztvQkFDWDt3QkFDRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7d0JBQ2xELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDakIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3FCQUNsQjtpQkFDRjtnQkFDRCxVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsV0FBVztnQkFDWCxTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxXQUFXO2dCQUNYLHFCQUFxQjtnQkFDckIsb0VBQW9FO2dCQUNwRSxtRUFBbUU7Z0JBQ25FLHdEQUF3RDtnQkFDeEQsMEJBQTBCO2FBQzNCO1lBQ0QsYUFBYSxFQUFFO2dCQUNiO29CQUNFLFdBQVc7b0JBQ1g7d0JBQ0UsTUFBTSxFQUFFOzRCQUNOLEtBQUssRUFBRSxNQUFNLENBQUMsY0FBYzs0QkFDNUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxhQUFhO3lCQUMzQjt3QkFDRCx1RUFBdUU7d0JBQ3ZFLCtEQUErRDt3QkFDL0QsZUFBZSxFQUFFLE1BQU07d0JBQ3ZCLGdCQUFnQixFQUFFLE1BQU07d0JBQ3hCLDZFQUE2RTt3QkFDN0UsNkVBQTZFO3dCQUM3RSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7d0JBQy9DLElBQUksRUFBRSxJQUFJO3dCQUNWLG1FQUFtRTt3QkFDbkUsbUVBQW1FO3dCQUNuRSw0REFBNEQ7d0JBQzVELGlCQUFpQixFQUFFOzRCQUNqQixrQkFBa0IsRUFBRTtnQ0FDbEIsU0FBUyxFQUFFLFNBQVM7NkJBQ3JCO3lCQUNGO3dCQUNELFlBQVksRUFBRTs0QkFDWixtQkFBbUIsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQzs0QkFDOUMsZUFBZSxFQUFFOzRCQUNqQixvQkFBb0IsRUFBRTs0QkFDdEIsd0JBQXdCLEVBQUU7eUJBQzNCO3dCQUNELGVBQWUsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsZ0JBQWdCO2dCQUNoQixVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsa0JBQWtCO2FBQ25CO1NBQ0YsQ0FDRixDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzdELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLO1lBQ3JCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDakUsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUNiLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVc7WUFDWCxLQUFLO1lBQ0wsS0FBSztZQUNMLElBQUk7WUFDSixJQUFJO1lBQ0osUUFBUTtZQUNSLFVBQVU7WUFDVixHQUFHO1NBQ0osQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLFlBQVksQ0FBQztJQUMxQixxRkFBcUY7SUFDckYsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGJhc2VuYW1lLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgREVGQVVMVF9FWENMVURFUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7IHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstcGFzc3Rocm91Z2gtZGlyZWN0aXZlLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGNvbGxlY3RGZW5jZUxhbmd1YWdlcyB9IGZyb20gXCIuL2hlbHBlcnMvZmVuY2UtbGFuZ3VhZ2VzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBzdHJpcExlYWRpbmdIMSB9IGZyb20gXCIuL2hlbHBlcnMvbGxtcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKSA/IGNvbmZpZy5pbmNsdWRlIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IFtcbiAgLi4uY29uZmlnSW5jbHVkZSxcbiAgLi4uY2hhbmdlbG9nU2VjdGlvbnMubWFwKHNlY3Rpb24gPT4gY2FjaGVJbmNsdWRlR2xvYihzZWN0aW9uLCBjb25maWcpKSxcbl1cblxuY29uc3QgdXNlckV4Y2x1ZGUgPSBjb25maWcuZXhjbHVkZVxuICA/IEFycmF5LmlzQXJyYXkoY29uZmlnLmV4Y2x1ZGUpXG4gICAgPyBjb25maWcuZXhjbHVkZVxuICAgIDogW2NvbmZpZy5leGNsdWRlXVxuICA6IFtdXG4vLyBXaGVuIHRoZSBjb25zdW1lciBkb2Vzbid0IGhhdmUgYSAuZ2l0aWdub3JlLCBmYWxsIGJhY2sgdG8gYSBzZW5zaWJsZVxuLy8gZmxvb3Igc28gYCoqLyoubWRgIGRvZXNuJ3Qgc3dlZXAgdXAgZXZlcnkgUkVBRE1FLm1kIHVuZGVyIG5vZGVfbW9kdWxlcyxcbi8vIGJ1aWxkIG91dHB1dHMsIGV0Yy4gV2l0aCBhIC5naXRpZ25vcmUgcHJlc2VudCB3ZSB0cnVzdCB0aGUgdXNlci5cbmNvbnN0IGhhc0dpdGlnbm9yZSA9IGV4aXN0c1N5bmMocmVzb2x2ZShjb25maWcucm9vdCwgXCIuZ2l0aWdub3JlXCIpKVxuY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBoYXNHaXRpZ25vcmUgPyBbXSA6IFsuLi5ERUZBVUxUX0VYQ0xVREVTXVxuY29uc3QgZXhjbHVkZSA9IFsuLi5kZWZhdWx0RXhjbHVkZSwgLi4udXNlckV4Y2x1ZGVdXG5cbi8vIGNvbnRlbnQtY29sbGVjdGlvbnMgY29tcGlsZXMgdGhpcyBmaWxlIHRvIC5jb250ZW50LWNvbGxlY3Rpb25zL2NhY2hlLztcbi8vIGdvaW5nIHVwIDIgbGV2ZWxzIHJlY29uc3RydWN0cyB0aGUgYmFzZURpcmVjdG9yeSBpdCB1c2VzIGZvciBwYXRoIHJlc29sdXRpb25cbmNvbnN0IGJhc2VEaXIgPSByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLi5cIilcbmNvbnN0IGRpcmVjdG9yeSA9IHJlbGF0aXZlKGJhc2VEaXIsIGNvbmZpZy5yb290KSB8fCBcIi5cIlxuXG5mdW5jdGlvbiB0b1BhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIilcbiAgcmV0dXJuIHNsdWdpZnkobmFtZSlcbn1cblxuY29uc3QgbGFzdFVwZGF0ZWRCeUZpbGUgPSByZWFkTGFzdFVwZGF0ZWREYXRlcygpXG5cbi8vIE9uZSBgZ2l0IGxvZ2AgZm9yIGV2ZXJ5IGZpbGU6IGEgc3Bhd24gcGVyIGFydGljbGUgYmxvY2tzIHRoZSBidWlsZCB+MzAgbXMgZWFjaCwgYW5kXG4vLyBpc24ndCBjYWNoZWQgYWNyb3NzIGJ1aWxkcyBsaWtlIHRoZSBNRFggaXMuXG5mdW5jdGlvbiByZWFkTGFzdFVwZGF0ZWREYXRlcygpIHtcbiAgY29uc3QgZGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpXG4gIHRyeSB7XG4gICAgY29uc3QgbG9nID0gZXhlY0ZpbGVTeW5jKFxuICAgICAgXCJnaXRcIixcbiAgICAgIFtcbiAgICAgICAgXCItY1wiLFxuICAgICAgICBcImNvcmUucXVvdGVQYXRoPWZhbHNlXCIsXG4gICAgICAgIFwibG9nXCIsXG4gICAgICAgIFwiLS1mb3JtYXQ9JXgwMCVjSVwiLFxuICAgICAgICBcIi0tbmFtZS1vbmx5XCIsXG4gICAgICAgIFwiLS1yZWxhdGl2ZVwiLFxuICAgICAgXSxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBjb25maWcucm9vdCxcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgbWF4QnVmZmVyOiAyNTYgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJpZ25vcmVcIl0sXG4gICAgICB9LFxuICAgIClcbiAgICBsZXQgZGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxvZy5zcGxpdChcIlxcblwiKSkge1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcIlxcMFwiKSkgZGF0ZSA9IGxpbmUuc2xpY2UoMSlcbiAgICAgIGVsc2UgaWYgKGxpbmUgJiYgZGF0ZSAmJiAhZGF0ZXMuaGFzKGxpbmUpKSBkYXRlcy5zZXQobGluZSwgZGF0ZSlcbiAgICB9XG4gICAgcmV0dXJuIGRhdGVzXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBkYXRlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUaXRsZShjb250ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eI1xccysoLispJC9tLmV4ZWMoY29udGVudClcbiAgaWYgKG1hdGNoKSByZXR1cm4gbWF0Y2hbMV0hXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpXG4gICAgICA/LnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIikgPz8gcGF0aFxuICApXG59XG5cbmNvbnN0IGFydGljbGVzID0gZGVmaW5lQ29sbGVjdGlvbih7XG4gIG5hbWU6IFwiYXJ0aWNsZXNcIixcbiAgZGlyZWN0b3J5LFxuICBpbmNsdWRlLFxuICBleGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb25cbiAgICBjb25zdCBwYXRoID0gZG9jLnBhdGggPz8gdG9QYXRoKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICAvLyBUaGUgYXJ0aWNsZSdzIGgxIGlzIHJlbmRlcmVkIGZyb20gYHRpdGxlYCBieSB0aGUgbGF5b3V0LCBzbyBzdHJpcCBhbnlcbiAgICAvLyBsZWFkaW5nIGgxIGluIHRoZSBib2R5IHRvIGF2b2lkIHR3byBoMXMgc2lkZS1ieS1zaWRlIChlc3BlY2lhbGx5IHdoZW5cbiAgICAvLyBhIGNvbnRlbnQgcGF0Y2ggb3ZlcnJpZGVzIHRoZSB0aXRsZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlXG4gICAgLy8gYm9keSdzIG93biBoZWFkaW5nKS5cbiAgICBjb25zdCBib2R5Q29udGVudCA9IHN0cmlwTGVhZGluZ0gxKGNvbnRlbnQpXG4gICAgY29uc3QgbWR4ID0gYXdhaXQgY29tcGlsZU1EWChcbiAgICAgIGNvbnRleHQsXG4gICAgICB7IC4uLmRvYywgY29udGVudDogYm9keUNvbnRlbnQgfSxcbiAgICAgIHtcbiAgICAgICAgcmVtYXJrUGx1Z2luczogW1xuICAgICAgICAgIHJlbWFya0dmbSxcbiAgICAgICAgICByZW1hcmtHZW1vamksXG4gICAgICAgICAgcmVtYXJrRGVmaW5pdGlvbkxpc3QsXG4gICAgICAgICAgcmVtYXJrRGVmbGlzdCxcbiAgICAgICAgICByZW1hcmtNYXRoLFxuICAgICAgICAgIHJlbWFya0RpcmVjdGl2ZSxcbiAgICAgICAgICByZW1hcmtDYWxsb3V0LFxuICAgICAgICAgIHJlbWFya0NhcmQsXG4gICAgICAgICAgcmVtYXJrQ29sdW1ucyxcbiAgICAgICAgICByZW1hcmtUYWIsXG4gICAgICAgICAgcmVtYXJrRGV0YWlscyxcbiAgICAgICAgICByZW1hcmtGaWxldHJlZSxcbiAgICAgICAgICByZW1hcmtJY29uLFxuICAgICAgICAgIHJlbWFya0JhZGdlLFxuICAgICAgICAgIHJlbWFya0J1dHRvbixcbiAgICAgICAgICByZW1hcmtBYmJyLFxuICAgICAgICAgIHJlbWFya0dpdGh1YkNhbGxvdXQsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVtYXJrSW1hZ2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGVQYXRoOiByZXNvbHZlKGNvbmZpZy5yb290LCBkb2MuX21ldGEuZmlsZVBhdGgpLFxuICAgICAgICAgICAgICByb290OiBjb25maWcucm9vdCxcbiAgICAgICAgICAgICAgYmFzZTogY29uZmlnLmJhc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVtYXJrQW5zaSxcbiAgICAgICAgICByZW1hcmtNZXJtYWlkLFxuICAgICAgICAgIHJlbWFya01lZGlhLFxuICAgICAgICAgIHJlbWFya1RvYyxcbiAgICAgICAgICByZW1hcmtOcG0sXG4gICAgICAgICAgcmVtYXJrQ29kZVRhYnMsXG4gICAgICAgICAgcmVtYXJrU3RlcHMsXG4gICAgICAgICAgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkLFxuICAgICAgICAgIC8vIFJ1biBsYXN0OiBhbnl0aGluZyBzdGlsbCB0eXBlZCBhcyBhIGRpcmVjdGl2ZSBhZnRlciBldmVyeSBoYW5kbGVyXG4gICAgICAgICAgLy8gYWJvdmUgaXMgdW5pbnRlbmRlZCAoZS5nLiBgMy4yOjFgLCBgcG9ydDo4MDgwYCkg4oCUIHBhc3N0aHJvdWdoIGFzXG4gICAgICAgICAgLy8gcGxhaW4gdGV4dCBzbyBpdCBkb2Vzbid0IHJlbmRlciBhcyBhbiBlbXB0eSBzcGFuL2Rpdi5cbiAgICAgICAgICByZW1hcmtQYXNzdGhyb3VnaERpcmVjdGl2ZSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBBIGZlbmNlIHdpdGggbm8gb3IgYW4gdW5rbm93biBsYW5nIGlzIG90aGVyd2lzZSBza2lwcGVkIGJ5IFNoaWtpIGFuZFxuICAgICAgICAgICAgICAvLyByZW5kZXJzIHdpdGhvdXQgbGluZSBwYWRkaW5nLCB0aGVtZSBjb2xvdXJzIG9yIHRyYW5zZm9ybWVycy5cbiAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgZmFsbGJhY2tMYW5ndWFnZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgIC8vIFdpdGhvdXQgYGxhbmdzYCwgU2hpa2kgY29tcGlsZXMgYWxsIH4zNjAgYnVuZGxlZCBncmFtbWFycyB1cCBmcm9udCAofjQgcykuXG4gICAgICAgICAgICAgIC8vIGBsYXp5YCBjb3ZlcnMgZmVuY2VzIGEgcmVtYXJrIHBsdWdpbiBnZW5lcmF0ZXMsIHdoaWNoIHRoZSBzY2FuIGNhbm5vdCBzZWUuXG4gICAgICAgICAgICAgIGxhbmdzOiBhd2FpdCBjb2xsZWN0RmVuY2VMYW5ndWFnZXMoYm9keUNvbnRlbnQpLFxuICAgICAgICAgICAgICBsYXp5OiB0cnVlLFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXh0cmFjdFNlYXJjaFRleHQoY29udGVudClcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IGxhc3RVcGRhdGVkQnlGaWxlLmdldChkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgaW1hZ2UgPSBkb2MuaW1hZ2VcbiAgICAgID8gcmVzb2x2ZUFzc2V0UGF0aChkb2MuaW1hZ2UsIGZpbGVQYXRoLCBjb25maWcucm9vdCwgY29uZmlnLmJhc2UpXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICAuLi5kb2MsXG4gICAgICBmaWxlOiBkb2MuX21ldGEuZmlsZVBhdGgsXG4gICAgICBsYXN0VXBkYXRlZCxcbiAgICAgIGltYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBpY29uLFxuICAgICAgcGF0aCxcbiAgICAgIHRvY0l0ZW1zLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIG1keCxcbiAgICB9XG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRzZ28gcGlja3Mgd3Jvbmcgb3ZlcmxvYWQgd2hlbiByZWh5cGUtc2x1ZyBhdWdtZW50cyB1bmlmaWVkIHR5cGVzXG4gIGNvbnRlbnQ6IFthcnRpY2xlc10sXG59KVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface SearchResult {
|
|
1
|
+
export interface SearchResult {
|
|
2
2
|
title: string;
|
|
3
3
|
path: string;
|
|
4
4
|
icon?: string;
|
|
@@ -11,9 +11,3 @@ export declare function useArticleSearch(): {
|
|
|
11
11
|
searchArticles: (term: string) => Promise<void>;
|
|
12
12
|
selectArticle: (path: string) => void;
|
|
13
13
|
};
|
|
14
|
-
export declare function SearchResultGroups(props: {
|
|
15
|
-
query: string;
|
|
16
|
-
grouped: Map<string, SearchResult[]>;
|
|
17
|
-
onSelect: (path: string) => void;
|
|
18
|
-
}): import("react").JSX.Element[];
|
|
19
|
-
export {};
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
1
|
import { useState, useRef, useCallback, useMemo } from "react";
|
|
3
2
|
import { useNavigate } from "@tanstack/react-router";
|
|
4
3
|
import { create, insertMultiple, search } from "@orama/orama";
|
|
5
4
|
import { sortedArticles } from "../content/article.js";
|
|
6
|
-
import { resolveArticleIcon } from "./article-icon.js";
|
|
7
5
|
import { buildHighlightPattern, findTextMatches } from "./search-highlight.js";
|
|
8
|
-
import { CommandGroup, CommandItem } from "../elements/command.js";
|
|
9
6
|
export function useArticleSearch() {
|
|
10
7
|
const [results, setResults] = useState([]);
|
|
11
8
|
const [query, setQuery] = useState("");
|
|
@@ -76,12 +73,6 @@ export function useArticleSearch() {
|
|
|
76
73
|
}, [results]);
|
|
77
74
|
return { query, grouped, searchArticles, selectArticle };
|
|
78
75
|
}
|
|
79
|
-
export function SearchResultGroups(props) {
|
|
80
|
-
return [...props.grouped.entries()].map(([group, items]) => (_jsx(CommandGroup, { heading: group, children: items.map(result => {
|
|
81
|
-
const Icon = resolveArticleIcon(result.icon);
|
|
82
|
-
return (_jsxs(CommandItem, { value: result.path, onSelect: () => props.onSelect(result.path), className: "py-2.5", children: [Icon && _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: [_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: props.query }) }))] })] }, result.path));
|
|
83
|
-
}) }, group)));
|
|
84
|
-
}
|
|
85
76
|
function toResult(article, term) {
|
|
86
77
|
return {
|
|
87
78
|
title: article.title,
|
|
@@ -117,18 +108,4 @@ function extractSnippet(text, term) {
|
|
|
117
108
|
const suffix = end < text.length ? "…" : "";
|
|
118
109
|
return `${prefix}${text.slice(start, end)}${suffix}`;
|
|
119
110
|
}
|
|
120
|
-
function HighlightedText(props) {
|
|
121
|
-
const pattern = buildHighlightPattern(props.term);
|
|
122
|
-
if (!pattern)
|
|
123
|
-
return _jsx(_Fragment, { children: props.text });
|
|
124
|
-
const parts = [];
|
|
125
|
-
let cursor = 0;
|
|
126
|
-
for (const [start, end] of findTextMatches(props.text, pattern)) {
|
|
127
|
-
parts.push(props.text.slice(cursor, start));
|
|
128
|
-
parts.push(_jsx("span", { className: "text-foreground font-medium", children: props.text.slice(start, end) }, start));
|
|
129
|
-
cursor = end;
|
|
130
|
-
}
|
|
131
|
-
parts.push(props.text.slice(cursor));
|
|
132
|
-
return _jsx(_Fragment, { children: parts });
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy9hcnRpY2xlLXNlYXJjaC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXlCLENBQUE7QUFVbkUsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBaUIsRUFBRSxDQUFDLENBQUE7SUFDMUQsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUE0QyxJQUFJLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQTtJQUU5QixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDekMsSUFBSSxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUN2QyxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQztZQUN0QixNQUFNLEVBQUU7Z0JB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QUFNLEVBQUUsQ0FBQTtBQUN0RCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsS0FBcUM7SUFDNUQsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pELElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyw0QkFBRyxLQUFLLENBQUMsSUFBSSxHQUFJLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQTtJQUNuQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDZCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzNDLEtBQUssQ0FBQyxJQUFJLENBQ1IsZUFBa0IsU0FBUyxFQUFDLDZCQUE2QixZQUN0RCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBRHBCLEtBQUssQ0FFVCxDQUNSLENBQUE7UUFDRCxNQUFNLEdBQUcsR0FBRyxDQUFBO0lBQ2QsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNwQyxPQUFPLDRCQUFHLEtBQUssR0FBSSxDQUFBO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IGNyZWF0ZSwgaW5zZXJ0TXVsdGlwbGUsIHNlYXJjaCB9IGZyb20gXCJAb3JhbWEvb3JhbWFcIlxuaW1wb3J0IHsgc29ydGVkQXJ0aWNsZXMgfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IHJlc29sdmVBcnRpY2xlSWNvbiB9IGZyb20gXCIuL2FydGljbGUtaWNvbi50c1wiXG5pbXBvcnQgeyBidWlsZEhpZ2hsaWdodFBhdHRlcm4sIGZpbmRUZXh0TWF0Y2hlcyB9IGZyb20gXCIuL3NlYXJjaC1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgQ29tbWFuZEdyb3VwLCBDb21tYW5kSXRlbSB9IGZyb20gXCIuLi9lbGVtZW50cy9jb21tYW5kLnRzeFwiXG5cbmludGVyZmFjZSBTZWFyY2hSZXN1bHQge1xuICB0aXRsZTogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICBpY29uPzogc3RyaW5nXG4gIHNuaXBwZXQ6IHN0cmluZ1xuICBncm91cDogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBcnRpY2xlU2VhcmNoKCkge1xuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZTxTZWFyY2hSZXN1bHRbXT4oW10pXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGUoXCJcIilcbiAgY29uc3QgZGJSZWYgPSB1c2VSZWY8QXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGU+PiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKVxuXG4gIGNvbnN0IGVuc3VyZUluZGV4ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChkYlJlZi5jdXJyZW50KSByZXR1cm4gZGJSZWYuY3VycmVudFxuICAgIGNvbnN0IGRiID0gYXdhaXQgY3JlYXRlKHtcbiAgICAgIHNjaGVtYToge1xuICAgICAgICB0aXRsZTogXCJzdHJpbmdcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwic3RyaW5nXCIsXG4gICAgICAgIHNlYXJjaFRleHQ6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXdhaXQgaW5zZXJ0TXVsdGlwbGUoXG4gICAgICBkYixcbiAgICAgIHNvcnRlZEFydGljbGVzLm1hcChhID0+ICh7XG4gICAgICAgIHRpdGxlOiBhLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogYS5kZXNjcmlwdGlvbiA/PyBcIlwiLFxuICAgICAgICBzZWFyY2hUZXh0OiBhLnNlYXJjaFRleHQsXG4gICAgICB9KSksXG4gICAgKVxuICAgIGRiUmVmLmN1cnJlbnQgPSBkYlxuICAgIHJldHVybiBkYlxuICB9LCBbXSlcblxuICBjb25zdCBzZWFyY2hBcnRpY2xlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh0ZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFF1ZXJ5KHRlcm0pXG4gICAgICBpZiAoIXRlcm0udHJpbSgpKSB7XG4gICAgICAgIHNldFJlc3VsdHMoW10pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgZGIgPSBhd2FpdCBlbnN1cmVJbmRleCgpXG4gICAgICBjb25zdCBoaXRzID0gYXdhaXQgc2VhcmNoKGRiLCB7XG4gICAgICAgIHRlcm0sXG4gICAgICAgIHByb3BlcnRpZXM6IFtcInRpdGxlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJzZWFyY2hUZXh0XCJdLFxuICAgICAgICB0b2xlcmFuY2U6IDEsXG4gICAgICAgIGJvb3N0OiB7IHRpdGxlOiAzLCBkZXNjcmlwdGlvbjogMiB9LFxuICAgICAgfSlcbiAgICAgIHNldFJlc3VsdHMoXG4gICAgICAgIGhpdHMuaGl0cy5tYXAoaGl0ID0+IHtcbiAgICAgICAgICBjb25zdCBhcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChhID0+IGEudGl0bGUgPT09IGhpdC5kb2N1bWVudC50aXRsZSlcbiAgICAgICAgICBpZiAoIWFydGljbGUpXG4gICAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5zb3J0ZWRBcnRpY2xlc1swXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogaGl0LmRvY3VtZW50LnRpdGxlLFxuICAgICAgICAgICAgICAgIHBhdGg6IFwiXCIsXG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogaGl0LmRvY3VtZW50LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBoaXQuZG9jdW1lbnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdG9SZXN1bHQoYXJ0aWNsZSwgdGVybSlcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgfSxcbiAgICBbZW5zdXJlSW5kZXhdLFxuICApXG5cbiAgY29uc3Qgc2VsZWN0QXJ0aWNsZSA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFF1ZXJ5KFwiXCIpXG4gICAgICBzZXRSZXN1bHRzKFtdKVxuICAgICAgbmF2aWdhdGUoe1xuICAgICAgICB0bzogXCIvJFwiLFxuICAgICAgICBwYXJhbXM6IHsgX3NwbGF0OiBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9LFxuICAgICAgICBzZWFyY2g6IHsgaGlnaGxpZ2h0OiBxdWVyeS50cmltKCkgfHwgdW5kZWZpbmVkIH0sXG4gICAgICB9KVxuICAgIH0sXG4gICAgW25hdmlnYXRlLCBxdWVyeV0sXG4gIClcblxuICBjb25zdCBncm91cGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIFNlYXJjaFJlc3VsdFtdPigpXG4gICAgZm9yIChjb25zdCByIG9mIHJlc3VsdHMpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBncm91cHMuZ2V0KHIuZ3JvdXApID8/IFtdXG4gICAgICBsaXN0LnB1c2gocilcbiAgICAgIGdyb3Vwcy5zZXQoci5ncm91cCwgbGlzdClcbiAgICB9XG4gICAgcmV0dXJuIGdyb3Vwc1xuICB9LCBbcmVzdWx0c10pXG5cbiAgcmV0dXJuIHsgcXVlcnksIGdyb3VwZWQsIHNlYXJjaEFydGljbGVzLCBzZWxlY3RBcnRpY2xlIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNlYXJjaFJlc3VsdEdyb3Vwcyhwcm9wczoge1xuICBxdWVyeTogc3RyaW5nXG4gIGdyb3VwZWQ6IE1hcDxzdHJpbmcsIFNlYXJjaFJlc3VsdFtdPlxuICBvblNlbGVjdDogKHBhdGg6IHN0cmluZykgPT4gdm9pZFxufSkge1xuICByZXR1cm4gWy4uLnByb3BzLmdyb3VwZWQuZW50cmllcygpXS5tYXAoKFtncm91cCwgaXRlbXNdKSA9PiAoXG4gICAgPENvbW1hbmRHcm91cCBrZXk9e2dyb3VwfSBoZWFkaW5nPXtncm91cH0+XG4gICAgICB7aXRlbXMubWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIGNvbnN0IEljb24gPSByZXNvbHZlQXJ0aWNsZUljb24ocmVzdWx0Lmljb24pXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbW1hbmRJdGVtXG4gICAgICAgICAgICBrZXk9e3Jlc3VsdC5wYXRofVxuICAgICAgICAgICAgdmFsdWU9e3Jlc3VsdC5wYXRofVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IHByb3BzLm9uU2VsZWN0KHJlc3VsdC5wYXRoKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInB5LTIuNVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0ljb24gJiYgPEljb24gY2xhc3NOYW1lPVwic2l6ZS01IHNocmluay0wIG10LTAuNSBzZWxmLXN0YXJ0IG9wYWNpdHktNjBcIiAvPn1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMC41IG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtbWVkaXVtXCI+e3Jlc3VsdC50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgIHtyZXN1bHQuc25pcHBldCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHRleHQ9e3Jlc3VsdC5zbmlwcGV0fSB0ZXJtPXtwcm9wcy5xdWVyeX0gLz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0NvbW1hbmRJdGVtPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8L0NvbW1hbmRHcm91cD5cbiAgKSlcbn1cblxuZnVuY3Rpb24gdG9SZXN1bHQoYXJ0aWNsZTogKHR5cGVvZiBzb3J0ZWRBcnRpY2xlcylbbnVtYmVyXSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogYXJ0aWNsZS50aXRsZSxcbiAgICBwYXRoOiBhcnRpY2xlLnBhdGgsXG4gICAgaWNvbjogYXJ0aWNsZS5pY29uLFxuICAgIHNuaXBwZXQ6IHRlcm1cbiAgICAgID8gZXh0cmFjdFNuaXBwZXQoYXJ0aWNsZS5zZWFyY2hUZXh0LCB0ZXJtKVxuICAgICAgOiAoYXJ0aWNsZS5kZXNjcmlwdGlvbiA/PyBcIlwiKSxcbiAgICBncm91cDogZ3JvdXBGb3IoYXJ0aWNsZS5wYXRoKSxcbiAgfVxufVxuXG5mdW5jdGlvbiBncm91cEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpLnNwbGl0KFwiL1wiKVxuICBpZiAoc2VnbWVudHMubGVuZ3RoIDw9IDIpIHJldHVybiBcIlBhZ2VzXCJcbiAgcmV0dXJuIHNlZ21lbnRzXG4gICAgLnNsaWNlKDEsIC0xKVxuICAgIC5tYXAocyA9PlxuICAgICAgc1xuICAgICAgICAuc3BsaXQoXCItXCIpXG4gICAgICAgIC5tYXAodyA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAgICAgLmpvaW4oXCIgXCIpLFxuICAgIClcbiAgICAuam9pbihcIiDigLogXCIpXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RTbmlwcGV0KHRleHQ6IHN0cmluZywgdGVybTogc3RyaW5nKSB7XG4gIGNvbnN0IHBhdHRlcm4gPSBidWlsZEhpZ2hsaWdodFBhdHRlcm4odGVybSlcbiAgY29uc3QgW21hdGNoXSA9IHBhdHRlcm4gPyBmaW5kVGV4dE1hdGNoZXModGV4dCwgcGF0dGVybikgOiBbXVxuICBpZiAoIW1hdGNoKSByZXR1cm4gdGV4dC5zbGljZSgwLCAxMjApXG4gIGNvbnN0IFttYXRjaFN0YXJ0LCBtYXRjaEVuZF0gPSBtYXRjaFxuICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDAsIG1hdGNoU3RhcnQgLSA0MClcbiAgY29uc3QgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIG1hdGNoRW5kICsgODApXG4gIGNvbnN0IHByZWZpeCA9IHN0YXJ0ID4gMCA/IFwi4oCmXCIgOiBcIlwiXG4gIGNvbnN0IHN1ZmZpeCA9IGVuZCA8IHRleHQubGVuZ3RoID8gXCLigKZcIiA6IFwiXCJcbiAgcmV0dXJuIGAke3ByZWZpeH0ke3RleHQuc2xpY2Uoc3RhcnQsIGVuZCl9JHtzdWZmaXh9YFxufVxuXG5mdW5jdGlvbiBIaWdobGlnaHRlZFRleHQocHJvcHM6IHsgdGV4dDogc3RyaW5nOyB0ZXJtOiBzdHJpbmcgfSkge1xuICBjb25zdCBwYXR0ZXJuID0gYnVpbGRIaWdobGlnaHRQYXR0ZXJuKHByb3BzLnRlcm0pXG4gIGlmICghcGF0dGVybikgcmV0dXJuIDw+e3Byb3BzLnRleHR9PC8+XG4gIGNvbnN0IHBhcnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gIGxldCBjdXJzb3IgPSAwXG4gIGZvciAoY29uc3QgW3N0YXJ0LCBlbmRdIG9mIGZpbmRUZXh0TWF0Y2hlcyhwcm9wcy50ZXh0LCBwYXR0ZXJuKSkge1xuICAgIHBhcnRzLnB1c2gocHJvcHMudGV4dC5zbGljZShjdXJzb3IsIHN0YXJ0KSlcbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgPHNwYW4ga2V5PXtzdGFydH0gY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHtwcm9wcy50ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpfVxuICAgICAgPC9zcGFuPixcbiAgICApXG4gICAgY3Vyc29yID0gZW5kXG4gIH1cbiAgcGFydHMucHVzaChwcm9wcy50ZXh0LnNsaWNlKGN1cnNvcikpXG4gIHJldHVybiA8PntwYXJ0c308Lz5cbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy9hcnRpY2xlLXNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQVU5RSxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFpQixFQUFFLENBQUMsQ0FBQTtJQUMxRCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQTRDLElBQUksQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBRTlCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN6QyxJQUFJLEtBQUssQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDO1lBQ3RCLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsUUFBUTtnQkFDZixXQUFXLEVBQUUsUUFBUTtnQkFDckIsVUFBVSxFQUFFLFFBQVE7YUFDckI7U0FDRixDQUFDLENBQUE7UUFDRixNQUFNLGNBQWMsQ0FD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Q0FBQTtBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyBjcmVhdGUsIGluc2VydE11bHRpcGxlLCBzZWFyY2ggfSBmcm9tIFwiQG9yYW1hL29yYW1hXCJcbmltcG9ydCB7IHNvcnRlZEFydGljbGVzIH0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBidWlsZEhpZ2hsaWdodFBhdHRlcm4sIGZpbmRUZXh0TWF0Y2hlcyB9IGZyb20gXCIuL3NlYXJjaC1oaWdobGlnaHQudHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdCB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIGljb24/OiBzdHJpbmdcbiAgc25pcHBldDogc3RyaW5nXG4gIGdyb3VwOiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFydGljbGVTZWFyY2goKSB7XG4gIGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlPFNlYXJjaFJlc3VsdFtdPihbXSlcbiAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSB1c2VTdGF0ZShcIlwiKVxuICBjb25zdCBkYlJlZiA9IHVzZVJlZjxBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZT4+IHwgbnVsbD4obnVsbClcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpXG5cbiAgY29uc3QgZW5zdXJlSW5kZXggPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKGRiUmVmLmN1cnJlbnQpIHJldHVybiBkYlJlZi5jdXJyZW50XG4gICAgY29uc3QgZGIgPSBhd2FpdCBjcmVhdGUoe1xuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIHRpdGxlOiBcInN0cmluZ1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJzdHJpbmdcIixcbiAgICAgICAgc2VhcmNoVGV4dDogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgfSlcbiAgICBhd2FpdCBpbnNlcnRNdWx0aXBsZShcbiAgICAgIGRiLFxuICAgICAgc29ydGVkQXJ0aWNsZXMubWFwKGEgPT4gKHtcbiAgICAgICAgdGl0bGU6IGEudGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhLmRlc2NyaXB0aW9uID8/IFwiXCIsXG4gICAgICAgIHNlYXJjaFRleHQ6IGEuc2VhcmNoVGV4dCxcbiAgICAgIH0pKSxcbiAgICApXG4gICAgZGJSZWYuY3VycmVudCA9IGRiXG4gICAgcmV0dXJuIGRiXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNlYXJjaEFydGljbGVzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHRlcm06IHN0cmluZykgPT4ge1xuICAgICAgc2V0UXVlcnkodGVybSlcbiAgICAgIGlmICghdGVybS50cmltKCkpIHtcbiAgICAgICAgc2V0UmVzdWx0cyhbXSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBkYiA9IGF3YWl0IGVuc3VyZUluZGV4KClcbiAgICAgIGNvbnN0IGhpdHMgPSBhd2FpdCBzZWFyY2goZGIsIHtcbiAgICAgICAgdGVybSxcbiAgICAgICAgcHJvcGVydGllczogW1widGl0bGVcIiwgXCJkZXNjcmlwdGlvblwiLCBcInNlYXJjaFRleHRcIl0sXG4gICAgICAgIHRvbGVyYW5jZTogMSxcbiAgICAgICAgYm9vc3Q6IHsgdGl0bGU6IDMsIGRlc2NyaXB0aW9uOiAyIH0sXG4gICAgICB9KVxuICAgICAgc2V0UmVzdWx0cyhcbiAgICAgICAgaGl0cy5oaXRzLm1hcChoaXQgPT4ge1xuICAgICAgICAgIGNvbnN0IGFydGljbGUgPSBzb3J0ZWRBcnRpY2xlcy5maW5kKGEgPT4gYS50aXRsZSA9PT0gaGl0LmRvY3VtZW50LnRpdGxlKVxuICAgICAgICAgIGlmICghYXJ0aWNsZSlcbiAgICAgICAgICAgIHJldHVybiB0b1Jlc3VsdChcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLnNvcnRlZEFydGljbGVzWzBdLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBoaXQuZG9jdW1lbnQudGl0bGUsXG4gICAgICAgICAgICAgICAgcGF0aDogXCJcIixcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBoaXQuZG9jdW1lbnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGhpdC5kb2N1bWVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpY29uOiBcIlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0ZXJtLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0b1Jlc3VsdChhcnRpY2xlLCB0ZXJtKVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9LFxuICAgIFtlbnN1cmVJbmRleF0sXG4gIClcblxuICBjb25zdCBzZWxlY3RBcnRpY2xlID0gdXNlQ2FsbGJhY2soXG4gICAgKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgc2V0UXVlcnkoXCJcIilcbiAgICAgIHNldFJlc3VsdHMoW10pXG4gICAgICBuYXZpZ2F0ZSh7XG4gICAgICAgIHRvOiBcIi8kXCIsXG4gICAgICAgIHBhcmFtczogeyBfc3BsYXQ6IHBhdGgucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH0sXG4gICAgICAgIHNlYXJjaDogeyBoaWdobGlnaHQ6IHF1ZXJ5LnRyaW0oKSB8fCB1bmRlZmluZWQgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbbmF2aWdhdGUsIHF1ZXJ5XSxcbiAgKVxuXG4gIGNvbnN0IGdyb3VwZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cHMgPSBuZXcgTWFwPHN0cmluZywgU2VhcmNoUmVzdWx0W10+KClcbiAgICBmb3IgKGNvbnN0IHIgb2YgcmVzdWx0cykge1xuICAgICAgY29uc3QgbGlzdCA9IGdyb3Vwcy5nZXQoci5ncm91cCkgPz8gW11cbiAgICAgIGxpc3QucHVzaChyKVxuICAgICAgZ3JvdXBzLnNldChyLmdyb3VwLCBsaXN0KVxuICAgIH1cbiAgICByZXR1cm4gZ3JvdXBzXG4gIH0sIFtyZXN1bHRzXSlcblxuICByZXR1cm4geyBxdWVyeSwgZ3JvdXBlZCwgc2VhcmNoQXJ0aWNsZXMsIHNlbGVjdEFydGljbGUgfVxufVxuXG5mdW5jdGlvbiB0b1Jlc3VsdChhcnRpY2xlOiAodHlwZW9mIHNvcnRlZEFydGljbGVzKVtudW1iZXJdLCB0ZXJtOiBzdHJpbmcpOiBTZWFyY2hSZXN1bHQge1xuICByZXR1cm4ge1xuICAgIHRpdGxlOiBhcnRpY2xlLnRpdGxlLFxuICAgIHBhdGg6IGFydGljbGUucGF0aCxcbiAgICBpY29uOiBhcnRpY2xlLmljb24sXG4gICAgc25pcHBldDogdGVybVxuICAgICAgPyBleHRyYWN0U25pcHBldChhcnRpY2xlLnNlYXJjaFRleHQsIHRlcm0pXG4gICAgICA6IChhcnRpY2xlLmRlc2NyaXB0aW9uID8/IFwiXCIpLFxuICAgIGdyb3VwOiBncm91cEZvcihhcnRpY2xlLnBhdGgpLFxuICB9XG59XG5cbmZ1bmN0aW9uIGdyb3VwRm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikuc3BsaXQoXCIvXCIpXG4gIGlmIChzZWdtZW50cy5sZW5ndGggPD0gMikgcmV0dXJuIFwiUGFnZXNcIlxuICByZXR1cm4gc2VnbWVudHNcbiAgICAuc2xpY2UoMSwgLTEpXG4gICAgLm1hcChzID0+XG4gICAgICBzXG4gICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgLm1hcCh3ID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgICAgICAuam9pbihcIiBcIiksXG4gICAgKVxuICAgIC5qb2luKFwiIOKAuiBcIilcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFNuaXBwZXQodGV4dDogc3RyaW5nLCB0ZXJtOiBzdHJpbmcpIHtcbiAgY29uc3QgcGF0dGVybiA9IGJ1aWxkSGlnaGxpZ2h0UGF0dGVybih0ZXJtKVxuICBjb25zdCBbbWF0Y2hdID0gcGF0dGVybiA/IGZpbmRUZXh0TWF0Y2hlcyh0ZXh0LCBwYXR0ZXJuKSA6IFtdXG4gIGlmICghbWF0Y2gpIHJldHVybiB0ZXh0LnNsaWNlKDAsIDEyMClcbiAgY29uc3QgW21hdGNoU3RhcnQsIG1hdGNoRW5kXSA9IG1hdGNoXG4gIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgbWF0Y2hTdGFydCAtIDQwKVxuICBjb25zdCBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgbWF0Y2hFbmQgKyA4MClcbiAgY29uc3QgcHJlZml4ID0gc3RhcnQgPiAwID8gXCLigKZcIiA6IFwiXCJcbiAgY29uc3Qgc3VmZml4ID0gZW5kIDwgdGV4dC5sZW5ndGggPyBcIuKAplwiIDogXCJcIlxuICByZXR1cm4gYCR7cHJlZml4fSR7dGV4dC5zbGljZShzdGFydCwgZW5kKX0ke3N1ZmZpeH1gXG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { bundledLanguages, bundledLanguagesInfo } from "shiki";
|
|
2
|
+
const FENCE_PATTERN = /^[ \t>]*(?:`{3,}|~{3,})[ \t]*([\w+#.-]+)/gm;
|
|
3
|
+
/** The bundled Shiki languages a document's fences name, plus the ones their grammars embed lazily. */
|
|
4
|
+
export async function collectFenceLanguages(content) {
|
|
5
|
+
const names = new Set(Array.from(content.matchAll(FENCE_PATTERN), m => (m[1] ?? "").toLowerCase()));
|
|
6
|
+
const infos = bundledLanguagesInfo.filter(info => names.has(info.id) || info.aliases?.some(alias => names.has(alias)));
|
|
7
|
+
// Lazy embeds (the `js` fence inside a `md` fence) are not loaded with their host, so
|
|
8
|
+
// without them nested code renders plain or not depending on what earlier pages loaded.
|
|
9
|
+
const grammars = await Promise.all(infos.map(info => info.import()));
|
|
10
|
+
const embedded = grammars.flatMap(grammar => grammar.default.flatMap(lang => lang.embeddedLangsLazy ?? []));
|
|
11
|
+
const langs = new Set([...infos.map(info => info.id), ...embedded]);
|
|
12
|
+
return [...langs].filter(lang => lang in bundledLanguages);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVuY2UtbGFuZ3VhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvZmVuY2UtbGFuZ3VhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUU5RCxNQUFNLGFBQWEsR0FBRyw0Q0FBNEMsQ0FBQTtBQUVsRSx1R0FBdUc7QUFDdkcsTUFBTSxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxPQUFlO0lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUM3RSxDQUFBO0lBQ0QsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1RSxDQUFBO0lBQ0Qsc0ZBQXNGO0lBQ3RGLHdGQUF3RjtJQUN4RixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUMxQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FDOUQsQ0FBQTtJQUNELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNuRSxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQTtBQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVuZGxlZExhbmd1YWdlcywgYnVuZGxlZExhbmd1YWdlc0luZm8gfSBmcm9tIFwic2hpa2lcIlxuXG5jb25zdCBGRU5DRV9QQVRURVJOID0gL15bIFxcdD5dKig/OmB7Myx9fH57Myx9KVsgXFx0XSooW1xcdysjLi1dKykvZ21cblxuLyoqIFRoZSBidW5kbGVkIFNoaWtpIGxhbmd1YWdlcyBhIGRvY3VtZW50J3MgZmVuY2VzIG5hbWUsIHBsdXMgdGhlIG9uZXMgdGhlaXIgZ3JhbW1hcnMgZW1iZWQgbGF6aWx5LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RGZW5jZUxhbmd1YWdlcyhjb250ZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0KFxuICAgIEFycmF5LmZyb20oY29udGVudC5tYXRjaEFsbChGRU5DRV9QQVRURVJOKSwgbSA9PiAobVsxXSA/PyBcIlwiKS50b0xvd2VyQ2FzZSgpKSxcbiAgKVxuICBjb25zdCBpbmZvcyA9IGJ1bmRsZWRMYW5ndWFnZXNJbmZvLmZpbHRlcihcbiAgICBpbmZvID0+IG5hbWVzLmhhcyhpbmZvLmlkKSB8fCBpbmZvLmFsaWFzZXM/LnNvbWUoYWxpYXMgPT4gbmFtZXMuaGFzKGFsaWFzKSksXG4gIClcbiAgLy8gTGF6eSBlbWJlZHMgKHRoZSBganNgIGZlbmNlIGluc2lkZSBhIGBtZGAgZmVuY2UpIGFyZSBub3QgbG9hZGVkIHdpdGggdGhlaXIgaG9zdCwgc29cbiAgLy8gd2l0aG91dCB0aGVtIG5lc3RlZCBjb2RlIHJlbmRlcnMgcGxhaW4gb3Igbm90IGRlcGVuZGluZyBvbiB3aGF0IGVhcmxpZXIgcGFnZXMgbG9hZGVkLlxuICBjb25zdCBncmFtbWFycyA9IGF3YWl0IFByb21pc2UuYWxsKGluZm9zLm1hcChpbmZvID0+IGluZm8uaW1wb3J0KCkpKVxuICBjb25zdCBlbWJlZGRlZCA9IGdyYW1tYXJzLmZsYXRNYXAoZ3JhbW1hciA9PlxuICAgIGdyYW1tYXIuZGVmYXVsdC5mbGF0TWFwKGxhbmcgPT4gbGFuZy5lbWJlZGRlZExhbmdzTGF6eSA/PyBbXSksXG4gIClcbiAgY29uc3QgbGFuZ3MgPSBuZXcgU2V0KFsuLi5pbmZvcy5tYXAoaW5mbyA9PiBpbmZvLmlkKSwgLi4uZW1iZWRkZWRdKVxuICByZXR1cm4gWy4uLmxhbmdzXS5maWx0ZXIobGFuZyA9PiBsYW5nIGluIGJ1bmRsZWRMYW5ndWFnZXMpXG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, expect, it } from "vite-plus/test";
|
|
2
|
+
import { collectFenceLanguages } from "./fence-languages.js";
|
|
3
|
+
describe("collectFenceLanguages", () => {
|
|
4
|
+
it("should collect the languages fences name", async () => {
|
|
5
|
+
const content = "```ts\nconst a = 1\n```\n\n~~~bash\nls\n~~~\n\n- item\n\n ```yaml\n a: 1\n ```";
|
|
6
|
+
const langs = await collectFenceLanguages(content);
|
|
7
|
+
expect(langs).toEqual(expect.arrayContaining(["typescript", "shellscript", "yaml"]));
|
|
8
|
+
});
|
|
9
|
+
it("should resolve aliases and info-string metadata", async () => {
|
|
10
|
+
const langs = await collectFenceLanguages('```js title="a.js" {1}\nfoo()\n```');
|
|
11
|
+
expect(langs).toEqual(["javascript"]);
|
|
12
|
+
});
|
|
13
|
+
it("should add the languages a grammar embeds lazily", async () => {
|
|
14
|
+
const langs = await collectFenceLanguages("````md\n```js\nfoo()\n```\n````");
|
|
15
|
+
expect(langs).toEqual(expect.arrayContaining(["markdown", "javascript", "html"]));
|
|
16
|
+
});
|
|
17
|
+
it("should skip languages Shiki does not bundle", async () => {
|
|
18
|
+
const langs = await collectFenceLanguages("```npm\ni livemark\n```\n\n```\nplain\n```");
|
|
19
|
+
expect(langs).toEqual([]);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVuY2UtbGFuZ3VhZ2VzLnVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy9mZW5jZS1sYW5ndWFnZXMudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUU1RCxRQUFRLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ3JDLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4RCxNQUFNLE9BQU8sR0FDWCxtRkFBbUYsQ0FBQTtRQUNyRixNQUFNLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2xELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQy9ELE1BQU0sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUMvRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNoRSxNQUFNLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDLGlDQUFpQyxDQUFDLENBQUE7UUFDNUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkYsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FDdkMsNENBQTRDLENBQzdDLENBQUE7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgeyBjb2xsZWN0RmVuY2VMYW5ndWFnZXMgfSBmcm9tIFwiLi9mZW5jZS1sYW5ndWFnZXMudHNcIlxuXG5kZXNjcmliZShcImNvbGxlY3RGZW5jZUxhbmd1YWdlc1wiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGNvbGxlY3QgdGhlIGxhbmd1YWdlcyBmZW5jZXMgbmFtZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9XG4gICAgICBcImBgYHRzXFxuY29uc3QgYSA9IDFcXG5gYGBcXG5cXG5+fn5iYXNoXFxubHNcXG5+fn5cXG5cXG4tIGl0ZW1cXG5cXG4gIGBgYHlhbWxcXG4gIGE6IDFcXG4gIGBgYFwiXG4gICAgY29uc3QgbGFuZ3MgPSBhd2FpdCBjb2xsZWN0RmVuY2VMYW5ndWFnZXMoY29udGVudClcbiAgICBleHBlY3QobGFuZ3MpLnRvRXF1YWwoZXhwZWN0LmFycmF5Q29udGFpbmluZyhbXCJ0eXBlc2NyaXB0XCIsIFwic2hlbGxzY3JpcHRcIiwgXCJ5YW1sXCJdKSlcbiAgfSlcblxuICBpdChcInNob3VsZCByZXNvbHZlIGFsaWFzZXMgYW5kIGluZm8tc3RyaW5nIG1ldGFkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBsYW5ncyA9IGF3YWl0IGNvbGxlY3RGZW5jZUxhbmd1YWdlcygnYGBganMgdGl0bGU9XCJhLmpzXCIgezF9XFxuZm9vKClcXG5gYGAnKVxuICAgIGV4cGVjdChsYW5ncykudG9FcXVhbChbXCJqYXZhc2NyaXB0XCJdKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGFkZCB0aGUgbGFuZ3VhZ2VzIGEgZ3JhbW1hciBlbWJlZHMgbGF6aWx5XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBsYW5ncyA9IGF3YWl0IGNvbGxlY3RGZW5jZUxhbmd1YWdlcyhcImBgYGBtZFxcbmBgYGpzXFxuZm9vKClcXG5gYGBcXG5gYGBgXCIpXG4gICAgZXhwZWN0KGxhbmdzKS50b0VxdWFsKGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1wibWFya2Rvd25cIiwgXCJqYXZhc2NyaXB0XCIsIFwiaHRtbFwiXSkpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgc2tpcCBsYW5ndWFnZXMgU2hpa2kgZG9lcyBub3QgYnVuZGxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBsYW5ncyA9IGF3YWl0IGNvbGxlY3RGZW5jZUxhbmd1YWdlcyhcbiAgICAgIFwiYGBgbnBtXFxuaSBsaXZlbWFya1xcbmBgYFxcblxcbmBgYFxcbnBsYWluXFxuYGBgXCIsXG4gICAgKVxuICAgIGV4cGVjdChsYW5ncykudG9FcXVhbChbXSlcbiAgfSlcbn0pXG4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Keep Tailwind's source scan out of the target's dependency link, which reaches the
|
|
3
|
-
* whole install (and, through a self-link, the whole project) from inside the Vite root
|
|
3
|
+
* whole install (and, through a self-link, the whole project) from inside the Vite root,
|
|
4
|
+
* and out of the content-collections cache, whose rewrites Tailwind answers with a
|
|
5
|
+
* full page reload. The generated modules still carry every article's classes.
|
|
4
6
|
*/
|
|
5
|
-
export declare function
|
|
7
|
+
export declare function excludeTailwindSources(props: {
|
|
6
8
|
css: string;
|
|
7
9
|
targetDir: string;
|
|
8
10
|
}): string | undefined;
|
|
@@ -2,12 +2,17 @@ import { join, sep } from "node:path";
|
|
|
2
2
|
const TAILWIND_IMPORT = /@import\s+(["'])tailwindcss(\/utilities)?\1/;
|
|
3
3
|
/**
|
|
4
4
|
* Keep Tailwind's source scan out of the target's dependency link, which reaches the
|
|
5
|
-
* whole install (and, through a self-link, the whole project) from inside the Vite root
|
|
5
|
+
* whole install (and, through a self-link, the whole project) from inside the Vite root,
|
|
6
|
+
* and out of the content-collections cache, whose rewrites Tailwind answers with a
|
|
7
|
+
* full page reload. The generated modules still carry every article's classes.
|
|
6
8
|
*/
|
|
7
|
-
export function
|
|
9
|
+
export function excludeTailwindSources(props) {
|
|
8
10
|
if (!TAILWIND_IMPORT.test(props.css))
|
|
9
11
|
return undefined;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
+
const exclusions = ["node_modules", ".content-collections/cache"].map(path => {
|
|
13
|
+
const absolute = join(props.targetDir, path).split(sep).join("/");
|
|
14
|
+
return `@source not "${absolute}";\n`;
|
|
15
|
+
});
|
|
16
|
+
return `${props.css}\n${exclusions.join("")}`;
|
|
12
17
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpbHdpbmQtc291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3RhaWx3aW5kLXNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFckMsTUFBTSxlQUFlLEdBQUcsNkNBQTZDLENBQUE7QUFFckU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBeUM7SUFDOUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFBO0lBQ3RELE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBYyxFQUFFLDRCQUE0QixDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDakUsT0FBTyxnQkFBZ0IsUUFBUSxNQUFNLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFDRixPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHNlcCB9IGZyb20gXCJub2RlOnBhdGhcIlxuXG5jb25zdCBUQUlMV0lORF9JTVBPUlQgPSAvQGltcG9ydFxccysoW1wiJ10pdGFpbHdpbmRjc3MoXFwvdXRpbGl0aWVzKT9cXDEvXG5cbi8qKlxuICogS2VlcCBUYWlsd2luZCdzIHNvdXJjZSBzY2FuIG91dCBvZiB0aGUgdGFyZ2V0J3MgZGVwZW5kZW5jeSBsaW5rLCB3aGljaCByZWFjaGVzIHRoZVxuICogd2hvbGUgaW5zdGFsbCAoYW5kLCB0aHJvdWdoIGEgc2VsZi1saW5rLCB0aGUgd2hvbGUgcHJvamVjdCkgZnJvbSBpbnNpZGUgdGhlIFZpdGUgcm9vdCxcbiAqIGFuZCBvdXQgb2YgdGhlIGNvbnRlbnQtY29sbGVjdGlvbnMgY2FjaGUsIHdob3NlIHJld3JpdGVzIFRhaWx3aW5kIGFuc3dlcnMgd2l0aCBhXG4gKiBmdWxsIHBhZ2UgcmVsb2FkLiBUaGUgZ2VuZXJhdGVkIG1vZHVsZXMgc3RpbGwgY2FycnkgZXZlcnkgYXJ0aWNsZSdzIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGNsdWRlVGFpbHdpbmRTb3VyY2VzKHByb3BzOiB7IGNzczogc3RyaW5nOyB0YXJnZXREaXI6IHN0cmluZyB9KSB7XG4gIGlmICghVEFJTFdJTkRfSU1QT1JULnRlc3QocHJvcHMuY3NzKSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBleGNsdXNpb25zID0gW1wibm9kZV9tb2R1bGVzXCIsIFwiLmNvbnRlbnQtY29sbGVjdGlvbnMvY2FjaGVcIl0ubWFwKHBhdGggPT4ge1xuICAgIGNvbnN0IGFic29sdXRlID0gam9pbihwcm9wcy50YXJnZXREaXIsIHBhdGgpLnNwbGl0KHNlcCkuam9pbihcIi9cIilcbiAgICByZXR1cm4gYEBzb3VyY2Ugbm90IFwiJHthYnNvbHV0ZX1cIjtcXG5gXG4gIH0pXG4gIHJldHVybiBgJHtwcm9wcy5jc3N9XFxuJHtleGNsdXNpb25zLmpvaW4oXCJcIil9YFxufVxuIl19
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { describe, expect, it } from "vite-plus/test";
|
|
2
|
-
import {
|
|
2
|
+
import { excludeTailwindSources } from "./tailwind-sources.js";
|
|
3
3
|
const targetDir = "/project/.livemark/.target";
|
|
4
|
-
describe("
|
|
5
|
-
it("excludes the dependency link from a Tailwind entry", () => {
|
|
4
|
+
describe("excludeTailwindSources", () => {
|
|
5
|
+
it("excludes the dependency link and the content cache from a Tailwind entry", () => {
|
|
6
6
|
const css = `@import "tailwindcss";\n@import "./shape.css";`;
|
|
7
|
-
expect(
|
|
7
|
+
expect(excludeTailwindSources({ css, targetDir })).toBe(`${css}\n@source not "/project/.livemark/.target/node_modules";\n` +
|
|
8
|
+
`@source not "/project/.livemark/.target/.content-collections/cache";\n`);
|
|
8
9
|
});
|
|
9
10
|
it("accepts single quotes, import options and a bare utilities layer", () => {
|
|
10
11
|
for (const css of [
|
|
11
12
|
`@import 'tailwindcss' source(none);`,
|
|
12
13
|
`@import "tailwindcss/utilities" layer(utilities);`,
|
|
13
14
|
]) {
|
|
14
|
-
expect(
|
|
15
|
+
expect(excludeTailwindSources({ css, targetDir })).toContain("@source not");
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
18
|
it("leaves other stylesheets alone", () => {
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
19
|
+
expect(excludeTailwindSources({ css: `@import "tw-animate-css";`, targetDir })).toBeUndefined();
|
|
20
|
+
expect(excludeTailwindSources({ css: `@import "tailwindcss/theme";`, targetDir })).toBeUndefined();
|
|
20
21
|
});
|
|
21
22
|
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpbHdpbmQtc291cmNlcy51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvdGFpbHdpbmQtc291cmNlcy51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRTlELE1BQU0sU0FBUyxHQUFHLDRCQUE0QixDQUFBO0FBRTlDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsRUFBRSxDQUFDLDBFQUEwRSxFQUFFLEdBQUcsRUFBRTtRQUNsRixNQUFNLEdBQUcsR0FBRyxnREFBZ0QsQ0FBQTtRQUM1RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsR0FBRyxHQUFHLDREQUE0RDtZQUNoRSx3RUFBd0UsQ0FDM0UsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxLQUFLLE1BQU0sR0FBRyxJQUFJO1lBQ2hCLHFDQUFxQztZQUNyQyxtREFBbUQ7U0FDcEQsRUFBRSxDQUFDO1lBQ0YsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDN0UsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLENBQ0osc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsMkJBQTJCLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDeEUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNqQixNQUFNLENBQ0osc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDM0UsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNuQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZS1wbHVzL3Rlc3RcIlxuaW1wb3J0IHsgZXhjbHVkZVRhaWx3aW5kU291cmNlcyB9IGZyb20gXCIuL3RhaWx3aW5kLXNvdXJjZXMudHNcIlxuXG5jb25zdCB0YXJnZXREaXIgPSBcIi9wcm9qZWN0Ly5saXZlbWFyay8udGFyZ2V0XCJcblxuZGVzY3JpYmUoXCJleGNsdWRlVGFpbHdpbmRTb3VyY2VzXCIsICgpID0+IHtcbiAgaXQoXCJleGNsdWRlcyB0aGUgZGVwZW5kZW5jeSBsaW5rIGFuZCB0aGUgY29udGVudCBjYWNoZSBmcm9tIGEgVGFpbHdpbmQgZW50cnlcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNzcyA9IGBAaW1wb3J0IFwidGFpbHdpbmRjc3NcIjtcXG5AaW1wb3J0IFwiLi9zaGFwZS5jc3NcIjtgXG4gICAgZXhwZWN0KGV4Y2x1ZGVUYWlsd2luZFNvdXJjZXMoeyBjc3MsIHRhcmdldERpciB9KSkudG9CZShcbiAgICAgIGAke2Nzc31cXG5Ac291cmNlIG5vdCBcIi9wcm9qZWN0Ly5saXZlbWFyay8udGFyZ2V0L25vZGVfbW9kdWxlc1wiO1xcbmAgK1xuICAgICAgICBgQHNvdXJjZSBub3QgXCIvcHJvamVjdC8ubGl2ZW1hcmsvLnRhcmdldC8uY29udGVudC1jb2xsZWN0aW9ucy9jYWNoZVwiO1xcbmAsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwiYWNjZXB0cyBzaW5nbGUgcXVvdGVzLCBpbXBvcnQgb3B0aW9ucyBhbmQgYSBiYXJlIHV0aWxpdGllcyBsYXllclwiLCAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBjc3Mgb2YgW1xuICAgICAgYEBpbXBvcnQgJ3RhaWx3aW5kY3NzJyBzb3VyY2Uobm9uZSk7YCxcbiAgICAgIGBAaW1wb3J0IFwidGFpbHdpbmRjc3MvdXRpbGl0aWVzXCIgbGF5ZXIodXRpbGl0aWVzKTtgLFxuICAgIF0pIHtcbiAgICAgIGV4cGVjdChleGNsdWRlVGFpbHdpbmRTb3VyY2VzKHsgY3NzLCB0YXJnZXREaXIgfSkpLnRvQ29udGFpbihcIkBzb3VyY2Ugbm90XCIpXG4gICAgfVxuICB9KVxuXG4gIGl0KFwibGVhdmVzIG90aGVyIHN0eWxlc2hlZXRzIGFsb25lXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBleGNsdWRlVGFpbHdpbmRTb3VyY2VzKHsgY3NzOiBgQGltcG9ydCBcInR3LWFuaW1hdGUtY3NzXCI7YCwgdGFyZ2V0RGlyIH0pLFxuICAgICkudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KFxuICAgICAgZXhjbHVkZVRhaWx3aW5kU291cmNlcyh7IGNzczogYEBpbXBvcnQgXCJ0YWlsd2luZGNzcy90aGVtZVwiO2AsIHRhcmdldERpciB9KSxcbiAgICApLnRvQmVVbmRlZmluZWQoKVxuICB9KVxufSlcbiJdfQ==
|