{React.string("This is the blog post body content for testing.")}
+ tags", async () => {
+ expect(Search.markdownToHtml("`Array.map`"))->toBe("Array.map")
+})
+
+test("markdownToHtml converts multiple backtick spans", async () => {
+ expect(Search.markdownToHtml("Use `map` and `filter`"))->toBe(
+ "Use map and filter",
+ )
+})
+
+test("markdownToHtml converts **text** to tags", async () => {
+ expect(Search.markdownToHtml("**important**"))->toBe("important")
+})
+
+test("markdownToHtml converts bold within a sentence", async () => {
+ expect(Search.markdownToHtml("This is **very** important"))->toBe(
+ "This is very important",
+ )
+})
+
+test("markdownToHtml converts *text* to tags", async () => {
+ expect(Search.markdownToHtml("*emphasis*"))->toBe("emphasis")
+})
+
+test("markdownToHtml converts italic within a sentence", async () => {
+ expect(Search.markdownToHtml("This is *quite* nice"))->toBe("This is quite nice")
+})
+
+test("markdownToHtml converts double newline to
", async () => {
+ expect(Search.markdownToHtml("first\n\nsecond"))->toBe("first
second")
+})
+
+test("markdownToHtml converts triple+ newlines to a single
", async () => {
+ expect(Search.markdownToHtml("first\n\n\nsecond"))->toBe("first
second")
+})
+
+test("markdownToHtml converts single newline to a space", async () => {
+ expect(Search.markdownToHtml("first\nsecond"))->toBe("first second")
+})
+
+test("markdownToHtml trims leading whitespace", async () => {
+ expect(Search.markdownToHtml(" hello"))->toBe("hello")
+})
+
+test("markdownToHtml trims trailing whitespace", async () => {
+ expect(Search.markdownToHtml("hello "))->toBe("hello")
+})
+
+test("markdownToHtml trims both sides", async () => {
+ expect(Search.markdownToHtml(" hello "))->toBe("hello")
+})
+
+test("markdownToHtml handles empty string", async () => {
+ expect(Search.markdownToHtml(""))->toBe("")
+})
+
+test("markdownToHtml passes plain text through unchanged", async () => {
+ expect(Search.markdownToHtml("just plain text"))->toBe("just plain text")
+})
+
+test("markdownToHtml applies multiple transformations together", async () => {
+ expect(
+ Search.markdownToHtml("Use `map` on **arrays**.\n\nSee [docs](http://x.com) for *details*."),
+ )->toBe("Use map on arrays.
See docs for details.")
+})
+
+test(
+ "markdownToHtml still converts bold inside code because regexes run sequentially",
+ async () => {
+ expect(Search.markdownToHtml("`**notbold**`"))->toBe("notbold")
+ },
+)
+
+test("getHighlightedTitle renders crawler API titles as value names", async () => {
+ let hit = withHierarchy(
+ makeHit(
+ ~type_=Content,
+ ~url="https://rescript-lang.org/docs/manual/api/stdlib/array/#value-mapWithIndex",
+ ),
+ ~lvl0="Array",
+ ~lvl1="mapWithIndex",
+ )
+ let hit = {
+ ...hit,
+ _snippetResult: {
+ content: Nullable.make(highlightedValue("See Array.map on MDN.")),
+ },
+ }
+
+ expect(Search.getHighlightedTitle(hit))->toBe("mapWithIndex")
+})
+
+test(
+ "getHighlightedTitle prefers real hierarchy highlights when Algolia returns them",
+ async () => {
+ let highlightedHierarchy: DocSearch.highlightedHierarchy = {
+ lvl0: Nullable.null,
+ lvl1: Nullable.null,
+ lvl2: Nullable.make(highlightedValue("Section title")),
+ lvl3: Nullable.null,
+ lvl4: Nullable.null,
+ lvl5: Nullable.null,
+ lvl6: Nullable.null,
+ }
+ let hit = {
+ ...makeHit(~type_=Lvl2, ~url="https://rescript-lang.org/docs/manual/page#section"),
+ _highlightResult: {hierarchy: Nullable.make(highlightedHierarchy)},
+ }
+
+ expect(Search.getHighlightedTitle(hit))->toBe("Section title")
+ },
+)
+
+test("getContentHtml prefers crawler snippet markup over plain content", async () => {
+ let hit = {
+ ...makeHit(~type_=Content, ~url="https://rescript-lang.org/docs/manual/api/stdlib/array/"),
+ content: Nullable.make("map(array, fn) returns a new array."),
+ _snippetResult: {
+ content: Nullable.make(highlightedValue("map(array, fn) returns a new array.")),
+ },
+ }
+
+ expect(Search.getContentHtml(hit))->toEqual(
+ Some("map(array, fn) returns a new array."),
+ )
+})
+
+test("hitComponent routes relative hit URLs through React Router", async () => {
+ await viewport(1440, 500)
+
+ let hit = makeHit(~type_=Lvl1, ~url="/docs/manual/api/stdlib/list/")
+
+ let screen = await render(
+
+
+ {Search.hitComponent({hit, children: React.null})}
+ ,
+ )
+
+ await element(await screen->getByText("/"))->toBeVisible
+ await (await screen->getByText("Test Page"))->click
+ await element(await screen->getByText("/docs/manual/api/stdlib/list/"))->toBeVisible
+})
+
+test(
+ "getContentHtml falls back to plain content when crawler hit has no snippet result",
+ async () => {
+ let hit: DocSearch.docSearchHit = Obj.magic(
+ Dict.fromArray([
+ ("objectID", "crawler-hit"),
+ ("content", "map(array, fn) returns a new array."),
+ ("url", "https://rescript-lang.org/docs/manual/api/stdlib/array/#value-map"),
+ ("type", "content"),
+ (
+ "hierarchy",
+ Obj.magic(
+ Dict.fromArray([
+ ("lvl0", Obj.magic("Array")),
+ ("lvl1", Obj.magic("map")),
+ ("lvl2", Obj.magic(Nullable.null)),
+ ("lvl3", Obj.magic(Nullable.null)),
+ ("lvl4", Obj.magic(Nullable.null)),
+ ("lvl5", Obj.magic(Nullable.null)),
+ ("lvl6", Obj.magic(Nullable.null)),
+ ]),
+ ),
+ ),
+ ]),
+ )
+
+ expect(Search.getContentHtml(hit))->toEqual(Some("map(array, fn) returns a new array."))
+ },
+)
+
+test("search error boundary catches render errors without replacing surrounding page", async () => {
+ await viewport(1440, 500)
+
+ let screen = await render(
+
+ {React.string("Docs page stays rendered")}
+ ()}>
+
+
+ ,
+ )
+
+ await element(await screen->getByText("Docs page stays rendered"))->toBeVisible
+ await element(await screen->getByText("Search unavailable"))->toBeVisible
+})
+
+// ---------------------------------------------------------------------------
+// isChildHit
+// ---------------------------------------------------------------------------
+
+test("isChildHit treats Lvl2 as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl2, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Lvl3 as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl3, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Lvl4 as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl4, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Lvl5 as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl5, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Lvl6 as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl6, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Content as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Content, ~url="https://example.com/page")))->toBe(true)
+})
+
+test("isChildHit treats Lvl2 as a child hit even without a hash in the URL", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl2, ~url="https://example.com/no-hash")))->toBe(true)
+})
+
+test("isChildHit treats Content as a child hit even with a hash in the URL", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Content, ~url="https://example.com/page#section")))->toBe(
+ true,
+ )
+})
+
+test("isChildHit treats Lvl0 without a hash as not a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl0, ~url="https://example.com/page")))->toBe(false)
+})
+
+test("isChildHit treats Lvl0 with a hash as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl0, ~url="https://example.com/page#section")))->toBe(
+ true,
+ )
+})
+
+test("isChildHit treats Lvl0 with a trailing # as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl0, ~url="https://example.com/page#")))->toBe(true)
+})
+
+test("isChildHit treats Lvl1 without a hash as not a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl1, ~url="https://example.com/page")))->toBe(false)
+})
+
+test("isChildHit treats Lvl1 with a hash as a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl1, ~url="https://example.com/page#heading")))->toBe(
+ true,
+ )
+})
+
+test("isChildHit treats Lvl1 with a deeply nested hash anchor as a child hit", async () => {
+ expect(
+ Search.isChildHit(
+ makeHit(~type_=Lvl1, ~url="https://example.com/docs/manual/api#some-section"),
+ ),
+ )->toBe(true)
+})
+
+test("isChildHit treats Lvl1 with an empty URL as not a child hit", async () => {
+ expect(Search.isChildHit(makeHit(~type_=Lvl1, ~url="")))->toBe(false)
+})
+
+test("toRelativeSiteUrl strips the site origin from an absolute URL", async () => {
+ let result = Search.toRelativeSiteUrl(
+ "https://rescript-lang.org/docs/manual/introduction#what-is-rescript",
+ ~siteUrl="https://rescript-lang.org/",
+ )
+
+ expect(result)->toBe("/docs/manual/introduction#what-is-rescript")
+})
+
+test("toRelativeSiteUrl leaves absolute URLs unchanged when siteUrl is empty", async () => {
+ let result = Search.toRelativeSiteUrl(
+ "https://rescript-lang.org/docs/manual/introduction#what-is-rescript",
+ ~siteUrl="",
+ )
+
+ expect(result)->toBe("https://rescript-lang.org/docs/manual/introduction#what-is-rescript")
+})
+
+test("normalizeHitUrls rewrites absolute site URLs to relative paths", async () => {
+ let hit = makeHit(
+ ~type_=Lvl1,
+ ~url="https://rescript-lang.org/docs/manual/typescript-integration#gentype",
+ )
+ let result = Search.normalizeHitUrls([hit], ~siteUrl="https://rescript-lang.org/")
+
+ expect(result[0]->Option.map(hit => hit.url))->toEqual(
+ Some("/docs/manual/typescript-integration#gentype"),
+ )
+ expect(result[0]->Option.flatMap(hit => hit.url_without_anchor->Nullable.toOption))->toEqual(
+ Some("/docs/manual/typescript-integration#gentype"),
+ )
+})
+
+test("normalizeHitUrls tolerates crawler hits without url_without_anchor", async () => {
+ let hit: DocSearch.docSearchHit = Obj.magic(
+ Dict.fromArray([
+ ("objectID", "crawler-hit"),
+ ("content", "map(array, fn) returns a new array."),
+ ("url", "https://rescript-lang.org/docs/manual/api/stdlib/array/#value-map"),
+ ("type", "content"),
+ (
+ "hierarchy",
+ Obj.magic(
+ Dict.fromArray([
+ ("lvl0", Obj.magic("Array")),
+ ("lvl1", Obj.magic("map")),
+ ("lvl2", Obj.magic(Nullable.null)),
+ ("lvl3", Obj.magic(Nullable.null)),
+ ("lvl4", Obj.magic(Nullable.null)),
+ ("lvl5", Obj.magic(Nullable.null)),
+ ("lvl6", Obj.magic(Nullable.null)),
+ ]),
+ ),
+ ),
+ ]),
+ )
+
+ let result = Search.normalizeHitUrls([hit], ~siteUrl="https://rescript-lang.org/")
+
+ expect(result[0]->Option.map(hit => hit.url))->toEqual(
+ Some("/docs/manual/api/stdlib/array/#value-map"),
+ )
+ expect(result[0]->Option.flatMap(hit => hit.url_without_anchor->Nullable.toOption))->toEqual(
+ Some("/docs/manual/api/stdlib/array/"),
+ )
+})
+
+test("normalizeHitUrls keeps API hit order while separating Belt group labels", async () => {
+ let beltHit = withHierarchy(
+ {
+ ...makeHit(
+ ~type_=Content,
+ ~url="https://rescript-lang.org/docs/manual/api/belt/array/#value-map",
+ ),
+ objectID: "belt-array-map",
+ },
+ ~lvl0="Array",
+ ~lvl1="map",
+ )
+ let stdlibHit = withHierarchy(
+ {
+ ...makeHit(
+ ~type_=Content,
+ ~url="https://rescript-lang.org/docs/manual/api/stdlib/array/#value-map",
+ ),
+ objectID: "stdlib-array-map",
+ },
+ ~lvl0="Array",
+ ~lvl1="map",
+ )
+
+ let result = Search.normalizeHitUrls([beltHit, stdlibHit], ~siteUrl="https://rescript-lang.org/")
+
+ expect(result[0]->Option.map(hit => hit.objectID))->toEqual(Some("belt-array-map"))
+ expect(result[0]->Option.flatMap(hit => hit.hierarchy.lvl0->Nullable.toOption))->toEqual(
+ Some("Belt.Array"),
+ )
+ expect(result[1]->Option.map(hit => hit.objectID))->toEqual(Some("stdlib-array-map"))
+ expect(result[1]->Option.flatMap(hit => hit.hierarchy.lvl0->Nullable.toOption))->toEqual(
+ Some("Array"),
+ )
+})
+
+test("renders disabled search copy when Algolia config is missing", async () => {
+ await viewport(1440, 500)
+
+ let screen = await render( )
+
+ await element(await screen->getByText("Search unavailable"))->toBeVisible
+ await element(await screen->getByLabelText("Search unavailable for this build"))->toBeVisible
+})
diff --git a/apps/docs/__tests__/Sitemap_.test.res b/apps/docs/__tests__/Sitemap_.test.res
new file mode 100644
index 000000000..f35927387
--- /dev/null
+++ b/apps/docs/__tests__/Sitemap_.test.res
@@ -0,0 +1,22 @@
+open Vitest
+
+test("renders sorted unique sitemap URLs with a normalized base URL", async () => {
+ let xml = Sitemap.render(
+ ~baseUrl="https://preview.example.com/",
+ ["/docs/manual/introduction", "blog", "/", "/docs/manual/introduction"],
+ )
+
+ expect(xml)->toBe(`
+
+
+ https://preview.example.com/
+
+
+ https://preview.example.com/blog/
+
+
+ https://preview.example.com/docs/manual/introduction/
+
+
+`)
+})
diff --git a/apps/docs/__tests__/SyntaxLookup_.test.res b/apps/docs/__tests__/SyntaxLookup_.test.res
index 38b3bb864..6568b62c4 100644
--- a/apps/docs/__tests__/SyntaxLookup_.test.res
+++ b/apps/docs/__tests__/SyntaxLookup_.test.res
@@ -1,6 +1,8 @@
open ReactRouter
open Vitest
+@get external textContent: WebAPI.DOMAPI.element => string = "textContent"
+
let mockItems: array = [
{
id: "as-decorator",
@@ -87,6 +89,30 @@ test("desktop syntax lookup with active item shows detail box", async () => {
await element(wrapper)->toMatchScreenshot("desktop-syntax-lookup-active")
})
+test("syntax lookup detail marks active content for DocSearch crawling", async () => {
+ await viewport(1440, 900)
+
+ let _screen = await render(
+
+ Array.getUnsafe(0)}>
+ {React.string("Detail content for @as decorator.")}
+
+ ,
+ )
+
+ switch document->WebAPI.Document.querySelector(".DocSearch-content h1") {
+ | Value(heading) => expect(heading->textContent)->toBe("@as")
+ | Null => failwith("expected active syntax detail to provide a DocSearch heading")
+ }
+
+ let lvl0 = switch document->WebAPI.Document.querySelector(".DocSearch-content .DocSearch-lvl0") {
+ | Value(element) => element
+ | Null => failwith("expected syntax detail to render a DocSearch lvl0 marker")
+ }
+
+ expect(lvl0->textContent)->toBe("Syntax Lookup")
+})
+
test("mobile syntax lookup", async () => {
await viewport(600, 1200)
diff --git a/apps/docs/__tests__/Url_.test.res b/apps/docs/__tests__/Url_.test.res
new file mode 100644
index 000000000..fd29c2185
--- /dev/null
+++ b/apps/docs/__tests__/Url_.test.res
@@ -0,0 +1,29 @@
+open Vitest
+
+test("Url.parse splits an unversioned route into path segments", async () => {
+ let result = Url.parse("/docs/manual/introduction")
+ expect(result.base)->toEqual(["docs", "manual", "introduction"])
+ expect(result.pagepath)->toEqual([])
+ expect(result.fullpath)->toEqual(["docs", "manual", "introduction"])
+})
+
+test("Url.parse treats version-like segments as ordinary path content", async () => {
+ let result = Url.parse("/docs/manual/v12.0.0/introduction")
+ expect(result.base)->toEqual(["docs", "manual", "v12.0.0", "introduction"])
+ expect(result.pagepath)->toEqual([])
+ expect(result.fullpath)->toEqual(["docs", "manual", "v12.0.0", "introduction"])
+})
+
+test("Url.parse treats latest as ordinary path content", async () => {
+ let result = Url.parse("/docs/manual/latest/arrays")
+ expect(result.base)->toEqual(["docs", "manual", "latest", "arrays"])
+ expect(result.pagepath)->toEqual([])
+ expect(result.fullpath)->toEqual(["docs", "manual", "latest", "arrays"])
+})
+
+test("Url.parse parses routes outside docs without special handling", async () => {
+ let result = Url.parse("/community/overview")
+ expect(result.base)->toEqual(["community", "overview"])
+ expect(result.pagepath)->toEqual([])
+ expect(result.fullpath)->toEqual(["community", "overview"])
+})
diff --git a/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-combined-transformations-bold-inside-code-stays-as-is--code-matched-first--1.png b/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-combined-transformations-bold-inside-code-stays-as-is--code-matched-first--1.png
new file mode 100644
index 000000000..a35891721
Binary files /dev/null and b/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-combined-transformations-bold-inside-code-stays-as-is--code-matched-first--1.png differ
diff --git a/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-markdown-link-stripping-handles-link-with-empty-text-1.png b/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-markdown-link-stripping-handles-link-with-empty-text-1.png
new file mode 100644
index 000000000..a35891721
Binary files /dev/null and b/apps/docs/__tests__/__screenshots__/Search_.test.jsx/markdownToHtml-markdown-link-stripping-handles-link-with-empty-text-1.png differ
diff --git a/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-next-keyword-1.png b/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-next-keyword-1.png
new file mode 100644
index 000000000..a35891721
Binary files /dev/null and b/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-next-keyword-1.png differ
diff --git a/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-version-without-v-prefix--PR--1231--1.png b/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-version-without-v-prefix--PR--1231--1.png
new file mode 100644
index 000000000..a35891721
Binary files /dev/null and b/apps/docs/__tests__/__screenshots__/Url_.test.jsx/Url-parse-version-detection-parses-version-without-v-prefix--PR--1231--1.png differ
diff --git a/apps/docs/app/routes/ApiDocs.res b/apps/docs/app/routes/ApiDocs.res
index d8b010fa6..cb8ff93b8 100644
--- a/apps/docs/app/routes/ApiDocs.res
+++ b/apps/docs/app/routes/ApiDocs.res
@@ -288,7 +288,7 @@ let make = (props: props) => {
})
<>
- {name->React.string}
+ Url.normalizeAnchor}> {name->React.string}
{valuesAndType->React.array}
>
@@ -333,7 +333,7 @@ let make = (props: props) => {
}
}
- children
+ children
}
module Data = {
diff --git a/apps/docs/app/routes/ApiOverviewRoute.res b/apps/docs/app/routes/ApiOverviewRoute.res
index 36ce0d55d..58fd5cc47 100644
--- a/apps/docs/app/routes/ApiOverviewRoute.res
+++ b/apps/docs/app/routes/ApiOverviewRoute.res
@@ -56,7 +56,7 @@ let default = () => {
}>
-
+
diff --git a/apps/docs/app/routes/ApiRoute.res b/apps/docs/app/routes/ApiRoute.res
index 1f8ef40cb..894ea7e8f 100644
--- a/apps/docs/app/routes/ApiRoute.res
+++ b/apps/docs/app/routes/ApiRoute.res
@@ -98,23 +98,26 @@ let groupItems = apiDocs => {
}
let makeBreadcrumbs = (~prefix: Url.breadcrumb, route: Path.t): list => {
- let url = Url.parse((route :> string))
-
- let (_, rest) = // Strip the "api" part of the url before creating the rest of the breadcrumbs
- Array.slice(url.pagepath, ~start=1)->Array.reduce((prefix.href, []), (acc, path) => {
- let (baseHref, ret) = acc
-
- let href = baseHref ++ ("/" ++ path)
-
- Array.push(
- ret,
- {
- Url.name: Url.prettyString(path),
- href,
- },
- )->ignore
- (href, ret)
- })
+ let (_, rest) =
+ // Strip the "/docs/manual/api" base path before creating the rest of the breadcrumbs
+ (route :> string)
+ ->String.split("/")
+ ->Array.filter(s => s !== "")
+ ->Array.slice(~start=3)
+ ->Array.reduce((prefix.href, []), (acc, path) => {
+ let (baseHref, ret) = acc
+
+ let href = baseHref ++ ("/" ++ path)
+
+ Array.push(
+ ret,
+ {
+ Url.name: Url.prettyString(path),
+ href,
+ },
+ )->ignore
+ (href, ret)
+ })
Array.concat([prefix], rest)->List.fromArray
}
diff --git a/apps/docs/app/routes/BlogArticle.res b/apps/docs/app/routes/BlogArticle.res
index 736dcd3d4..d2a343d08 100644
--- a/apps/docs/app/routes/BlogArticle.res
+++ b/apps/docs/app/routes/BlogArticle.res
@@ -142,7 +142,10 @@ let make = (props: props) => {
archivedNote
- children
+
+ {React.string("Blog")}
+ children
+
diff --git a/apps/docs/app/routes/DocsGuidelinesRoute.res b/apps/docs/app/routes/DocsGuidelinesRoute.res
index 74ad454b9..0dd44b961 100644
--- a/apps/docs/app/routes/DocsGuidelinesRoute.res
+++ b/apps/docs/app/routes/DocsGuidelinesRoute.res
@@ -50,7 +50,7 @@ let default = () => {
{React.string("Edit")}
-
+
diff --git a/apps/docs/app/routes/DocsManualRoute.res b/apps/docs/app/routes/DocsManualRoute.res
index 643b86203..a9ee2e2dd 100644
--- a/apps/docs/app/routes/DocsManualRoute.res
+++ b/apps/docs/app/routes/DocsManualRoute.res
@@ -86,7 +86,7 @@ let default = () => {
{React.string("Edit")}
-
+
diff --git a/apps/docs/app/routes/DocsOverview.res b/apps/docs/app/routes/DocsOverview.res
index e5df82e57..dbffbd735 100644
--- a/apps/docs/app/routes/DocsOverview.res
+++ b/apps/docs/app/routes/DocsOverview.res
@@ -16,17 +16,12 @@ module Card = {
@react.component
let default = (~showVersionSelect=true) => {
- let {pathname} = ReactRouter.useLocation()
- let url = (pathname :> string)->Url.parse
-
- let version = url->Url.getVersionString
-
- let languageManual = Constants.languageManual(version)
+ let languageManual = Constants.languageManual
let ecosystem = [
("Package Index", "/packages"),
("rescript-react", "/docs/react/introduction"),
- ("GenType", `/docs/manual/${version}/typescript-integration`),
+ ("GenType", "/docs/manual/typescript-integration"),
("Reanalyze", "https://github.com/rescript-lang/reanalyze"),
]
diff --git a/apps/docs/app/routes/DocsReactRoute.res b/apps/docs/app/routes/DocsReactRoute.res
index 8c52e7dca..e899d2018 100644
--- a/apps/docs/app/routes/DocsReactRoute.res
+++ b/apps/docs/app/routes/DocsReactRoute.res
@@ -79,7 +79,7 @@ let default = () => {
{React.string("Edit")}
-
+
diff --git a/apps/docs/app/routes/SyntaxLookup.res b/apps/docs/app/routes/SyntaxLookup.res
index 2c60d52b2..fdddb1a60 100644
--- a/apps/docs/app/routes/SyntaxLookup.res
+++ b/apps/docs/app/routes/SyntaxLookup.res
@@ -310,7 +310,11 @@ let make = (
| ShowFiltered(_, _)
| ShowAll => React.null
| ShowDetails(item) =>
-
+
+
+ {React.string("Syntax Lookup")}
+
+ {React.string(item.name)}
children
}
diff --git a/apps/docs/package.json b/apps/docs/package.json
index dbe1267c3..03aa4d044 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -8,11 +8,13 @@
"scripts": {
"build:scripts": "yarn dlx tsdown@0.21.7 scripts/*.jsx -d _scripts --no-clean --ext .mjs",
"build:generate-llms": "node _scripts/generate_llms.mjs",
+ "build:generate-sitemap": "node _scripts/generate_sitemap.mjs build/client out",
"build:res": "rescript build --warn-error +3+8+11+12+26+27+31+32+33+34+35+39+44+45+110",
"build:sync-bundles": "node scripts/sync-playground-bundles.mjs",
"build:update-index": "yarn build:generate-llms && node _scripts/generate_feed.mjs > public/blog/feed.xml",
"build:vite": "react-router build",
- "build": "yarn build:res && yarn build:scripts && yarn build:update-index && yarn build:vite",
+ "check:algolia-public-env": "node _scripts/LogAlgoliaEnvStatus.mjs",
+ "build": "yarn build:res && yarn build:scripts && yarn check:algolia-public-env && yarn build:update-index && yarn build:vite && yarn build:generate-sitemap",
"ci:format": "cd ../.. && oxfmt --check",
"ci:test": "yarn vitest --run --browser.headless",
"clean:res": "rescript clean",
@@ -22,7 +24,7 @@
"dev:wrangler": "yarn wrangler pages dev build/client",
"dev": "yarn prepare && yarn dev:res & yarn dev:vite & yarn dev:wrangler",
"format": "cd ../.. && oxfmt && cd apps/docs && rescript format",
- "prepare": "yarn build:res && yarn build:scripts && yarn build:update-index",
+ "prepare": "yarn build:res && yarn build:scripts && yarn check:algolia-public-env && yarn build:update-index",
"preview": "yarn build && static-server build/client",
"reanalyze": "rescript-tools reanalyze -all-cmt .",
"test": "node scripts/test.mjs",
diff --git a/apps/docs/scripts/LogAlgoliaEnvStatus.res b/apps/docs/scripts/LogAlgoliaEnvStatus.res
new file mode 100644
index 000000000..887c08825
--- /dev/null
+++ b/apps/docs/scripts/LogAlgoliaEnvStatus.res
@@ -0,0 +1,19 @@
+@val @scope(("import", "meta")) external url: string = "url"
+
+let run = () => {
+ let missing = AlgoliaEnvStatus.getMissingPublicAlgoliaVars(~env=Node.Process.env)
+ if Array.length(missing) > 0 {
+ Console.warn(AlgoliaEnvStatus.formatDisabledMessage(missing))
+ }
+}
+
+let isMainModule = () =>
+ switch Node.Process.argv[1] {
+ | Some(entrypoint) =>
+ Node.URL.fileURLToPath(url) === Node.Path.resolve(Node.Process.cwd(), entrypoint)
+ | None => false
+ }
+
+let _ = if isMainModule() {
+ run()
+}
diff --git a/apps/docs/scripts/generate_sitemap.res b/apps/docs/scripts/generate_sitemap.res
new file mode 100644
index 000000000..d85dc9f44
--- /dev/null
+++ b/apps/docs/scripts/generate_sitemap.res
@@ -0,0 +1,47 @@
+let rec collectPagePaths = (dirPath, urlPath) => {
+ Node.Fs.readdirSync(dirPath)->Array.flatMap(entry => {
+ let fullPath = Node.Path.join2(dirPath, entry)
+ let stats = Node.Fs.statSync(fullPath)
+
+ if stats["isDirectory"]() {
+ let nextUrlPath = if urlPath === "" {
+ entry
+ } else {
+ urlPath ++ "/" ++ entry
+ }
+
+ collectPagePaths(fullPath, nextUrlPath)
+ } else if entry === "index.html" {
+ [urlPath === "" ? "/" : "/" ++ urlPath]
+ } else {
+ []
+ }
+ })
+}
+
+let outputDirs = {
+ let args = Node.Process.argv->Array.slice(~start=2)
+
+ switch args->Array.length {
+ | 0 => ["build/client"]
+ | _ => args
+ }
+}
+
+let sourceDir = outputDirs->Array.get(0)->Option.getOr("build/client")
+
+if !Node.Fs.existsSync(sourceDir) {
+ Console.error(`Cannot generate sitemap: ${sourceDir} does not exist`)
+ Node.Process.exit(1)
+}
+
+let baseUrl = Node.Process.env->Dict.get("VITE_DEPLOYMENT_URL")->Option.getOr("")
+let sitemap = sourceDir->collectPagePaths("")->Sitemap.render(~baseUrl)
+
+outputDirs->Array.forEach(outputDir => {
+ if Node.Fs.existsSync(outputDir) {
+ let filePath = Node.Path.join2(outputDir, "sitemap.xml")
+ Node.Fs.writeFileSync(filePath, sitemap, ~encoding="utf8")
+ Console.log(`Generated ${filePath}`)
+ }
+})
diff --git a/apps/docs/src/bindings/DocSearch.res b/apps/docs/src/bindings/DocSearch.res
index 0c42d8586..d51f22c5a 100644
--- a/apps/docs/src/bindings/DocSearch.res
+++ b/apps/docs/src/bindings/DocSearch.res
@@ -19,19 +19,39 @@ type hierarchy = {
lvl6: Nullable.t,
}
+type highlightedValue = {value: string}
+
+type highlightedHierarchy = {
+ lvl0: Nullable.t,
+ lvl1: Nullable.t,
+ lvl2: Nullable.t,
+ lvl3: Nullable.t,
+ lvl4: Nullable.t,
+ lvl5: Nullable.t,
+ lvl6: Nullable.t,
+}
+
+type highlightResult = {
+ hierarchy: Nullable.t,
+}
+
+type snippetResult = {
+ content: Nullable.t,
+}
+
type docSearchHit = {
objectID: string,
content: Nullable.t,
url: string,
- url_without_anchor: string,
+ url_without_anchor: Nullable.t,
@as("type") type_: contentType,
anchor: Nullable.t,
hierarchy: hierarchy,
// Additional field for deprecation information
deprecated: option,
// NOTE: docsearch need these two fields to highlight results
- _highlightResult: {.},
- _snippetResult: {.},
+ _highlightResult?: highlightResult,
+ _snippetResult?: snippetResult,
}
type transformItems = array
@@ -44,7 +64,12 @@ type item = {itemUrl: string}
type navigator = {navigate: item => unit}
-type searchParameters = {facetFilters: array}
+type searchParameters = {
+ facetFilters?: array,
+ hitsPerPage?: int,
+ distinct?: int,
+ attributesToSnippet?: array,
+}
@module("@docsearch/react") @react.component
external make: (
diff --git a/apps/docs/src/bindings/Env.res b/apps/docs/src/bindings/Env.res
index 29a6c4e1b..29e21321d 100644
--- a/apps/docs/src/bindings/Env.res
+++ b/apps/docs/src/bindings/Env.res
@@ -6,6 +6,41 @@ external deployment_url: option = "import.meta.env.VITE_DEPLOYMENT_URL"
// the root url of the site, e.g. "https://rescript-lang.org/" or "http://localhost:5173/"
let root_url = switch deployment_url {
-| Some(url) => url
+| Some(url) if url !== "" => url
| None => dev ? "http://localhost:5173/" : "https://rescript-lang.org/"
+| Some(_) => "https://rescript-lang.org/"
}
+
+// Algolia search configuration (read from .env via Vite)
+external algoliaAppIdRaw: option = "import.meta.env.VITE_ALGOLIA_APP_ID"
+external algoliaIndexNameRaw: option = "import.meta.env.VITE_ALGOLIA_INDEX_NAME"
+external algoliaSearchApiKeyRaw: option = "import.meta.env.VITE_ALGOLIA_SEARCH_API_KEY"
+
+let algoliaMissingPublicVars = AlgoliaConfig.missingPublicVars(
+ ~appId=algoliaAppIdRaw,
+ ~indexName=algoliaIndexNameRaw,
+ ~searchApiKey=algoliaSearchApiKeyRaw,
+)
+
+let algoliaPublicConfig = AlgoliaConfig.publicConfigFrom(
+ ~appId=algoliaAppIdRaw,
+ ~indexName=algoliaIndexNameRaw,
+ ~searchApiKey=algoliaSearchApiKeyRaw,
+)
+
+let algolia_app_id = switch algoliaPublicConfig {
+| Some(config) => config.appId
+| None => ""
+}
+
+let algolia_index_name = switch algoliaPublicConfig {
+| Some(config) => config.indexName
+| None => ""
+}
+
+let algolia_search_api_key = switch algoliaPublicConfig {
+| Some(config) => config.searchApiKey
+| None => ""
+}
+
+let algolia_read_api_key = algolia_search_api_key
diff --git a/apps/docs/src/bindings/Mdast.res b/apps/docs/src/bindings/Mdast.res
index 565117d31..c9fd2c016 100644
--- a/apps/docs/src/bindings/Mdast.res
+++ b/apps/docs/src/bindings/Mdast.res
@@ -3,6 +3,12 @@ type tree
@module("mdast-util-from-markdown")
external fromMarkdown: string => tree = "fromMarkdown"
+@module("mdast-util-to-string")
+external toString: {..} => string = "toString"
+
+@module("unist-util-visit")
+external visit: (tree, string, {..} => unit) => unit = "visit"
+
@unboxed
type listType =
| @as("list") List
diff --git a/apps/docs/src/bindings/Vitest.res b/apps/docs/src/bindings/Vitest.res
index 1f15e6f79..c2428c72d 100644
--- a/apps/docs/src/bindings/Vitest.res
+++ b/apps/docs/src/bindings/Vitest.res
@@ -86,6 +86,9 @@ external click: element => promise = "click"
@send
external toBe: (expect, 'a) => unit = "toBe"
+@send
+external toEqual: (expect, 'a) => unit = "toEqual"
+
@send
external toHaveBeenCalled: expect => unit = "toHaveBeenCalled"
diff --git a/apps/docs/src/common/AlgoliaConfig.res b/apps/docs/src/common/AlgoliaConfig.res
new file mode 100644
index 000000000..e486ee425
--- /dev/null
+++ b/apps/docs/src/common/AlgoliaConfig.res
@@ -0,0 +1,37 @@
+type publicConfig = {
+ appId: string,
+ indexName: string,
+ searchApiKey: string,
+}
+
+let isPresent = value =>
+ switch value {
+ | Some(v) => v !== ""
+ | None => false
+ }
+
+let missingPublicVars = (~appId, ~indexName, ~searchApiKey): array => {
+ let missing = []
+ if !isPresent(appId) {
+ missing->Array.push("VITE_ALGOLIA_APP_ID")
+ }
+ if !isPresent(indexName) {
+ missing->Array.push("VITE_ALGOLIA_INDEX_NAME")
+ }
+ if !isPresent(searchApiKey) {
+ missing->Array.push("VITE_ALGOLIA_SEARCH_API_KEY")
+ }
+ missing
+}
+
+let publicConfigFrom = (~appId, ~indexName, ~searchApiKey): option =>
+ switch (appId, indexName, searchApiKey) {
+ | (Some(appId), Some(indexName), Some(searchApiKey))
+ if missingPublicVars(
+ ~appId=Some(appId),
+ ~indexName=Some(indexName),
+ ~searchApiKey=Some(searchApiKey),
+ )->Array.length === 0 =>
+ Some({appId, indexName, searchApiKey})
+ | _ => None
+ }
diff --git a/apps/docs/src/common/AlgoliaEnvStatus.res b/apps/docs/src/common/AlgoliaEnvStatus.res
new file mode 100644
index 000000000..20c52ceca
--- /dev/null
+++ b/apps/docs/src/common/AlgoliaEnvStatus.res
@@ -0,0 +1,12 @@
+let publicKeys = ["VITE_ALGOLIA_APP_ID", "VITE_ALGOLIA_INDEX_NAME", "VITE_ALGOLIA_SEARCH_API_KEY"]
+
+let getMissingPublicAlgoliaVars = (~env: Dict.t): array =>
+ publicKeys->Array.filter(key =>
+ switch env->Dict.get(key) {
+ | None | Some("") => true
+ | Some(_) => false
+ }
+ )
+
+let formatDisabledMessage = (missing: array) =>
+ `Algolia search disabled: missing ${missing->Array.join(", ")}`
diff --git a/apps/docs/src/common/Constants.res b/apps/docs/src/common/Constants.res
index 3e1e23462..9183573f6 100644
--- a/apps/docs/src/common/Constants.res
+++ b/apps/docs/src/common/Constants.res
@@ -19,6 +19,11 @@ let versions = {
let latestVersion = (versions.latest, versions.latest->Semver.tryGetMajorString)
+let docSearchVersionTokens = {
+ let (_, majorVersion) = latestVersion
+ [majorVersion, "latest"]
+}
+
// This is used for the version dropdown in the manual layouts
let allManualVersions = [
latestVersion,
@@ -46,14 +51,12 @@ let dropdownLabelNext = "--- Next ---"
let dropdownLabelReleased = "--- Released ---"
// Used for the DocsOverview and collapsible navigation
-let languageManual = version => {
- [
- ("Overview", `/docs/manual/${version}/introduction`),
- ("Language Features", `/docs/manual/${version}/overview`),
- ("JS Interop", `/docs/manual/${version}/embed-raw-javascript`),
- ("Build System", `/docs/manual/${version}/build-overview`),
- ]
-}
+let languageManual = [
+ ("Overview", "/docs/manual/introduction"),
+ ("Language Features", "/docs/manual/overview"),
+ ("JS Interop", "/docs/manual/embed-raw-javascript"),
+ ("Build System", "/docs/manual/build-overview"),
+]
let tools = [("Syntax Lookup", "/syntax-lookup")]
diff --git a/apps/docs/src/common/Sitemap.res b/apps/docs/src/common/Sitemap.res
new file mode 100644
index 000000000..2dfacc6b1
--- /dev/null
+++ b/apps/docs/src/common/Sitemap.res
@@ -0,0 +1,81 @@
+let defaultBaseUrl = "https://rescript-lang.org"
+
+let normalizeBaseUrl = baseUrl => {
+ let trimmed = baseUrl->String.trim
+
+ let baseUrl = if trimmed === "" {
+ defaultBaseUrl
+ } else {
+ trimmed
+ }
+
+ if baseUrl->String.endsWith("/") {
+ baseUrl->String.slice(~start=0, ~end=baseUrl->String.length - 1)
+ } else {
+ baseUrl
+ }
+}
+
+let normalizePath = path => {
+ let trimmed = path->String.trim
+
+ if trimmed === "" || trimmed === "/" {
+ "/"
+ } else if trimmed->String.startsWith("/") {
+ trimmed
+ } else {
+ "/" ++ trimmed
+ }
+}
+
+let escapeXml = value =>
+ value
+ ->String.replaceAll("&", "&")
+ ->String.replaceAll("<", "<")
+ ->String.replaceAll(">", ">")
+ ->String.replaceAll("\"", """)
+ ->String.replaceAll("'", "'")
+
+let normalizePaths = paths =>
+ paths
+ ->Array.map(normalizePath)
+ ->Array.toSorted(String.compare)
+ ->Array.reduce([], (acc, path) => {
+ if acc->Array.includes(path) {
+ acc
+ } else {
+ acc->Array.push(path)
+ acc
+ }
+ })
+
+let withTrailingSlash = path => {
+ if path === "/" || path->String.endsWith("/") {
+ path
+ } else {
+ path ++ "/"
+ }
+}
+
+let renderUrl = (~baseUrl, path) => {
+ let loc = baseUrl ++ path->withTrailingSlash
+
+ `
+ ${loc->escapeXml}
+ `
+}
+
+let render = (~baseUrl, paths) => {
+ let baseUrl = normalizeBaseUrl(baseUrl)
+ let urls =
+ paths
+ ->normalizePaths
+ ->Array.map(path => renderUrl(~baseUrl, path))
+ ->Array.join("\n")
+
+ `
+
+${urls}
+
+`
+}
diff --git a/apps/docs/src/common/Url.res b/apps/docs/src/common/Url.res
index fb31e28cd..7f56de3fc 100644
--- a/apps/docs/src/common/Url.res
+++ b/apps/docs/src/common/Url.res
@@ -1,46 +1,6 @@
-type version =
- | Latest
- | Next
- | NoVersion
- | Version(string)
-
-/*
- Example 1:
- Url: "/docs/manual/latest/advanced/introduction"
-
- Results in:
- fullpath: ["docs", "manual", "latest", "advanced", "introduction"]
- base: ["docs", "manual"]
- version: Latest
- pagepath: ["advanced", "introduction"]
- */
-
-/*
- Example 2:
- Url: "/apis/"
-
- Results in:
- fullpath: ["apis"]
- base: ["apis"]
- version: NoVersion
- pagepath: []
- */
-
-/*
- Example 3:
- Url: "/apis/javascript/v7.1.1/node"
-
- Results in:
- fullpath: ["apis", "javascript", "v7.1.1", "node"]
- base: ["apis", "javascript"]
- version: Version("v7.1.1"),
- pagepath: ["node"]
- */
-
type t = {
fullpath: array,
base: array,
- version: version,
pagepath: array,
}
@@ -56,29 +16,13 @@ let prettyString = (str: string) => {
}
let parse = (route: string): t => {
- let fullpath = route->String.split("/")->Array.filter(s => s !== "")
- let foundVersionIndex = Array.findIndex(fullpath, chunk => {
- RegExp.test(/latest|next|v\d+(\.\d+)?(\.\d+)?/, chunk)
- })
+ let routePath = route->String.split("/")->Array.filter(s => s !== "")
- let (version, base, pagepath) = if foundVersionIndex == -1 {
- (NoVersion, fullpath, [])
- } else {
- let version = switch fullpath[foundVersionIndex] {
- | Some(version) if version === Constants.versions.next => Next
- | Some(version) if version === Constants.versions.latest => Latest
- | Some("latest") => Latest // still used for React docs
- | Some(v) => Version(v)
- | None => NoVersion
- }
- (
- version,
- fullpath->Array.slice(~start=0, ~end=foundVersionIndex),
- fullpath->Array.slice(~start=foundVersionIndex + 1, ~end=Array.length(fullpath)),
- )
+ {
+ fullpath: routePath,
+ base: routePath,
+ pagepath: [],
}
-
- {fullpath, base, version, pagepath}
}
@unboxed
@@ -95,13 +39,6 @@ let getVersionFromStorage = (key: storageKey) => {
}
}
-let getVersionString = url =>
- switch url.version {
- | Next => Constants.versions.next
- | Latest | NoVersion => Constants.versions.latest
- | Version(version) => version
- }
-
let normalizePath = string => {
string->String.replaceRegExp(/\/$/, "")->String.toLocaleLowerCase
}
@@ -116,3 +53,15 @@ let normalizeAnchor = string => {
->String.replaceAllRegExp(/[^a-zA-Z0-9-]/g, "")
->String.toLocaleLowerCase
}
+
+type anchorIdState = Dict.t
+
+let makeAnchorIdState = () => Dict.make()
+
+let makeUniqueAnchorId = (~state, ~title) => {
+ let baseId = title->normalizeAnchor
+ let count = state->Dict.get(baseId)->Option.getOr(0)
+ state->Dict.set(baseId, count + 1)
+
+ count === 0 ? baseId : `${baseId}-${count->Int.toString}`
+}
diff --git a/apps/docs/src/common/Url.resi b/apps/docs/src/common/Url.resi
index afbeb91c2..a8954e9a5 100644
--- a/apps/docs/src/common/Url.resi
+++ b/apps/docs/src/common/Url.resi
@@ -1,13 +1,6 @@
-type version =
- | Latest
- | Next
- | NoVersion
- | Version(string)
-
type t = {
fullpath: array,
base: array,
- version: version,
pagepath: array,
}
@@ -29,8 +22,12 @@ type storageKey =
let getVersionFromStorage: storageKey => option
-let getVersionString: t => string
-
let normalizePath: string => string
let normalizeAnchor: string => string
+
+type anchorIdState
+
+let makeAnchorIdState: unit => anchorIdState
+
+let makeUniqueAnchorId: (~state: anchorIdState, ~title: string) => string
diff --git a/apps/docs/src/components/Markdown.res b/apps/docs/src/components/Markdown.res
index 247a5d74f..6de1a22ca 100644
--- a/apps/docs/src/components/Markdown.res
+++ b/apps/docs/src/components/Markdown.res
@@ -116,7 +116,6 @@ module Anchor = {
title=?title
className="scroll-mt-30 invisible text-gray-60 opacity-50 hover:opacity-100 hover:text-gray-60 hover:cursor-pointer group-hover:visible"
href={"#" ++ id}
- id={id}
>
@@ -127,7 +126,8 @@ module Anchor = {
module H1 = {
@react.component
- let make = (~children) => children
+ let make = (~id=?, ~title=?, ~children) =>
+ children
}
module H2 = {
@@ -136,7 +136,7 @@ module H2 = {
// Children may not be a string
<>
-
+
children
@@ -149,7 +149,7 @@ module H2 = {
module H3 = {
@react.component
let make = (~id, ~children, ~title=?) => {
-
+
children
@@ -161,7 +161,7 @@ module H3 = {
module H4 = {
@react.component
let make = (~id, ~children, ~title=?) => {
-
+
children
@@ -175,7 +175,7 @@ module H5 = {
let make = (~id, ~children, ~title=?) => {
children
diff --git a/apps/docs/src/components/Markdown.resi b/apps/docs/src/components/Markdown.resi
index 6234ea9dd..4c42ad8ff 100644
--- a/apps/docs/src/components/Markdown.resi
+++ b/apps/docs/src/components/Markdown.resi
@@ -40,7 +40,7 @@ module Anchor: {
module H1: {
@react.component
- let make: (~children: React.element) => React.element
+ let make: (~id: string=?, ~title: string=?, ~children: React.element) => React.element
}
module H2: {
diff --git a/apps/docs/src/components/MarkdownComponents.res b/apps/docs/src/components/MarkdownComponents.res
index 67a5a272a..145d118c7 100644
--- a/apps/docs/src/components/MarkdownComponents.res
+++ b/apps/docs/src/components/MarkdownComponents.res
@@ -27,7 +27,7 @@ type t = {
/* Common markdown elements */
p?: P.props => React.element,
li?: Li.props => React.element,
- h1?: H1.props => React.element,
+ h1?: H1.props => React.element,
h2?: H2.props => React.element,
h3?: H3.props => React.element,
h4?: H4.props => React.element,
diff --git a/apps/docs/src/components/Meta.res b/apps/docs/src/components/Meta.res
index 4985bdb18..bcaa140d8 100644
--- a/apps/docs/src/components/Meta.res
+++ b/apps/docs/src/components/Meta.res
@@ -72,8 +72,8 @@ let make = (
- // Docsearch meta tags
-
+
+ Array.join(",")} />
// Robots meta tag
>
diff --git a/apps/docs/src/components/Search.res b/apps/docs/src/components/Search.res
index b9ccbb103..42c5e7c41 100644
--- a/apps/docs/src/components/Search.res
+++ b/apps/docs/src/components/Search.res
@@ -1,108 +1,318 @@
-let apiKey = "a2485ef172b8cd82a2dfa498d551399b"
-let indexName = "rescript-lang"
-let appId = "S32LNEY41T"
-
type state = Active | Inactive
-let hit = ({hit, children}: DocSearch.hitComponent) => {
- let toTitle = str => str->String.charAt(0)->String.toUpperCase ++ String.slice(str, ~start=1)
-
- let description = switch hit.url
- ->String.split("/")
- ->Array.slice(~start=1)
- ->List.fromArray {
- | list{"blog" as r | "community" as r, ..._} => r->toTitle
- | list{"docs", doc, version, ...rest} =>
- let path = rest->List.toArray
-
- let info =
- path
- ->Array.slice(~start=0, ~end=Array.length(path) - 1)
- ->Array.map(path =>
- switch path {
- | "api" => "API"
- | other => toTitle(other)
- }
- )
+let unavailableText = "Search unavailable"
+let unavailableLabel = "Search unavailable for this build"
- [doc->toTitle, version->toTitle]->Array.concat(info)->Array.join(" / ")
- | _ => ""
+let toRelativeSiteUrl = (url: string, ~siteUrl: string): string => {
+ let normalizedSiteUrl = siteUrl->String.replaceRegExp(RegExp.fromString("/+$", ~flags=""), "")
+ if normalizedSiteUrl !== "" && String.startsWith(url, normalizedSiteUrl) {
+ let relativePath = String.slice(url, ~start=String.length(normalizedSiteUrl))
+ if relativePath === "" {
+ "/"
+ } else if String.startsWith(relativePath, "/") {
+ relativePath
+ } else {
+ "/" ++ relativePath
+ }
+ } else {
+ url
}
+}
- let isDeprecated = hit.deprecated->Option.isSome
- let deprecatedBadge = isDeprecated
- ?
- {"Deprecated"->React.string}
-
- : React.null
-
-
-
- {deprecatedBadge}
- {description->React.string}
-
- children
-
+type apiNamespace = StdlibApi | BeltApi
+
+let apiNamespaceForUrl = (url: string): option =>
+ if url->String.includes("/docs/manual/api/stdlib/") {
+ Some(StdlibApi)
+ } else if url->String.includes("/docs/manual/api/belt/") {
+ Some(BeltApi)
+ } else {
+ None
+ }
+
+let stripCaseInsensitivePrefix = (value: string, prefix: string): string => {
+ if (
+ prefix->String.length > 0 &&
+ value->String.toLowerCase->String.startsWith(prefix->String.toLowerCase)
+ ) {
+ String.slice(value, ~start=String.length(prefix))
+ } else {
+ value
+ }
}
-let transformItems = (items: DocSearch.transformItems) => {
- items
- ->Array.filterMap(item => {
- let url = try WebAPI.URL.make(~url=item.url)->Some catch {
- | JsExn(obj) =>
- Console.error2(`Failed to parse URL ${item.url}`, obj)
- None
- }
- switch url {
- | Some({pathname, hash}) =>
- RegExp.test(/v(8|9|10|11)\./, pathname)
- ? None
- : {
- // DocSearch internally calls .replace() on hierarchy.lvl1, so we must
- // provide a fallback for items where lvl1 is null to prevent crashes
- let hierarchy = item.hierarchy
- let lvl0 = hierarchy.lvl0->Nullable.toOption->Option.getOr("")
- let lvl1 = hierarchy.lvl1->Nullable.toOption->Option.getOr(lvl0)
- Some({
- ...item,
- deprecated: pathname->String.includes("api/js") ||
- pathname->String.includes("api/core")
- ? Some("Deprecated")
- : None,
- url: pathname->String.replace("/v12.0.0/", "/") ++ hash,
- hierarchy: {
- ...hierarchy,
- lvl0: Nullable.make(lvl0),
- lvl1: Nullable.make(lvl1),
- },
- })
- }
+let baseApiModuleName = (moduleName: string): string =>
+ moduleName->stripCaseInsensitivePrefix("Stdlib.")->stripCaseInsensitivePrefix("Belt.")
- | None => None
+let apiGroupName = (hit: DocSearch.docSearchHit): option =>
+ switch (apiNamespaceForUrl(hit.url), hit.hierarchy.lvl0->Nullable.toOption) {
+ | (Some(StdlibApi), Some(moduleName)) if moduleName !== "" =>
+ Some(moduleName->stripCaseInsensitivePrefix("Stdlib."))
+ | (Some(BeltApi), Some(moduleName)) if moduleName !== "" =>
+ Some(`Belt.${moduleName->baseApiModuleName}`)
+ | _ => None
+ }
+
+let normalizeHitUrls = (items: array, ~siteUrl: string) =>
+ items->Array.map(hit => {
+ let url = toRelativeSiteUrl(hit.url, ~siteUrl)
+ let urlWithoutAnchor =
+ hit.url_without_anchor
+ ->Nullable.toOption
+ ->Option.getOr(hit.url->String.split("#")->Array.get(0)->Option.getOr(hit.url))
+ let url_without_anchor = toRelativeSiteUrl(urlWithoutAnchor, ~siteUrl)->Nullable.make
+ let hierarchy = switch hit->apiGroupName {
+ | Some(lvl0) => {...hit.hierarchy, lvl0: Nullable.make(lvl0)}
+ | None => hit.hierarchy
}
+ {...hit, url, url_without_anchor, hierarchy}
})
- // Sort deprecated items to the end
- ->Array.toSorted((a, b) => {
- switch (a.deprecated, b.deprecated) {
- | (Some(_), None) => 1. // a is deprecated, b is not - put a after b
- | (None, Some(_)) => -1. // a is not deprecated, b is - put a before b
- | _ => 0.
+
+let navigator = (~siteUrl: string): DocSearch.navigator => {
+ navigate: ({itemUrl}) => {
+ ReactRouter.navigate(toRelativeSiteUrl(itemUrl, ~siteUrl))
+ },
+}
+
+let getSubtitle: DocSearch.docSearchHit => option = %raw(`
+ function(hit) {
+ var type = hit.type;
+ if (type && type !== 'lvl1' && type !== 'lvl0') {
+ var raw = hit.hierarchy;
+ if (raw && raw.lvl1) return raw.lvl1;
}
- })
- ->Array.toSorted((a, b) => {
- switch (a.url->String.includes("api/stdlib"), b.url->String.includes("api/stdlib")) {
- | (true, false) => -1. // a is a stdlib doc, b is not - put a before b
- | (false, true) => 1. // a is not a stdlib doc, b is - put a after b
- | _ => 0. // both same API status - maintain original order
+ return undefined;
+ }
+`)
+
+let highlightedValue = (value: Nullable.t): option =>
+ value->Nullable.toOption->Option.map(value => value.value)
+
+let highlightedValueWithMarkup = (value: Nullable.t): option =>
+ switch highlightedValue(value) {
+ | Some(value) if value->String.includes("") => Some(value)
+ | _ => None
+ }
+
+let highlightedHierarchyValue = (
+ hierarchy: DocSearch.highlightedHierarchy,
+ type_: DocSearch.contentType,
+): option =>
+ switch type_ {
+ | Lvl0 => hierarchy.lvl0->highlightedValue
+ | Lvl1 => hierarchy.lvl1->highlightedValue
+ | Lvl2 => hierarchy.lvl2->highlightedValue
+ | Lvl3 => hierarchy.lvl3->highlightedValue
+ | Lvl4 => hierarchy.lvl4->highlightedValue
+ | Lvl5 => hierarchy.lvl5->highlightedValue
+ | Lvl6 => hierarchy.lvl6->highlightedValue
+ | Content => None
+ }
+
+let highlightedHierarchyValueWithMarkup = (
+ hierarchy: DocSearch.highlightedHierarchy,
+ type_: DocSearch.contentType,
+): option =>
+ switch type_ {
+ | Lvl0 => hierarchy.lvl0->highlightedValueWithMarkup
+ | Lvl1 => hierarchy.lvl1->highlightedValueWithMarkup
+ | Lvl2 => hierarchy.lvl2->highlightedValueWithMarkup
+ | Lvl3 => hierarchy.lvl3->highlightedValueWithMarkup
+ | Lvl4 => hierarchy.lvl4->highlightedValueWithMarkup
+ | Lvl5 => hierarchy.lvl5->highlightedValueWithMarkup
+ | Lvl6 => hierarchy.lvl6->highlightedValueWithMarkup
+ | Content => None
+ }
+
+let firstMarkedText = (html: string): option => {
+ switch RegExp.exec(/([^<]+)<\/mark>/, html) {
+ | Some(result) =>
+ let matches = RegExp.Result.matches(result)
+ switch matches[0] {
+ | Some(Some(markedText)) => Some(markedText)
+ | _ => None
}
- })
+ | None => None
+ }
+}
+
+let markTitlePrefix = (title: string, markedText: string): string => {
+ let markedLength = String.length(markedText)
+ if (
+ markedLength > 0 && title->String.toLowerCase->String.startsWith(markedText->String.toLowerCase)
+ ) {
+ let prefix = String.slice(title, ~start=0, ~end=markedLength)
+ let suffix = String.slice(title, ~start=markedLength)
+ `${prefix}${suffix}`
+ } else {
+ title
+ }
+}
+
+let stripApiModulePrefix = (markedText: string, moduleName: string): string => {
+ let moduleName = moduleName->baseApiModuleName
+ markedText
+ ->stripCaseInsensitivePrefix(`Stdlib.${moduleName}.`)
+ ->stripCaseInsensitivePrefix(`Belt.${moduleName}.`)
+ ->stripCaseInsensitivePrefix(`${moduleName}.`)
+}
+
+let getSnippetContent = (hit: DocSearch.docSearchHit): option =>
+ switch hit._snippetResult {
+ | Some(snippetResult) => snippetResult.content->highlightedValue
+ | None => None
+ }
+
+let getApiTitle = (hit: DocSearch.docSearchHit): option => {
+ if hit.url->String.includes("/docs/manual/api/") {
+ switch (hit.hierarchy.lvl0->Nullable.toOption, hit.hierarchy.lvl1->Nullable.toOption) {
+ | (Some(moduleName), Some(valueName)) if moduleName !== "" && valueName !== "" =>
+ let title = valueName
+ switch hit->getSnippetContent->Option.flatMap(firstMarkedText) {
+ | Some(markedText) =>
+ Some(markTitlePrefix(title, stripApiModulePrefix(markedText, moduleName)))
+ | None => Some(title)
+ }
+ | _ => None
+ }
+ } else {
+ None
+ }
+}
+
+let getHighlightedTitle = (hit: DocSearch.docSearchHit): string => {
+ let highlightedHierarchy =
+ hit._highlightResult->Option.flatMap(highlightResult =>
+ highlightResult.hierarchy->Nullable.toOption
+ )
+ let highlightedTitleWithMarkup = highlightedHierarchy->Option.flatMap(hierarchy =>
+ switch hit.type_ {
+ | Lvl0 | Lvl1 => None
+ | _ => highlightedHierarchyValueWithMarkup(hierarchy, hit.type_)
+ }
+ )
+
+ switch highlightedTitleWithMarkup {
+ | Some(title) => title
+ | None =>
+ switch highlightedHierarchy->Option.flatMap(hierarchy =>
+ hierarchy.lvl1->highlightedValueWithMarkup
+ ) {
+ | Some(title) => title
+ | None =>
+ switch getApiTitle(hit) {
+ | Some(title) => title
+ | None =>
+ switch highlightedHierarchy->Option.flatMap(hierarchy =>
+ highlightedHierarchyValue(hierarchy, hit.type_)
+ ) {
+ | Some(title) => title
+ | None => hit.hierarchy.lvl1->Nullable.toOption->Option.getOr("")
+ }
+ }
+ }
+ }
+}
+
+let markdownToHtml = (text: string): string =>
+ text
+ // Strip stray backslashes from MDX processing
+ ->String.replaceRegExp(RegExp.fromString("^\\\\\\s+", ~flags=""), "")
+ ->String.replaceRegExp(RegExp.fromString("\\\\\\s+", ~flags="g"), " ")
+ ->String.replaceRegExp(
+ RegExp.fromString("See\\s+\\[([^\\]]+)\\]\\([^)]*\\)\\s+on MDN\\.?", ~flags="g"),
+ "",
+ )
+ ->String.replaceRegExp(RegExp.fromString("See\\s+\\S+\\s+on MDN\\.?", ~flags="g"), "")
+ ->String.replaceRegExp(RegExp.fromString("\\[([^\\]]+)\\]\\([^)]*\\)", ~flags="g"), "$1")
+ ->String.replaceRegExp(RegExp.fromString("\\x60([^\\x60]+)\\x60", ~flags="g"), "$1")
+ ->String.replaceRegExp(
+ RegExp.fromString("\\*\\*([^*]+)\\*\\*", ~flags="g"),
+ "$1",
+ )
+ ->String.replaceRegExp(RegExp.fromString("\\*([^*]+)\\*", ~flags="g"), "$1")
+ ->String.replaceRegExp(RegExp.fromString("\\n{2,}", ~flags="g"), "
")
+ ->String.replaceRegExp(RegExp.fromString("\\n", ~flags="g"), " ")
+ ->String.trim
+
+let isChildHit = (hit: DocSearch.docSearchHit) =>
+ switch hit.type_ {
+ | Lvl2 | Lvl3 | Lvl4 | Lvl5 | Lvl6 | Content => true
+ | Lvl0 | Lvl1 => hit.url->String.includes("#")
+ }
+
+let getContentHtml = (hit: DocSearch.docSearchHit): option =>
+ switch getSnippetContent(hit) {
+ | Some(content) => Some(content->markdownToHtml)
+ | None => hit.content->Nullable.toOption->Option.map(markdownToHtml)
+ }
+
+let hitComponent = ({hit, children: _}: DocSearch.hitComponent): React.element => {
+ let titleHtml = getHighlightedTitle(hit)
+ let subtitle = getSubtitle(hit)
+ let contentHtml = getContentHtml(hit)
+ let isChild = isChildHit(hit)
+
+
+
+ {isChild ? : React.null}
+ {isChild ? : }
+
+
+ {switch subtitle {
+ | Some(s) => {React.string(s)}
+ | None => React.null
+ }}
+ {switch contentHtml {
+ | Some(c) if String.length(c) > 0 =>
+
+ | _ => React.null
+ }}
+
+
+
+
+}
+
+module ErrorBoundary = {
+ @react.component
+ let make = (~children: React.element, ~onClose: unit => unit) => {
+
+
+
+ {React.string(unavailableText)}
+
+
+ }
+ >
+ children
+
+ }
}
@react.component
let make = () => {
let (state, setState) = React.useState(_ => Inactive)
+ let algoliaConfig = Env.algoliaPublicConfig
+
+ let deactivateSearch = () => {
+ switch WebAPI.Document.querySelector(document, "body") {
+ | Value(body) => WebAPI.DOMTokenList.remove(body.classList, "DocSearch--active")
+ | Null => ()
+ }
+ setState(_ => Inactive)
+ }
let handleCloseModal = () => {
let () = switch WebAPI.Document.querySelector(document, ".DocSearch-Modal") {
@@ -115,38 +325,41 @@ let make = () => {
})
| Null => setState(_ => Inactive)
}
- | Null => ()
+ | Null => deactivateSearch()
}
}
React.useEffect(() => {
- let isEditableTag = (el: WebAPI.DOMAPI.element) =>
- switch el.tagName {
- | "TEXTAREA" | "SELECT" | "INPUT" => true
- | _ => false
- }
+ switch algoliaConfig {
+ | None => None
+ | Some(_) =>
+ let isEditableTag = (el: WebAPI.DOMAPI.element) =>
+ switch el.tagName {
+ | "TEXTAREA" | "SELECT" | "INPUT" => true
+ | _ => false
+ }
- let focusSearch = (e: WebAPI.UIEventsAPI.keyboardEvent) => {
- switch document.activeElement {
- | Value(el)
- if el->isEditableTag || (Obj.magic(el): WebAPI.DOMAPI.htmlElement).isContentEditable => ()
- | _ =>
- setState(_ => Active)
- WebAPI.KeyboardEvent.preventDefault(e)
+ let focusSearch = (e: WebAPI.UIEventsAPI.keyboardEvent) => {
+ switch document.activeElement {
+ | Value(el)
+ if el->isEditableTag || (Obj.magic(el): WebAPI.DOMAPI.htmlElement).isContentEditable => ()
+ | _ =>
+ setState(_ => Active)
+ WebAPI.KeyboardEvent.preventDefault(e)
+ }
}
- }
- let handleGlobalKeyDown = (e: WebAPI.UIEventsAPI.keyboardEvent) => {
- switch e.key {
- | "/" => focusSearch(e)
- | "k" if e.ctrlKey || e.metaKey => focusSearch(e)
- | "Escape" => handleCloseModal()
- | _ => ()
+ let handleGlobalKeyDown = (e: WebAPI.UIEventsAPI.keyboardEvent) => {
+ switch e.key {
+ | "/" => focusSearch(e)
+ | "k" if e.ctrlKey || e.metaKey => focusSearch(e)
+ | _ => ()
+ }
}
+ WebAPI.Window.addEventListener(window, Keydown, handleGlobalKeyDown)
+ Some(() => WebAPI.Window.removeEventListener(window, Keydown, handleGlobalKeyDown))
}
- WebAPI.Window.addEventListener(window, Keydown, handleGlobalKeyDown)
- Some(() => WebAPI.Window.removeEventListener(window, Keydown, handleGlobalKeyDown))
- }, [setState])
+ }, [algoliaConfig])
let onClick = _ => {
setState(_ => Active)
@@ -156,34 +369,56 @@ let make = () => {
handleCloseModal()
}, [setState])
- <>
+ switch algoliaConfig {
+ | None =>
- {switch state {
- | Active =>
- switch ReactDOM.querySelector("body") {
- | Some(element) =>
- ReactDOM.createPortal(
- Float.toInt}
- transformItems={transformItems}
- hitComponent=hit
- />,
- element,
- )
- | None => React.null
- }
- | Inactive => React.null
- }}
- >
+ | Some({appId, indexName, searchApiKey}) =>
+ <>
+
+ {switch state {
+ | Active =>
+ switch ReactDOM.querySelector("body") {
+ | Some(element) =>
+ ReactDOM.createPortal(
+
+ normalizeHitUrls(items, ~siteUrl=Env.root_url)}
+ hitComponent
+ onClose
+ initialScrollY={window.scrollY->Float.toInt}
+ searchParameters={
+ distinct: 3,
+ hitsPerPage: 20,
+ attributesToSnippet: ["content:9999"],
+ }
+ />
+ ,
+ element,
+ )
+ | None => React.null
+ }
+ | Inactive => React.null
+ }}
+ >
+ }
}
diff --git a/apps/docs/src/layouts/CommunityLayout.res b/apps/docs/src/layouts/CommunityLayout.res
index d95cc201d..ec8e213e8 100644
--- a/apps/docs/src/layouts/CommunityLayout.res
+++ b/apps/docs/src/layouts/CommunityLayout.res
@@ -24,6 +24,7 @@ let make = (~children, ~categories, ~entries) => {
/>}
sidebarState=(isSidebarOpen, setSidebarOpen)
theme=#Reason
+ docSearchLvl0="Community"
>
children
diff --git a/apps/docs/src/layouts/DocsLayout.res b/apps/docs/src/layouts/DocsLayout.res
index 82901e7db..e319484c8 100644
--- a/apps/docs/src/layouts/DocsLayout.res
+++ b/apps/docs/src/layouts/DocsLayout.res
@@ -8,6 +8,7 @@ let make = (
~activeToc: option=?,
~categories: array,
~components=MarkdownComponents.default,
+ ~docSearchLvl0=?,
~theme=#Reason,
~children,
) => {
@@ -24,7 +25,9 @@ let make = (
let sidebar =
-
+
children
}
diff --git a/apps/docs/src/layouts/SidebarLayout.res b/apps/docs/src/layouts/SidebarLayout.res
index 85e69f4f0..00bbb71cf 100644
--- a/apps/docs/src/layouts/SidebarLayout.res
+++ b/apps/docs/src/layouts/SidebarLayout.res
@@ -250,6 +250,7 @@ let make = (
~sidebar: React.element,
~rightSidebar: option=?,
~categories: option>=?,
+ ~docSearchLvl0: option=?,
~children,
) => {
let location = ReactRouter.useLocation()
@@ -303,8 +304,15 @@ let make = (
sidebar
+ {switch docSearchLvl0 {
+ | Some(value) =>
+
+ {React.string(value)}
+
+ | None => React.null
+ }}
children
pagination
diff --git a/apps/docs/src/layouts/SidebarLayout.resi b/apps/docs/src/layouts/SidebarLayout.resi
index 6498b5a16..039316094 100644
--- a/apps/docs/src/layouts/SidebarLayout.resi
+++ b/apps/docs/src/layouts/SidebarLayout.resi
@@ -66,5 +66,6 @@ let make: (
~sidebar: React.element,
~rightSidebar: React.element=?,
~categories: array=?,
+ ~docSearchLvl0: string=?,
~children: React.element,
) => React.element
diff --git a/apps/docs/src/markdown/Mdx.res b/apps/docs/src/markdown/Mdx.res
index cadf676c5..dbb9bc9c5 100644
--- a/apps/docs/src/markdown/Mdx.res
+++ b/apps/docs/src/markdown/Mdx.res
@@ -188,18 +188,17 @@ let remarkLinkPlugin = makePlugin(_options => (tree, vfile) => remarkLinkPlugin(
// converts the inner text of headings to kebab-case IDs
let anchorLinkPlugin = (tree, _vfile) => {
+ let headingIds = Url.makeAnchorIdState()
+
visit(tree, "heading", node => {
let planText = childrenToString(node)
- let nodeData = switch node["data"] {
- | Some(data) => data
- | None => {
- "hProperties": {
- "id": planText->Url.normalizeAnchor,
- "title": planText,
- },
- }
+ let id = Url.makeUniqueAnchorId(~state=headingIds, ~title=planText)
+ node["data"] = {
+ "hProperties": {
+ "id": id,
+ "title": planText,
+ },
}
- node["data"] = nodeData
})
}
diff --git a/apps/docs/src/markdown/TocUtils.res b/apps/docs/src/markdown/TocUtils.res
index b09a83382..e070b3529 100644
--- a/apps/docs/src/markdown/TocUtils.res
+++ b/apps/docs/src/markdown/TocUtils.res
@@ -1,15 +1,17 @@
let buildEntries = (raw: string) => {
let markdownTree = Mdast.fromMarkdown(raw)
- let tocResult = Mdast.toc(markdownTree, {maxDepth: 2})
+ let headingIds = Url.makeAnchorIdState()
+ let entries: array = []
- let headers = Dict.make()
- Mdast.reduceHeaders(tocResult.map, headers)
-
- headers
- ->Dict.toArray
- ->Array.map(((header, url)): TableOfContents.entry => {
- header,
- href: (url :> string),
+ Mdast.visit(markdownTree, "heading", node => {
+ if node["depth"] <= 2 {
+ let header = Mdast.toString(node)
+ entries->Array.push({
+ header,
+ href: "#" ++ Url.makeUniqueAnchorId(~state=headingIds, ~title=header),
+ })
+ }
})
- ->Array.slice(~start=2)
+
+ entries->Array.slice(~start=2)
}
diff --git a/apps/docs/styles/_docsearch.css b/apps/docs/styles/_docsearch.css
index ac8c167b7..ba5f02688 100644
--- a/apps/docs/styles/_docsearch.css
+++ b/apps/docs/styles/_docsearch.css
@@ -137,17 +137,17 @@
@apply hidden;
}
+.DocSearch-Clear {
+ @apply hidden;
+}
+
.DocSearch-LoadingIndicator svg,
.DocSearch-MagnifierLabel svg {
@apply w-4 h-4;
}
.DocSearch-Cancel {
- font-size: 0;
- background-image: url("data:image/svg+xml,%3Csvg width='16' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.506 6h3.931V4.986H1.736v-1.39h2.488V2.583H1.736V1.196h2.69V.182H.506V6ZM8.56 1.855h1.18C9.721.818 8.87.102 7.574.102c-1.276 0-2.21.705-2.205 1.762-.003.858.602 1.35 1.585 1.585l.634.159c.633.153.986.335.988.727-.002.426-.406.716-1.03.716-.64 0-1.1-.295-1.14-.878h-1.19c.03 1.259.931 1.91 2.343 1.91 1.42 0 2.256-.68 2.259-1.745-.003-.969-.733-1.483-1.744-1.71l-.523-.125c-.506-.117-.93-.304-.92-.722 0-.375.332-.65.934-.65.588 0 .949.267.994.724ZM15.78 2.219C15.618.875 14.6.102 13.254.102c-1.537 0-2.71 1.086-2.71 2.989 0 1.898 1.153 2.989 2.71 2.989 1.492 0 2.392-.992 2.526-2.063l-1.244-.006c-.117.623-.606.98-1.262.98-.883 0-1.483-.656-1.483-1.9 0-1.21.591-1.9 1.492-1.9.673 0 1.159.389 1.253 1.028h1.244Z' fill='%2394a3b8'/%3E%3C/svg%3E") !important;
- background-size: 57.1428571429% auto;
- @apply w-9 h-7 bg-no-repeat bg-center appearance-none border border-gray-20
- rounded;
+ display: none !important;
}
/* Modal Dropdown */
@@ -273,8 +273,16 @@ svg.DocSearch-Hit-Select-Icon {
@apply text-14 text-gray-60;
}
+.DocSearch-Hit-subtitle {
+ @apply text-12 text-gray-40;
+}
+
.DocSearch-Hit-path {
- @apply text-12;
+ @apply text-14 text-gray-60;
+}
+
+.DocSearch-Hit-path code {
+ @apply bg-gray-10 text-black rounded-sm px-1 py-0.5 text-12 font-mono;
}
.DocSearch-Hit[aria-selected="true"] .DocSearch-Hit-title,
@@ -319,12 +327,40 @@ svg.DocSearch-Hit-Select-Icon {
/* Modal Footer */
.DocSearch-Footer {
- @apply flex flex-row-reverse flex-shrink-0 justify-between relative
- select-none w-full z-100 p-4;
+ border-top: 1px solid;
+ @apply flex flex-shrink-0 items-center justify-between relative
+ select-none w-full z-100 px-4 py-3 border-gray-20;
}
.DocSearch-Commands {
- display: none !important;
+ @apply flex items-center gap-3 list-none m-0 p-0;
+}
+
+.DocSearch-Commands li {
+ @apply flex items-center gap-1.5 text-12 text-gray-40;
+}
+
+.DocSearch-Commands-Key {
+ @apply inline-flex items-center justify-center w-5 h-5 rounded
+ border border-gray-20 bg-gray-5 text-11 text-gray-60 font-medium;
+}
+
+/* Swap "to close" / "to clear" based on whether the input has a query.
+ :placeholder-shown is true when the input is empty, false when it has text. */
+.DocSearch-Commands li:last-child .DocSearch-Label {
+ font-size: 0;
+}
+
+.DocSearch-Commands li:last-child .DocSearch-Label::after {
+ content: "to close";
+ font-size: 0.75rem;
+}
+
+.DocSearch-Modal:has(.DocSearch-Input:not(:placeholder-shown))
+ .DocSearch-Commands
+ li:last-child
+ .DocSearch-Label::after {
+ content: "to clear";
}
/* Responsive */
diff --git a/docs/superpowers/plans/2026-04-27-docsearch-crawler-indexing.md b/docs/superpowers/plans/2026-04-27-docsearch-crawler-indexing.md
new file mode 100644
index 000000000..d3449ddd8
--- /dev/null
+++ b/docs/superpowers/plans/2026-04-27-docsearch-crawler-indexing.md
@@ -0,0 +1,273 @@
+# DocSearch Crawler Indexing Implementation Plan
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** Convert PR #1231 from build-time Algolia write API indexing to DocSearch crawler-compatible static HTML while preserving the public DocSearch search UI.
+
+**Architecture:** Algolia owns indexing through the DocSearch crawler. The website build should generate only static HTML and existing static artifacts; it must not upload records or set index settings. Search runtime uses public DocSearch credentials, and crawl quality comes from stable `.DocSearch-content` containers, unique heading anchors, atomic paragraph/list content, docsearch meta tags, and crawler documentation.
+
+**Tech Stack:** ReScript v12, React 19, React Router v7 pre-rendering, MDX, `@docsearch/react` v4, Vitest browser mode with Playwright, Yarn 4.
+
+---
+
+## Context
+
+PR: https://github.com/rescript-lang/rescript-lang.org/pull/1231
+
+DocSearch requirement source: https://docsearch.algolia.com/docs/required-configuration/
+
+DocSearch crawler requirements that matter for this repo:
+
+- Use a static `DocSearch-content` class on the main textual content container.
+- Use heading selectors for `lvl1` through `lvl6`; every matched heading needs a unique `id` or `name`.
+- Searchable body content should be in atomic `` or `
` elements.
+- Optional `docsearch:*` meta tags can apply record attributes such as language and version.
+- Sitemap coverage is recommended so the crawler can find updated pages.
+
+## Recommended Approach
+
+Use the crawler-compliant HTML approach.
+
+Alternative 1, minimal revert, would only delete the write API script and leave the current HTML alone. That avoids code work but leaves crawl quality accidental and keeps known heading-id problems.
+
+Alternative 2, crawler-compliant HTML, removes write credentials and actively shapes the rendered HTML for DocSearch. This is the recommended path because it matches the DocSearch plan constraints and keeps the improved UI independent from indexing.
+
+Alternative 3, keep a local generator for validation only, would retain most of `SearchIndex.res` but stop uploading. That creates two sources of truth for ranking and records, so it should be avoided unless we later need a diagnostics-only script.
+
+## File Map
+
+Remove write API publishing:
+
+- Delete `scripts/generate_search_index.res`.
+- Delete `src/bindings/Algolia.res`.
+- Delete `src/common/SearchIndex.res`.
+- Delete `src/common/SearchIndex.resi`.
+- Delete `__tests__/SearchIndex_.test.res`.
+- Delete SearchIndex visual snapshots under `__tests__/__screenshots__/SearchIndex_.test.jsx/`.
+- Modify `package.json` and `yarn.lock` to remove `algoliasearch` and the `build:search-index` command.
+- Modify `.github/workflows/deploy.yml` to stop exporting private Algolia admin variables.
+- Modify `.gitignore` only if deleted generated script patterns leave a one-off entry unnecessary.
+
+Keep public DocSearch runtime:
+
+- Keep `@docsearch/react`.
+- Keep `src/bindings/DocSearch.res`.
+- Keep `src/components/Search.res`.
+- Keep public env handling in `src/bindings/Env.res`, but remove publisher-only config from `src/common/AlgoliaConfig.res`.
+- Keep `scripts/LogAlgoliaEnvStatus.res` and `src/common/AlgoliaEnvStatus.res` if the public-config warning remains useful.
+
+Make HTML crawler-compatible:
+
+- Modify `src/layouts/SidebarLayout.res` so docs/community/API pages expose `DocSearch-content` on the central ``.
+- Modify `app/routes/BlogArticle.res` so article body content is wrapped in an ``.
+- Modify `app/routes/SyntaxLookup.res` so syntax detail content is crawlable without indexing the whole interactive picker.
+- Modify `src/components/Markdown.res` to preserve H1 ids and remove duplicate ids from anchor-link icons.
+- Modify `src/markdown/Mdx.res` to generate collision-free heading ids.
+- Modify `src/markdown/TocUtils.res` if needed so sidebar links match collision-free rendered heading ids.
+- Modify `app/routes/ApiDocs.res` so programmatic API H1/H2 headings have unique ids that match crawl targets.
+- Modify `src/components/Meta.res` to emit DocSearch language/version meta tags from existing version constants.
+
+Add or adjust tests:
+
+- Add `__tests__/DocSearchCrawlerMarkup_.test.res` or extend existing layout tests.
+- Update `__tests__/AlgoliaConfig_.test.res` to remove publisher-only expectations.
+- Update `__tests__/AlgoliaEnvStatus_.test.res` if public env names change.
+- Update `__tests__/Search_.test.res` for same-origin absolute crawler URLs and empty `siteUrl` behavior.
+- Update or remove generated screenshots only after explicit snapshot approval.
+
+## Implementation Tasks
+
+### Task 1: Add crawler-markup regression coverage
+
+**Files:**
+
+- Modify: `__tests__/DocsLayout_.test.res`
+- Modify: `__tests__/MarkdownComponents_.test.res` or add `__tests__/DocSearchCrawlerMarkup_.test.res`
+- Modify: `__tests__/Search_.test.res`
+
+- [ ] Add a test that renders `` and asserts the central main element has `DocSearch-content`.
+- [ ] Add a test that renders `Markdown.H1` with an id and asserts the `` keeps that id.
+- [ ] Add a test that renders `Markdown.H2` and asserts exactly one element in the document has that heading id.
+- [ ] Add a search URL test for an empty `siteUrl`: `Search.toRelativeSiteUrl("https://rescript-lang.org/docs/manual/introduction", ~siteUrl="")` should return the original URL.
+- [ ] Add a search URL test for a normal same-origin crawler hit: absolute `https://rescript-lang.org/docs/manual/introduction#what-is-rescript` should normalize to `/docs/manual/introduction#what-is-rescript`.
+- [ ] Run `yarn build:res`.
+- [ ] Run `yarn vitest --browser.headless --run __tests__/DocsLayout_.test.jsx __tests__/MarkdownComponents_.test.jsx __tests__/Search_.test.jsx`.
+- [ ] Confirm the new tests fail for the expected reasons before implementation.
+
+### Task 2: Remove Algolia write API publishing
+
+**Files:**
+
+- Delete: `scripts/generate_search_index.res`
+- Delete: `src/bindings/Algolia.res`
+- Delete: `src/common/SearchIndex.res`
+- Delete: `src/common/SearchIndex.resi`
+- Delete: `__tests__/SearchIndex_.test.res`
+- Delete: `__tests__/__screenshots__/SearchIndex_.test.jsx/*`
+- Modify: `package.json`
+- Modify: `yarn.lock`
+- Modify: `.github/workflows/deploy.yml`
+- Modify: `.gitignore`
+- Modify: `src/common/AlgoliaConfig.res`
+- Modify: `__tests__/AlgoliaConfig_.test.res`
+
+- [ ] Remove `build:search-index` from `package.json`.
+- [ ] Restore `build:update-index` to only generate LLM files and the blog feed:
+
+```json
+"build:update-index": "yarn build:generate-llms && node _scripts/generate_feed.mjs > public/blog/feed.xml"
+```
+
+- [ ] Keep `build` and `prepare` pointed at `build:update-index`; they should not invoke any Algolia uploader.
+- [ ] Remove the `algoliasearch` dependency with Yarn so `package.json` and `yarn.lock` stay consistent.
+- [ ] Remove `publisherConfig`, `missingPublisherVars`, and `publisherConfigFrom` from `AlgoliaConfig.res`.
+- [ ] Update `AlgoliaConfig_.test.res` to cover only public DocSearch config.
+- [ ] In `.github/workflows/deploy.yml`, remove `ALGOLIA_ADMIN_API_KEY_DEV`, `ALGOLIA_ADMIN_API_KEY_PROD`, and all `ALGOLIA_*` private exports.
+- [ ] Replace the derived basename flow with direct public variables:
+
+```yaml
+VITE_ALGOLIA_APP_ID: ${{ vars.VITE_ALGOLIA_APP_ID }}
+VITE_ALGOLIA_INDEX_NAME: ${{ vars.VITE_ALGOLIA_INDEX_NAME }}
+VITE_ALGOLIA_SEARCH_API_KEY: ${{ vars.VITE_ALGOLIA_SEARCH_API_KEY }}
+```
+
+- [ ] Remove `.gitignore` entries that only existed for deleted generated Algolia publishing files.
+- [ ] Run `yarn install --immutable` or the repository-approved Yarn flow after dependency removal.
+- [ ] Run `yarn build:res`.
+
+### Task 3: Keep the DocSearch UI, but make URL handling crawler-safe
+
+**Files:**
+
+- Modify: `src/components/Search.res`
+- Modify: `src/bindings/DocSearch.res`
+- Modify: `src/bindings/Env.res`
+- Modify: `__tests__/Search_.test.res`
+
+- [ ] Keep the custom hit component and URL normalization, because crawler hits can be absolute URLs.
+- [ ] Guard `toRelativeSiteUrl` so an empty `siteUrl` never matches every URL.
+- [ ] Treat `Env.root_url` as absent when `VITE_DEPLOYMENT_URL` is `Some("")`, or keep the guard entirely inside `Search.toRelativeSiteUrl`.
+- [ ] Do not move ranking or crawler record settings into the client; DocSearch crawler/dashboard owns index settings.
+- [ ] Keep `searchParameters` only for UI query behavior, such as `hitsPerPage`, snippets, distinct, and optional facet filters.
+- [ ] Run `yarn vitest --browser.headless --run __tests__/Search_.test.jsx`.
+
+### Task 4: Add DocSearch-content containers
+
+**Files:**
+
+- Modify: `src/layouts/SidebarLayout.res`
+- Modify: `app/routes/BlogArticle.res`
+- Modify: `app/routes/SyntaxLookup.res`
+- Modify: `__tests__/DocsLayout_.test.res`
+- Modify: `__tests__/BlogArticle_.test.res` if it already covers body markup
+- Modify: `__tests__/SyntaxLookup_.test.res` if it already covers detail pages
+
+- [ ] Add `DocSearch-content` to the central `` in `SidebarLayout.res`; this covers manual docs, React docs, guidelines, community pages, API overview, and API detail pages.
+- [ ] Wrap blog article body content in an `article` with `DocSearch-content markdown-body`.
+- [ ] For syntax lookup detail routes, put `DocSearch-content` on the detail body, not on the whole search-picker UI.
+- [ ] Keep visual class order stable and avoid changing layout styles.
+- [ ] Run the focused browser tests for touched layouts.
+
+### Task 5: Make heading anchors unique and crawler-readable
+
+**Files:**
+
+- Modify: `src/components/Markdown.res`
+- Modify: `src/markdown/Mdx.res`
+- Modify: `src/markdown/TocUtils.res`
+- Modify: `app/routes/ApiDocs.res`
+- Test: `__tests__/MarkdownComponents_.test.res`
+- Test: `__tests__/DocsLayout_.test.res`
+
+- [ ] Update `Markdown.H1.make` to accept optional `~id` and `~title` props and render the `id` on the `` when MDX provides it.
+- [ ] Update `Markdown.Anchor.make` so the decorative anchor icon does not render a second element with the same `id`.
+- [ ] Add a small heading-id helper in `src/markdown/` if needed so both MDX rendering and table-of-contents generation can use the same collision rules.
+- [ ] Update `Mdx.anchorLinkPlugin` so repeated headings get deterministic suffixes such as `usage`, `usage-1`, `usage-2`.
+- [ ] Update `TocUtils.buildEntries` to produce hrefs matching the rendered heading ids for duplicate headings.
+- [ ] Add ids to programmatic API H1 headings in `ApiDocs.res`; H2 ids already use `type-` and `value-`.
+- [ ] Run the heading and layout tests.
+
+### Task 6: Add DocSearch meta tags
+
+**Files:**
+
+- Modify: `src/components/Meta.res`
+- Modify: `src/common/Constants.res`
+- Test: `__tests__/MetaDescription_.test.res` or add a focused meta test if one exists for head tags
+
+- [ ] Add ``.
+- [ ] Add `Array.join(",")} />` using the current major version from `Constants.versions.latest`; include `latest` when the build serves the latest docs.
+- [ ] Keep the tag generic enough that older-version subdomain builds can provide their own version token through existing version constants.
+- [ ] Do not hardcode stale version text in route components.
+
+### Task 7: Document crawler-owned indexing
+
+**Files:**
+
+- Modify: `README.md` or add `docs/docsearch.md` if the repo maintainers prefer a focused doc.
+
+- [ ] Document that the DocSearch crawler owns indexing and index settings.
+- [ ] Document only public runtime variables:
+
+```txt
+VITE_ALGOLIA_APP_ID
+VITE_ALGOLIA_INDEX_NAME
+VITE_ALGOLIA_SEARCH_API_KEY
+```
+
+- [ ] Explicitly state that no admin/write key is used during builds or deployments.
+- [ ] Include the expected crawler selectors:
+
+```js
+recordProps: {
+ lvl0: {
+ selectors: ".DocSearch-lvl0",
+ defaultValue: "Documentation",
+ },
+ lvl1: [".DocSearch-content h1", "main h1", "h1", "head > title"],
+ lvl2: [".DocSearch-content h2", "main h2", "h2"],
+ lvl3: [".DocSearch-content h3", "main h3", "h3"],
+ lvl4: [".DocSearch-content h4", "main h4", "h4"],
+ lvl5: [".DocSearch-content h5", "main h5", "h5"],
+ lvl6: [".DocSearch-content h6", "main h6", "h6"],
+ content: [".DocSearch-content p, .DocSearch-content li"],
+}
+```
+
+- [ ] Note that production crawler start URLs and sitemap configuration live in the Algolia dashboard, not in the site build.
+
+### Task 8: Consider sitemap generation as a follow-up or include it if scope allows
+
+**Files if included now:**
+
+- Create: `scripts/generate_sitemap.res`
+- Modify: `package.json`
+- Modify: `public/robots.txt`
+- Modify: `react-router.config.mjs` only if route data is needed from there
+
+- [ ] Decide whether sitemap generation belongs in this PR or a follow-up.
+- [ ] If included, generate `public/sitemap.xml` or `out/sitemap.xml` from the same route sources used by React Router prerendering.
+- [ ] Include docs, API detail pages, community pages, syntax lookup detail pages, and blog posts.
+- [ ] Add `Sitemap: https://rescript-lang.org/sitemap.xml` to `public/robots.txt`.
+- [ ] Verify `yarn build` copies the sitemap into `out/`.
+
+## Final Verification
+
+- [ ] Run `yarn build:res`.
+- [ ] Run `yarn vitest --browser.headless --run`.
+- [ ] Run `yarn test`.
+- [ ] Run `yarn build`.
+- [ ] After `yarn build`, inspect representative generated HTML:
+
+```sh
+grep -R "DocSearch-content" out/docs/manual/introduction out/docs/react/introduction out/docs/manual/api/stdlib out/blog | head
+grep -R 'name="docsearch:version"' out/docs/manual/introduction | head
+grep -R 'id="javascript-interop"' out/docs/manual/introduction | head
+```
+
+- [ ] Confirm build logs do not invoke `generate_search_index` and do not require any `ALGOLIA_ADMIN_*` variables.
+- [ ] Do not update screenshots unless the user confirms snapshot updates.
+
+## Open Decision
+
+Sitemap generation is the only scope question. The DocSearch page calls it "nice to have" but also says it is key for crawler freshness. I would include markup and uploader removal in this PR, then add sitemap generation only if we want crawler discovery guarantees in the same change.
diff --git a/packages/shared/src/Icon.res b/packages/shared/src/Icon.res
index daac2bdf4..7830a805d 100644
--- a/packages/shared/src/Icon.res
+++ b/packages/shared/src/Icon.res
@@ -291,3 +291,84 @@ module Clipboard = {
}
+
+module DocPage = {
+ @react.component
+ let make = () =>
+
+
+
+}
+
+module DocHash = {
+ @react.component
+ let make = () =>
+
+
+
+}
+
+module DocTree = {
+ @react.component
+ let make = () =>
+
+}
+
+module DocSelect = {
+ @react.component
+ let make = () =>
+
+
+
+}
diff --git a/packages/shared/src/Icon.resi b/packages/shared/src/Icon.resi
index 4087c13b6..df1f0e24b 100644
--- a/packages/shared/src/Icon.resi
+++ b/packages/shared/src/Icon.resi
@@ -82,3 +82,23 @@ module Clipboard: {
@react.component
let make: (~className: string=?) => React.element
}
+
+module DocPage: {
+ @react.component
+ let make: unit => React.element
+}
+
+module DocHash: {
+ @react.component
+ let make: unit => React.element
+}
+
+module DocTree: {
+ @react.component
+ let make: unit => React.element
+}
+
+module DocSelect: {
+ @react.component
+ let make: unit => React.element
+}
diff --git a/yarn.lock b/yarn.lock
index b77c3ab05..584876d8c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -60,33 +60,44 @@ __metadata:
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.28.6":
- version: 7.29.0
- resolution: "@babel/compat-data@npm:7.29.0"
- checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94
+"@babel/code-frame@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/code-frame@npm:7.27.1"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.27.1"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.1.1"
+ checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.27.2":
+ version: 7.28.5
+ resolution: "@babel/compat-data@npm:7.28.5"
+ checksum: 10c0/702a25de73087b0eba325c1d10979eed7c9b6662677386ba7b5aa6eace0fc0676f78343bae080a0176ae26f58bd5535d73b9d0fbb547fef377692e8b249353a7
languageName: node
linkType: hard
"@babel/core@npm:^7.23.7, @babel/core@npm:^7.27.7":
- version: 7.29.0
- resolution: "@babel/core@npm:7.29.0"
- dependencies:
- "@babel/code-frame": "npm:^7.29.0"
- "@babel/generator": "npm:^7.29.0"
- "@babel/helper-compilation-targets": "npm:^7.28.6"
- "@babel/helper-module-transforms": "npm:^7.28.6"
- "@babel/helpers": "npm:^7.28.6"
- "@babel/parser": "npm:^7.29.0"
- "@babel/template": "npm:^7.28.6"
- "@babel/traverse": "npm:^7.29.0"
- "@babel/types": "npm:^7.29.0"
+ version: 7.28.5
+ resolution: "@babel/core@npm:7.28.5"
+ dependencies:
+ "@babel/code-frame": "npm:^7.27.1"
+ "@babel/generator": "npm:^7.28.5"
+ "@babel/helper-compilation-targets": "npm:^7.27.2"
+ "@babel/helper-module-transforms": "npm:^7.28.3"
+ "@babel/helpers": "npm:^7.28.4"
+ "@babel/parser": "npm:^7.28.5"
+ "@babel/template": "npm:^7.27.2"
+ "@babel/traverse": "npm:^7.28.5"
+ "@babel/types": "npm:^7.28.5"
"@jridgewell/remapping": "npm:^2.3.5"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa
+ checksum: 10c0/535f82238027621da6bdffbdbe896ebad3558b311d6f8abc680637a9859b96edbf929ab010757055381570b29cf66c4a295b5618318d27a4273c0e2033925e72
languageName: node
linkType: hard
@@ -103,6 +114,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.28.5":
+ version: 7.28.5
+ resolution: "@babel/generator@npm:7.28.5"
+ dependencies:
+ "@babel/parser": "npm:^7.28.5"
+ "@babel/types": "npm:^7.28.5"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10c0/9f219fe1d5431b6919f1a5c60db8d5d34fe546c0d8f5a8511b32f847569234ffc8032beb9e7404649a143f54e15224ecb53a3d11b6bb85c3203e573d91fca752
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.27.3":
version: 7.27.3
resolution: "@babel/helper-annotate-as-pure@npm:7.27.3"
@@ -112,33 +136,33 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-compilation-targets@npm:7.28.6"
+"@babel/helper-compilation-targets@npm:^7.27.2":
+ version: 7.27.2
+ resolution: "@babel/helper-compilation-targets@npm:7.27.2"
dependencies:
- "@babel/compat-data": "npm:^7.28.6"
+ "@babel/compat-data": "npm:^7.27.2"
"@babel/helper-validator-option": "npm:^7.27.1"
browserslist: "npm:^4.24.0"
lru-cache: "npm:^5.1.1"
semver: "npm:^6.3.1"
- checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50
+ checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1
languageName: node
linkType: hard
-"@babel/helper-create-class-features-plugin@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-create-class-features-plugin@npm:7.28.6"
+"@babel/helper-create-class-features-plugin@npm:^7.28.5":
+ version: 7.28.5
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.28.5"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.27.3"
"@babel/helper-member-expression-to-functions": "npm:^7.28.5"
"@babel/helper-optimise-call-expression": "npm:^7.27.1"
- "@babel/helper-replace-supers": "npm:^7.28.6"
+ "@babel/helper-replace-supers": "npm:^7.27.1"
"@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1"
- "@babel/traverse": "npm:^7.28.6"
+ "@babel/traverse": "npm:^7.28.5"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/0b62b46717891f4366006b88c9b7f277980d4f578c4c3789b7a4f5a2e09e121de4cda9a414ab403986745cd3ad1af3fe2d948c9f78ab80d4dc085afc9602af50
+ checksum: 10c0/786a6514efcf4514aaad85beed419b9184d059f4c9a9a95108f320142764999827252a851f7071de19f29424d369616573ecbaa347f1ce23fb12fc6827d9ff56
languageName: node
linkType: hard
@@ -149,7 +173,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.28.5":
+"@babel/helper-member-expression-to-functions@npm:^7.27.1, @babel/helper-member-expression-to-functions@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5"
dependencies:
@@ -159,26 +183,26 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-module-imports@npm:7.28.6"
+"@babel/helper-module-imports@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-module-imports@npm:7.27.1"
dependencies:
- "@babel/traverse": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
- checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac
+ "@babel/traverse": "npm:^7.27.1"
+ "@babel/types": "npm:^7.27.1"
+ checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-module-transforms@npm:7.28.6"
+"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3":
+ version: 7.28.3
+ resolution: "@babel/helper-module-transforms@npm:7.28.3"
dependencies:
- "@babel/helper-module-imports": "npm:^7.28.6"
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- "@babel/traverse": "npm:^7.28.6"
+ "@babel/helper-module-imports": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.28.3"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b
+ checksum: 10c0/549be62515a6d50cd4cfefcab1b005c47f89bd9135a22d602ee6a5e3a01f27571868ada10b75b033569f24dc4a2bb8d04bfa05ee75c16da7ade2d0db1437fcdb
languageName: node
linkType: hard
@@ -191,23 +215,23 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.28.6":
+"@babel/helper-plugin-utils@npm:^7.27.1":
version: 7.28.6
resolution: "@babel/helper-plugin-utils@npm:7.28.6"
checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d
languageName: node
linkType: hard
-"@babel/helper-replace-supers@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-replace-supers@npm:7.28.6"
+"@babel/helper-replace-supers@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-replace-supers@npm:7.27.1"
dependencies:
- "@babel/helper-member-expression-to-functions": "npm:^7.28.5"
+ "@babel/helper-member-expression-to-functions": "npm:^7.27.1"
"@babel/helper-optimise-call-expression": "npm:^7.27.1"
- "@babel/traverse": "npm:^7.28.6"
+ "@babel/traverse": "npm:^7.27.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/04663c6389551b99b8c3e7ba4e2638b8ca2a156418c26771516124c53083aa8e74b6a45abe5dd46360af79709a0e9c6b72c076d0eab9efecdd5aaf836e79d8d5
+ checksum: 10c0/4f2eaaf5fcc196580221a7ccd0f8873447b5d52745ad4096418f6101a1d2e712e9f93722c9a32bc9769a1dc197e001f60d6f5438d4dfde4b9c6a9e4df719354c
languageName: node
linkType: hard
@@ -228,7 +252,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.28.5":
+"@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/helper-validator-identifier@npm:7.28.5"
checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847
@@ -242,13 +266,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.28.6":
- version: 7.29.2
- resolution: "@babel/helpers@npm:7.29.2"
+"@babel/helpers@npm:^7.28.4":
+ version: 7.28.4
+ resolution: "@babel/helpers@npm:7.28.4"
dependencies:
- "@babel/template": "npm:^7.28.6"
- "@babel/types": "npm:^7.29.0"
- checksum: 10c0/dab0e65b9318b2502a62c58bc0913572318595eec0482c31f0ad416b72636e6698a1d7c57cd2791d4528eb8c548bca88d338dc4d2a55a108dc1f6702f9bc5512
+ "@babel/template": "npm:^7.27.2"
+ "@babel/types": "npm:^7.28.4"
+ checksum: 10c0/aaa5fb8098926dfed5f223adf2c5e4c7fbba4b911b73dfec2d7d3083f8ba694d201a206db673da2d9b3ae8c01793e795767654558c450c8c14b4c2175b4fcb44
languageName: node
linkType: hard
@@ -263,52 +287,63 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
+ version: 7.28.5
+ resolution: "@babel/parser@npm:7.28.5"
+ dependencies:
+ "@babel/types": "npm:^7.28.5"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/5bbe48bf2c79594ac02b490a41ffde7ef5aa22a9a88ad6bcc78432a6ba8a9d638d531d868bd1f104633f1f6bba9905746e15185b8276a3756c42b765d131b1ef
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-jsx@npm:^7.27.1":
- version: 7.28.6
- resolution: "@babel/plugin-syntax-jsx@npm:7.28.6"
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-jsx@npm:7.27.1"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b98fc3cd75e4ca3d5ca1162f610c286e14ede1486e0d297c13a5eb0ac85680ac9656d17d348bddd9160a54d797a08cea5eaac02b9330ddebb7b26732b7b99fb5
+ checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84
languageName: node
linkType: hard
-"@babel/plugin-syntax-typescript@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/plugin-syntax-typescript@npm:7.28.6"
+"@babel/plugin-syntax-typescript@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-typescript@npm:7.27.1"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b0c392a35624883ac480277401ac7d92d8646b66e33639f5d350de7a6723924265985ae11ab9ebd551740ded261c443eaa9a87ea19def9763ca1e0d78c97dea8
+ checksum: 10c0/11589b4c89c66ef02d57bf56c6246267851ec0c361f58929327dc3e070b0dab644be625bbe7fb4c4df30c3634bfdfe31244e1f517be397d2def1487dbbe3c37d
languageName: node
linkType: hard
"@babel/plugin-transform-modules-commonjs@npm:^7.27.1":
- version: 7.28.6
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.28.6"
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.28.6"
- "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-module-transforms": "npm:^7.27.1"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7c45992797c6150644c8552feff4a016ba7bd6d59ff2b039ed969a9c5b20a6804cd9d21db5045fc8cca8ca7f08262497e354e93f8f2be6a1cdf3fbfa8c31a9b6
+ checksum: 10c0/4def972dcd23375a266ea1189115a4ff61744b2c9366fc1de648b3fab2c650faf1a94092de93a33ff18858d2e6c4dddeeee5384cb42ba0129baeab01a5cdf1e2
languageName: node
linkType: hard
"@babel/plugin-transform-typescript@npm:^7.28.5":
- version: 7.28.6
- resolution: "@babel/plugin-transform-typescript@npm:7.28.6"
+ version: 7.28.5
+ resolution: "@babel/plugin-transform-typescript@npm:7.28.5"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.27.3"
- "@babel/helper-create-class-features-plugin": "npm:^7.28.6"
- "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-create-class-features-plugin": "npm:^7.28.5"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
"@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1"
- "@babel/plugin-syntax-typescript": "npm:^7.28.6"
+ "@babel/plugin-syntax-typescript": "npm:^7.27.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/72dbfd3e5f71c4e30445e610758ec0eef65347fafd72bd46f4903733df0d537663a72a81c1626f213a0feab7afc68ba83f1648ffece888dd0868115c9cb748f6
+ checksum: 10c0/09e574ba5462e56452b4ceecae65e53c8e697a2d3559ce5d210bed10ac28a18aa69377e7550c30520eb29b40c417ee61997d5d58112657f22983244b78915a7c
languageName: node
linkType: hard
@@ -327,6 +362,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.27.2":
+ version: 7.27.2
+ resolution: "@babel/template@npm:7.27.2"
+ dependencies:
+ "@babel/code-frame": "npm:^7.27.1"
+ "@babel/parser": "npm:^7.27.2"
+ "@babel/types": "npm:^7.27.1"
+ checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81
+ languageName: node
+ linkType: hard
+
"@babel/template@npm:^7.28.6":
version: 7.28.6
resolution: "@babel/template@npm:7.28.6"
@@ -338,7 +384,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.7, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0":
+"@babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.7, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.29.0":
version: 7.29.0
resolution: "@babel/traverse@npm:7.29.0"
dependencies:
@@ -353,6 +399,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.28.3":
+ version: 7.28.5
+ resolution: "@babel/traverse@npm:7.28.5"
+ dependencies:
+ "@babel/code-frame": "npm:^7.27.1"
+ "@babel/generator": "npm:^7.28.5"
+ "@babel/helper-globals": "npm:^7.28.0"
+ "@babel/parser": "npm:^7.28.5"
+ "@babel/template": "npm:^7.27.2"
+ "@babel/types": "npm:^7.28.5"
+ debug: "npm:^4.3.1"
+ checksum: 10c0/f6c4a595993ae2b73f2d4cd9c062f2e232174d293edd4abe1d715bd6281da8d99e47c65857e8d0917d9384c65972f4acdebc6749a7c40a8fcc38b3c7fb3e706f
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.23.6, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.7, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0":
version: 7.29.0
resolution: "@babel/types@npm:7.29.0"
@@ -363,6 +424,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.28.4":
+ version: 7.28.5
+ resolution: "@babel/types@npm:7.28.5"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ checksum: 10c0/a5a483d2100befbf125793640dec26b90b95fd233a94c19573325898a5ce1e52cdfa96e495c7dcc31b5eca5b66ce3e6d4a0f5a4a62daec271455959f208ab08a
+ languageName: node
+ linkType: hard
+
"@blazediff/core@npm:1.9.1":
version: 1.9.1
resolution: "@blazediff/core@npm:1.9.1"
@@ -433,14 +504,14 @@ __metadata:
linkType: hard
"@codemirror/autocomplete@npm:^6.0.0":
- version: 6.20.1
- resolution: "@codemirror/autocomplete@npm:6.20.1"
+ version: 6.20.0
+ resolution: "@codemirror/autocomplete@npm:6.20.0"
dependencies:
"@codemirror/language": "npm:^6.0.0"
"@codemirror/state": "npm:^6.0.0"
"@codemirror/view": "npm:^6.17.0"
"@lezer/common": "npm:^1.0.0"
- checksum: 10c0/ec3ecdd8098778c0764827ffcb6252edc763de3500314ad6b36d77bd09f73c03cb9a95b952b2b928354e1c83f2ae1bfef92b406eae40f94b47104b51bd508b35
+ checksum: 10c0/d0d1cf3eca6269811eb66edcf742ffa0a5423d7d115ab82b0d62a24d6cfcfb2a4c3779333b2cb68e3004af46556ac6203049f581d35785c46ffd1b852f6e8076
languageName: node
linkType: hard
@@ -471,7 +542,21 @@ __metadata:
languageName: node
linkType: hard
-"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.12.3, @codemirror/language@npm:^6.6.0":
+"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.6.0":
+ version: 6.11.3
+ resolution: "@codemirror/language@npm:6.11.3"
+ dependencies:
+ "@codemirror/state": "npm:^6.0.0"
+ "@codemirror/view": "npm:^6.23.0"
+ "@lezer/common": "npm:^1.1.0"
+ "@lezer/highlight": "npm:^1.0.0"
+ "@lezer/lr": "npm:^1.0.0"
+ style-mod: "npm:^4.0.0"
+ checksum: 10c0/0cbc2a98bd9e94e8e186af30613741a553fc45479e3875c79bddc32340d4d75ecc36229c66e2ee5fcffbc8fdd49b442e43847799d1d68651e3b4f8ec20d3d092
+ languageName: node
+ linkType: hard
+
+"@codemirror/language@npm:^6.12.3":
version: 6.12.3
resolution: "@codemirror/language@npm:6.12.3"
dependencies:
@@ -695,7 +780,7 @@ __metadata:
languageName: node
linkType: hard
-"@emnapi/wasi-threads@npm:1.2.1, @emnapi/wasi-threads@npm:^1.1.0":
+"@emnapi/wasi-threads@npm:1.2.1":
version: 1.2.1
resolution: "@emnapi/wasi-threads@npm:1.2.1"
dependencies:
@@ -704,6 +789,22 @@ __metadata:
languageName: node
linkType: hard
+"@emnapi/wasi-threads@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@emnapi/wasi-threads@npm:1.1.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1
+ languageName: node
+ linkType: hard
+
+"@esbuild/aix-ppc64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/aix-ppc64@npm:0.25.12"
+ conditions: os=aix & cpu=ppc64
+ languageName: node
+ linkType: hard
+
"@esbuild/aix-ppc64@npm:0.27.3":
version: 0.27.3
resolution: "@esbuild/aix-ppc64@npm:0.27.3"
@@ -711,10 +812,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/aix-ppc64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/aix-ppc64@npm:0.27.7"
- conditions: os=aix & cpu=ppc64
+"@esbuild/android-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/android-arm64@npm:0.25.12"
+ conditions: os=android & cpu=arm64
languageName: node
linkType: hard
@@ -725,10 +826,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/android-arm64@npm:0.27.7"
- conditions: os=android & cpu=arm64
+"@esbuild/android-arm@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/android-arm@npm:0.25.12"
+ conditions: os=android & cpu=arm
languageName: node
linkType: hard
@@ -739,10 +840,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/android-arm@npm:0.27.7"
- conditions: os=android & cpu=arm
+"@esbuild/android-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/android-x64@npm:0.25.12"
+ conditions: os=android & cpu=x64
languageName: node
linkType: hard
@@ -753,10 +854,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/android-x64@npm:0.27.7"
- conditions: os=android & cpu=x64
+"@esbuild/darwin-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/darwin-arm64@npm:0.25.12"
+ conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -767,10 +868,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/darwin-arm64@npm:0.27.7"
- conditions: os=darwin & cpu=arm64
+"@esbuild/darwin-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/darwin-x64@npm:0.25.12"
+ conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -781,10 +882,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/darwin-x64@npm:0.27.7"
- conditions: os=darwin & cpu=x64
+"@esbuild/freebsd-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/freebsd-arm64@npm:0.25.12"
+ conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
@@ -795,10 +896,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/freebsd-arm64@npm:0.27.7"
- conditions: os=freebsd & cpu=arm64
+"@esbuild/freebsd-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/freebsd-x64@npm:0.25.12"
+ conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
@@ -809,10 +910,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/freebsd-x64@npm:0.27.7"
- conditions: os=freebsd & cpu=x64
+"@esbuild/linux-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-arm64@npm:0.25.12"
+ conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
@@ -823,10 +924,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-arm64@npm:0.27.7"
- conditions: os=linux & cpu=arm64
+"@esbuild/linux-arm@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-arm@npm:0.25.12"
+ conditions: os=linux & cpu=arm
languageName: node
linkType: hard
@@ -837,10 +938,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-arm@npm:0.27.7"
- conditions: os=linux & cpu=arm
+"@esbuild/linux-ia32@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-ia32@npm:0.25.12"
+ conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
@@ -851,10 +952,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-ia32@npm:0.27.7"
- conditions: os=linux & cpu=ia32
+"@esbuild/linux-loong64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-loong64@npm:0.25.12"
+ conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
@@ -865,10 +966,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-loong64@npm:0.27.7"
- conditions: os=linux & cpu=loong64
+"@esbuild/linux-mips64el@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-mips64el@npm:0.25.12"
+ conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
@@ -879,10 +980,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-mips64el@npm:0.27.7"
- conditions: os=linux & cpu=mips64el
+"@esbuild/linux-ppc64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-ppc64@npm:0.25.12"
+ conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
@@ -893,10 +994,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-ppc64@npm:0.27.7"
- conditions: os=linux & cpu=ppc64
+"@esbuild/linux-riscv64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-riscv64@npm:0.25.12"
+ conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
@@ -907,10 +1008,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-riscv64@npm:0.27.7"
- conditions: os=linux & cpu=riscv64
+"@esbuild/linux-s390x@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-s390x@npm:0.25.12"
+ conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
@@ -921,10 +1022,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-s390x@npm:0.27.7"
- conditions: os=linux & cpu=s390x
+"@esbuild/linux-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/linux-x64@npm:0.25.12"
+ conditions: os=linux & cpu=x64
languageName: node
linkType: hard
@@ -935,10 +1036,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/linux-x64@npm:0.27.7"
- conditions: os=linux & cpu=x64
+"@esbuild/netbsd-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/netbsd-arm64@npm:0.25.12"
+ conditions: os=netbsd & cpu=arm64
languageName: node
linkType: hard
@@ -949,10 +1050,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/netbsd-arm64@npm:0.27.7"
- conditions: os=netbsd & cpu=arm64
+"@esbuild/netbsd-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/netbsd-x64@npm:0.25.12"
+ conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
@@ -963,10 +1064,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/netbsd-x64@npm:0.27.7"
- conditions: os=netbsd & cpu=x64
+"@esbuild/openbsd-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/openbsd-arm64@npm:0.25.12"
+ conditions: os=openbsd & cpu=arm64
languageName: node
linkType: hard
@@ -977,10 +1078,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/openbsd-arm64@npm:0.27.7"
- conditions: os=openbsd & cpu=arm64
+"@esbuild/openbsd-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/openbsd-x64@npm:0.25.12"
+ conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
@@ -991,10 +1092,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/openbsd-x64@npm:0.27.7"
- conditions: os=openbsd & cpu=x64
+"@esbuild/openharmony-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/openharmony-arm64@npm:0.25.12"
+ conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard
@@ -1005,10 +1106,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openharmony-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/openharmony-arm64@npm:0.27.7"
- conditions: os=openharmony & cpu=arm64
+"@esbuild/sunos-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/sunos-x64@npm:0.25.12"
+ conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
@@ -1019,10 +1120,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/sunos-x64@npm:0.27.7"
- conditions: os=sunos & cpu=x64
+"@esbuild/win32-arm64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/win32-arm64@npm:0.25.12"
+ conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -1033,10 +1134,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/win32-arm64@npm:0.27.7"
- conditions: os=win32 & cpu=arm64
+"@esbuild/win32-ia32@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/win32-ia32@npm:0.25.12"
+ conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -1047,10 +1148,10 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/win32-ia32@npm:0.27.7"
- conditions: os=win32 & cpu=ia32
+"@esbuild/win32-x64@npm:0.25.12":
+ version: 0.25.12
+ resolution: "@esbuild/win32-x64@npm:0.25.12"
+ conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -1061,13 +1162,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.27.7":
- version: 0.27.7
- resolution: "@esbuild/win32-x64@npm:0.27.7"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
"@fastify/accept-negotiator@npm:^2.0.0":
version: 2.0.1
resolution: "@fastify/accept-negotiator@npm:2.0.1"
@@ -1192,34 +1286,34 @@ __metadata:
languageName: node
linkType: hard
-"@floating-ui/core@npm:^1.7.5":
- version: 1.7.5
- resolution: "@floating-ui/core@npm:1.7.5"
+"@floating-ui/core@npm:^1.7.3":
+ version: 1.7.3
+ resolution: "@floating-ui/core@npm:1.7.3"
dependencies:
- "@floating-ui/utils": "npm:^0.2.11"
- checksum: 10c0/f9c52205e198b231d63a387b09c659aab08c46a1899e0b0bbe147b8b4f048b546f15ba17cb5d2a471da9534f1883d979425e13e5c4ceee67be63e4b0abd4db5d
+ "@floating-ui/utils": "npm:^0.2.10"
+ checksum: 10c0/edfc23800122d81df0df0fb780b7328ae6c5f00efbb55bd48ea340f4af8c5b3b121ceb4bb81220966ab0f87b443204d37105abdd93d94846468be3243984144c
languageName: node
linkType: hard
-"@floating-ui/dom@npm:^1.7.6":
- version: 1.7.6
- resolution: "@floating-ui/dom@npm:1.7.6"
+"@floating-ui/dom@npm:^1.7.4":
+ version: 1.7.4
+ resolution: "@floating-ui/dom@npm:1.7.4"
dependencies:
- "@floating-ui/core": "npm:^1.7.5"
- "@floating-ui/utils": "npm:^0.2.11"
- checksum: 10c0/5c098e0d7b58c9bc769f276cca1766994c2c9c70c92d091a61bba8b3e9be53c011e0a79a8457fc2fb2f3d91697a26eb52e0a4962ef936dc963b45f58613c212f
+ "@floating-ui/core": "npm:^1.7.3"
+ "@floating-ui/utils": "npm:^0.2.10"
+ checksum: 10c0/da6166c25f9b0729caa9f498685a73a0e28251613b35d27db8de8014bc9d045158a23c092b405321a3d67c2064909b6e2a7e6c1c9cc0f62967dca5779f5aef30
languageName: node
linkType: hard
"@floating-ui/react-dom@npm:^2.1.2":
- version: 2.1.8
- resolution: "@floating-ui/react-dom@npm:2.1.8"
+ version: 2.1.6
+ resolution: "@floating-ui/react-dom@npm:2.1.6"
dependencies:
- "@floating-ui/dom": "npm:^1.7.6"
+ "@floating-ui/dom": "npm:^1.7.4"
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
- checksum: 10c0/26260ca4bb23b57c73b824062505abf977a008ce6e0463bdacca74f7e49853c4cd1d2bbf1a77c6caa17fa37dfffda2c6c4cd07a8737ebd7474aaff7818401d75
+ checksum: 10c0/6654834a8e73ecbdbc6cad2ad8f7abc698ac7c1800ded4d61113525c591c03d2e3b59d3cf9205859221465ea38c87af4f9e6e204703c5b7a7e85332d1eef2e18
languageName: node
linkType: hard
@@ -1237,17 +1331,17 @@ __metadata:
languageName: node
linkType: hard
-"@floating-ui/utils@npm:^0.2.11, @floating-ui/utils@npm:^0.2.8":
- version: 0.2.11
- resolution: "@floating-ui/utils@npm:0.2.11"
- checksum: 10c0/f4bcea1559bdbb721ecc8e8ead423ac58d6a5b6e70b602cf0810ba6ad4ed1c77211b207faa88b278a9042f0c743133de08a203ed6741c1b6443423332884d5b3
+"@floating-ui/utils@npm:^0.2.10":
+ version: 0.2.10
+ resolution: "@floating-ui/utils@npm:0.2.10"
+ checksum: 10c0/e9bc2a1730ede1ee25843937e911ab6e846a733a4488623cd353f94721b05ec2c9ec6437613a2ac9379a94c2fd40c797a2ba6fa1df2716f5ce4aa6ddb1cf9ea4
languageName: node
linkType: hard
-"@gar/promise-retry@npm:^1.0.0":
- version: 1.0.3
- resolution: "@gar/promise-retry@npm:1.0.3"
- checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332
+"@floating-ui/utils@npm:^0.2.8":
+ version: 0.2.11
+ resolution: "@floating-ui/utils@npm:0.2.11"
+ checksum: 10c0/f4bcea1559bdbb721ecc8e8ead423ac58d6a5b6e70b602cf0810ba6ad4ed1c77211b207faa88b278a9042f0c743133de08a203ed6741c1b6443423332884d5b3
languageName: node
linkType: hard
@@ -1268,9 +1362,9 @@ __metadata:
linkType: hard
"@img/colour@npm:^1.0.0":
- version: 1.1.0
- resolution: "@img/colour@npm:1.1.0"
- checksum: 10c0/2ebea2c0bbaee73b99badcefa04e1e71d83f36e5369337d3121dca841f4569533c4e2faddda6d62dd247f0d5cca143711f9446c59bcce81e427ba433a7a94a17
+ version: 1.0.0
+ resolution: "@img/colour@npm:1.0.0"
+ checksum: 10c0/02261719c1e0d7aa5a2d585981954f2ac126f0c432400aa1a01b925aa2c41417b7695da8544ee04fd29eba7ecea8eaf9b8bef06f19dc8faba78f94eeac40667d
languageName: node
linkType: hard
@@ -1494,6 +1588,22 @@ __metadata:
languageName: node
linkType: hard
+"@isaacs/balanced-match@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "@isaacs/balanced-match@npm:4.0.1"
+ checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420
+ languageName: node
+ linkType: hard
+
+"@isaacs/brace-expansion@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "@isaacs/brace-expansion@npm:5.0.1"
+ dependencies:
+ "@isaacs/balanced-match": "npm:^4.0.1"
+ checksum: 10c0/e5d67c7bbf1f17b88132a35bc638af306d48acbb72810d48fa6e6edd8ab375854773108e8bf70f021f7ef6a8273455a6d1f0c3b5aa2aff06ce7894049ab77fb8
+ languageName: node
+ linkType: hard
+
"@isaacs/cliui@npm:^8.0.2":
version: 8.0.2
resolution: "@isaacs/cliui@npm:8.0.2"
@@ -1599,11 +1709,11 @@ __metadata:
linkType: hard
"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.3.0, @lezer/lr@npm:^1.4.2":
- version: 1.4.8
- resolution: "@lezer/lr@npm:1.4.8"
+ version: 1.4.3
+ resolution: "@lezer/lr@npm:1.4.3"
dependencies:
"@lezer/common": "npm:^1.0.0"
- checksum: 10c0/8bd2228a316a5ef8da01908e3e22aca95fa9695211ffe56f3e8be756b37d0810d5aa91fbbdd274b198a343051d8637e130e26f51161161f089244af242b653c9
+ checksum: 10c0/3c9fd7eefb0641addfdd0955b4c4014bb8702285c52890b58c937d766320ba2fec8c6b374b46f514079a093c9dd21b6632746a01fed16c250c90d649e5dd12c1
languageName: node
linkType: hard
@@ -1673,40 +1783,40 @@ __metadata:
languageName: node
linkType: hard
-"@node-cli/logger@npm:1.3.7":
- version: 1.3.7
- resolution: "@node-cli/logger@npm:1.3.7"
+"@node-cli/logger@npm:1.3.6":
+ version: 1.3.6
+ resolution: "@node-cli/logger@npm:1.3.6"
dependencies:
boxen: "npm:8.0.1"
kleur: "npm:4.1.5"
ora: "npm:9.3.0"
- checksum: 10c0/54713e785cfc74c277719bf761b4064fa676ac6341724f6b180f96ba5e76d569d3de93e6f49fed7c290bc449642e9d894f92e817fc08d7670d791f5233c90d27
+ checksum: 10c0/cf1249a56d1be97078b0b518d66fc3342e4a89bbf6c7a97f2a933f74e4227fb78eb1a2968318ddfd68160f70e1526f6afd8135f1ad394289b100476d729417c6
languageName: node
linkType: hard
-"@node-cli/parser@npm:2.4.8":
- version: 2.4.8
- resolution: "@node-cli/parser@npm:2.4.8"
+"@node-cli/parser@npm:2.4.7":
+ version: 2.4.7
+ resolution: "@node-cli/parser@npm:2.4.7"
dependencies:
- "@node-cli/logger": "npm:1.3.7"
- "@node-cli/utilities": "npm:1.0.8"
+ "@node-cli/logger": "npm:1.3.6"
+ "@node-cli/utilities": "npm:1.0.7"
cli-table3: "npm:0.6.5"
kleur: "npm:4.1.5"
meow: "npm:14.1.0"
- checksum: 10c0/eb843ac292fa4d3407bb30526f497f2cc05bd00ab87ee89f98d0c0eb2db987670bf9f59b368b9fba73d06b5931cb0417b464fa45ef09ce5567a1a3336c232153
+ checksum: 10c0/25c3b16c5c33e23451bef60f41e5375fdef66dcb18cc200beb0b5f3f9b66f666c2d294aa2c1726879d1f23ec1c47030e10a1113cd66dd4bf3b476bdeee20cdd3
languageName: node
linkType: hard
"@node-cli/static-server@npm:^3.1.10":
- version: 3.1.11
- resolution: "@node-cli/static-server@npm:3.1.11"
+ version: 3.1.10
+ resolution: "@node-cli/static-server@npm:3.1.10"
dependencies:
"@fastify/caching": "npm:9.0.3"
"@fastify/compress": "npm:8.3.1"
"@fastify/cors": "npm:11.2.0"
"@fastify/static": "npm:9.0.0"
- "@node-cli/logger": "npm:1.3.7"
- "@node-cli/parser": "npm:2.4.8"
+ "@node-cli/logger": "npm:1.3.6"
+ "@node-cli/parser": "npm:2.4.7"
fastify: "npm:5.8.4"
fastify-plugin: "npm:5.1.0"
fs-extra: "npm:11.3.4"
@@ -1716,16 +1826,16 @@ __metadata:
portfinder: "npm:1.0.38"
bin:
static-server: dist/server.js
- checksum: 10c0/9905bd99dd94a725ecd54d3943540e7ba014cc0ecebcf7fbe792ebe56a8bec1108f0b4404b6eac0ce2aab602095f23c7c70402b3260b2ff3f7a6b02982b24874
+ checksum: 10c0/e12a839df99bfba1559828fb672694b79c41d6c471fb45e764e96e8344e8c647c3114087b67e81d104fbe5d3c2ab734ee3e36a9c2f1486965ecbc33d473abbc1
languageName: node
linkType: hard
-"@node-cli/utilities@npm:1.0.8":
- version: 1.0.8
- resolution: "@node-cli/utilities@npm:1.0.8"
+"@node-cli/utilities@npm:1.0.7":
+ version: 1.0.7
+ resolution: "@node-cli/utilities@npm:1.0.7"
dependencies:
- lodash-es: "npm:4.18.1"
- checksum: 10c0/48e3f6776db8839fa5778980304db01ec8ffe077c76126c89cec4113d32705a68c237f3dea227003133759f47f1b0cd458f88fd5e9f548d0adb4b23e6bd0d62c
+ lodash-es: "npm:4.17.23"
+ checksum: 10c0/547380450fc36614a260a30790dc91e5531b1d3bd72eaef7dfcdb0dd0b991b476c151fa4cafeeee8dc17e311e5847ebc4ec059922601858e8ad99d96210d40ad
languageName: node
linkType: hard
@@ -1854,13 +1964,6 @@ __metadata:
languageName: node
linkType: hard
-"@npmcli/redact@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/redact@npm:4.0.0"
- checksum: 10c0/a1e9ba9c70a6b40e175bda2c3dd8cfdaf096e6b7f7a132c855c083c8dfe545c3237cd56702e2e6627a580b1d63373599d49a1192c4078a85bf47bbde824df31c
- languageName: node
- linkType: hard
-
"@oxc-project/types@npm:=0.122.0":
version: 0.122.0
resolution: "@oxc-project/types@npm:0.122.0"
@@ -2023,11 +2126,11 @@ __metadata:
linkType: hard
"@poppinss/colors@npm:^4.1.5":
- version: 4.1.6
- resolution: "@poppinss/colors@npm:4.1.6"
+ version: 4.1.5
+ resolution: "@poppinss/colors@npm:4.1.5"
dependencies:
kleur: "npm:^4.1.5"
- checksum: 10c0/5c2cec5393e33294465873002f4c570adf36b5405b9f06551485162a6fb422d01de90ac20cb00800be6ab2f0d93da26e67302e95691dff2e0aa339cf93e5bf7f
+ checksum: 10c0/e9d5c9e9a8c1eb7cd37e9b431bda7b7573476be7395123b26815d758f38ca93db0ba62bb2831281f4f04a6e1620b4d4f9377268d32c61c2c9f6599a02c2112b7
languageName: node
linkType: hard
@@ -2043,29 +2146,29 @@ __metadata:
linkType: hard
"@poppinss/exception@npm:^1.2.2":
- version: 1.2.3
- resolution: "@poppinss/exception@npm:1.2.3"
- checksum: 10c0/44e48400c9f2d33a4904bee99321b89239774bb9210049f1c55864725fd524ff55bc78a5a94a13d5edea93b84e13023c229c88ebba8c2dc717fb4b2205e42ac7
+ version: 1.2.2
+ resolution: "@poppinss/exception@npm:1.2.2"
+ checksum: 10c0/b14d1e3d532230f58238231fce6ba3bf51dab50d4ec015f3192f04320be1d692eadd831a8d437e2fc345787c96350104149fd9920264362bca143d04ec03bc4e
languageName: node
linkType: hard
"@react-aria/focus@npm:^3.20.2":
- version: 3.21.5
- resolution: "@react-aria/focus@npm:3.21.5"
+ version: 3.21.2
+ resolution: "@react-aria/focus@npm:3.21.2"
dependencies:
- "@react-aria/interactions": "npm:^3.27.1"
- "@react-aria/utils": "npm:^3.33.1"
- "@react-types/shared": "npm:^3.33.1"
+ "@react-aria/interactions": "npm:^3.25.6"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-types/shared": "npm:^3.32.1"
"@swc/helpers": "npm:^0.5.0"
clsx: "npm:^2.0.0"
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
- checksum: 10c0/f14f3d2d14b11d1e70028c4040cae46f132a24594e9217d7041d63ebff4cf8bc5d7f07b029c97481f267a440cfd6e1521181484b665f2a410b76ee77ceb641bf
+ checksum: 10c0/bfcdbb8d47bf038c035b025df6b9c292eeea9a2af7c77ec2ac27c302cb64dc481cfe80bb6575b399301ad1516feba134dec01e3c112ca2cf912ca13b47965917
languageName: node
linkType: hard
-"@react-aria/interactions@npm:^3.25.0, @react-aria/interactions@npm:^3.27.1":
+"@react-aria/interactions@npm:^3.25.0":
version: 3.27.1
resolution: "@react-aria/interactions@npm:3.27.1"
dependencies:
@@ -2081,6 +2184,22 @@ __metadata:
languageName: node
linkType: hard
+"@react-aria/interactions@npm:^3.25.6":
+ version: 3.25.6
+ resolution: "@react-aria/interactions@npm:3.25.6"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-aria/utils": "npm:^3.31.0"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10c0/000300ee3cfab724228c89f7261e94e1357f91f746256c352466a014ab6e1e907a3e6c6a2c0e73a6dd7efc97c1a608c96462de5b41a3eebda22cbc97550a797d
+ languageName: node
+ linkType: hard
+
"@react-aria/ssr@npm:^3.9.10":
version: 3.9.10
resolution: "@react-aria/ssr@npm:3.9.10"
@@ -2092,6 +2211,23 @@ __metadata:
languageName: node
linkType: hard
+"@react-aria/utils@npm:^3.31.0":
+ version: 3.31.0
+ resolution: "@react-aria/utils@npm:3.31.0"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.10"
+ "@react-stately/flags": "npm:^3.1.2"
+ "@react-stately/utils": "npm:^3.10.8"
+ "@react-types/shared": "npm:^3.32.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10c0/a6b5c6b85a51fa9ca204f045f70d36a55e16b56b85141d556eaacb7b74c4c0915189f6d2baea06df59bdd2926dcca08c2313c98478dbb50ed8e59f9b6754735c
+ languageName: node
+ linkType: hard
+
"@react-aria/utils@npm:^3.33.1":
version: 3.33.1
resolution: "@react-aria/utils@npm:3.33.1"
@@ -2190,6 +2326,17 @@ __metadata:
languageName: node
linkType: hard
+"@react-stately/utils@npm:^3.10.8":
+ version: 3.10.8
+ resolution: "@react-stately/utils@npm:3.10.8"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10c0/a97cc292986e3eeb2ceb1626671ce60e8342a3ff35ab92bcfcb94bd6b28729836cc592e3fe4df2fba603e5fdd26291be77b7f60441920298c282bb93f424feba
+ languageName: node
+ linkType: hard
+
"@react-stately/utils@npm:^3.11.0":
version: 3.11.0
resolution: "@react-stately/utils@npm:3.11.0"
@@ -2201,6 +2348,15 @@ __metadata:
languageName: node
linkType: hard
+"@react-types/shared@npm:^3.32.1":
+ version: 3.32.1
+ resolution: "@react-types/shared@npm:3.32.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ checksum: 10c0/0a67a34e791c598c5819beb9aa5c11e67db06c9fccc9c5304453147b877fdfc7e73d520e92fcdde8b743e2f155b4cb6a50a15792001a776151191af73d60e24c
+ languageName: node
+ linkType: hard
+
"@react-types/shared@npm:^3.33.1":
version: 3.33.1
resolution: "@react-types/shared@npm:3.33.1"
@@ -2518,192 +2674,171 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/rollup-android-arm-eabi@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-android-arm-eabi@npm:4.60.1"
+"@rollup/rollup-android-arm-eabi@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.3"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"@rollup/rollup-android-arm64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-android-arm64@npm:4.60.1"
+"@rollup/rollup-android-arm64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-android-arm64@npm:4.53.3"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-arm64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-darwin-arm64@npm:4.60.1"
+"@rollup/rollup-darwin-arm64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.53.3"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-x64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-darwin-x64@npm:4.60.1"
+"@rollup/rollup-darwin-x64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-darwin-x64@npm:4.53.3"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@rollup/rollup-freebsd-arm64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.1"
+"@rollup/rollup-freebsd-arm64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.3"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-freebsd-x64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-freebsd-x64@npm:4.60.1"
+"@rollup/rollup-freebsd-x64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-freebsd-x64@npm:4.53.3"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.1"
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3"
conditions: os=linux & cpu=arm & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm-musleabihf@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.1"
+"@rollup/rollup-linux-arm-musleabihf@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.3"
conditions: os=linux & cpu=arm & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.1"
+"@rollup/rollup-linux-arm64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.3"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-musl@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.1"
+"@rollup/rollup-linux-arm64-musl@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.3"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-loong64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.1"
+"@rollup/rollup-linux-loong64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.3"
conditions: os=linux & cpu=loong64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-loong64-musl@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.1"
- conditions: os=linux & cpu=loong64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-ppc64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.1"
+"@rollup/rollup-linux-ppc64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.3"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-ppc64-musl@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.1"
- conditions: os=linux & cpu=ppc64 & libc=musl
- languageName: node
- linkType: hard
-
-"@rollup/rollup-linux-riscv64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.1"
+"@rollup/rollup-linux-riscv64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.3"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-riscv64-musl@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.1"
+"@rollup/rollup-linux-riscv64-musl@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.3"
conditions: os=linux & cpu=riscv64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-s390x-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.1"
+"@rollup/rollup-linux-s390x-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.3"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.1"
+"@rollup/rollup-linux-x64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.3"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-musl@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.1"
+"@rollup/rollup-linux-x64-musl@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.3"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-openbsd-x64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-openbsd-x64@npm:4.60.1"
- conditions: os=openbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@rollup/rollup-openharmony-arm64@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.1"
+"@rollup/rollup-openharmony-arm64@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.3"
conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-win32-arm64-msvc@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.1"
+"@rollup/rollup-win32-arm64-msvc@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.3"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-win32-ia32-msvc@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.1"
+"@rollup/rollup-win32-ia32-msvc@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.3"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@rollup/rollup-win32-x64-gnu@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.1"
+"@rollup/rollup-win32-x64-gnu@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.3"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@rollup/rollup-win32-x64-msvc@npm:4.60.1":
- version: 4.60.1
- resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.1"
+"@rollup/rollup-win32-x64-msvc@npm:4.53.3":
+ version: 4.53.3
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.3"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@sindresorhus/is@npm:^7.0.2":
- version: 7.2.0
- resolution: "@sindresorhus/is@npm:7.2.0"
- checksum: 10c0/0040c17d7826414363f99f5d56077c200789d51e6dfe5542920bfb29ab3828ec0ebf2845e8bae796bee461debb646b5e4c0a623140131cf3143471e915b50b54
+ version: 7.1.1
+ resolution: "@sindresorhus/is@npm:7.1.1"
+ checksum: 10c0/96f021b8c5680e0687ceba5619c2e56fe6b089b190b3149280a1e418e6315c66839e3f1519cf1c89f7a888b5a0017a0ef1db17436d783ee398b7d5a515caa3ef
languageName: node
linkType: hard
"@speed-highlight/core@npm:^1.2.7":
- version: 1.2.15
- resolution: "@speed-highlight/core@npm:1.2.15"
- checksum: 10c0/1e069429a46aa1d1c15afde27ee94f78073c948357abccb17ddab71fe7cad0eb2fc761d553a918d30a13723e5c30a0374304844297e9bd37dd01953466cb93bb
+ version: 1.2.12
+ resolution: "@speed-highlight/core@npm:1.2.12"
+ checksum: 10c0/37613c7a031af3b239282cc09211cefc1c9e164df07110520d2116ae7b4741512c1905bf1e011706ee2e652cef24df834f2068c4c4fff71e0257ec22fa655ff2
languageName: node
linkType: hard
@@ -2715,11 +2850,11 @@ __metadata:
linkType: hard
"@swc/helpers@npm:^0.5.0":
- version: 0.5.21
- resolution: "@swc/helpers@npm:0.5.21"
+ version: 0.5.17
+ resolution: "@swc/helpers@npm:0.5.17"
dependencies:
tslib: "npm:^2.8.0"
- checksum: 10c0/692018ec8a9f7ea5ea3fe576fea5af1a782c8bc1752fcb60f949b482fb2521609d1d3710908aebae67086f152e57d231d59b08f4653fd20a2e3e0fa4a34e6322
+ checksum: 10c0/fe1f33ebb968558c5a0c595e54f2e479e4609bff844f9ca9a2d1ffd8dd8504c26f862a11b031f48f75c95b0381c2966c3dd156e25942f90089badd24341e7dbb
languageName: node
linkType: hard
@@ -2888,21 +3023,21 @@ __metadata:
linkType: hard
"@tanstack/react-virtual@npm:^3.13.9":
- version: 3.13.23
- resolution: "@tanstack/react-virtual@npm:3.13.23"
+ version: 3.13.12
+ resolution: "@tanstack/react-virtual@npm:3.13.12"
dependencies:
- "@tanstack/virtual-core": "npm:3.13.23"
+ "@tanstack/virtual-core": "npm:3.13.12"
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- checksum: 10c0/a3e33463eb471067f9539858655bbefb99778f930156165afb0218fe5ffa181bc2e3dacfe3b6f655f1716d9994064f58ef009370975f801b4c83826aa33a5791
+ checksum: 10c0/0eda3d5691ec3bf93a1cdaa955f4972c7aa9a5026179622824bb52ff8c47e59ee4634208e52d77f43ffb3ce435ee39a0899d6a81f6316918ce89d68122490371
languageName: node
linkType: hard
-"@tanstack/virtual-core@npm:3.13.23":
- version: 3.13.23
- resolution: "@tanstack/virtual-core@npm:3.13.23"
- checksum: 10c0/3487089ea4e1dcbb01836f51a1b35b709f9ba03312fe600ddb97c893c16be213e1690af735717b1d6b2e22dfec691c338bc96b5965228c195840249699d5273a
+"@tanstack/virtual-core@npm:3.13.12":
+ version: 3.13.12
+ resolution: "@tanstack/virtual-core@npm:3.13.12"
+ checksum: 10c0/483f38761b73db05c181c10181f0781c1051be3350ae5c378e65057e5f1fdd6606e06e17dbaad8a5e36c04b208ea1a1344cacd4eca0dcde60f335cf398e4d698
languageName: node
linkType: hard
@@ -2946,11 +3081,11 @@ __metadata:
linkType: hard
"@types/debug@npm:^4.0.0":
- version: 4.1.13
- resolution: "@types/debug@npm:4.1.13"
+ version: 4.1.12
+ resolution: "@types/debug@npm:4.1.12"
dependencies:
"@types/ms": "npm:*"
- checksum: 10c0/e5e124021bbdb23a82727eee0a726ae0fc8a3ae1f57253cbcc47497f259afb357de7f6941375e773e1abbfa1604c1555b901a409d762ec2bb4c1612131d4afb7
+ checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f
languageName: node
linkType: hard
@@ -3024,20 +3159,20 @@ __metadata:
linkType: hard
"@types/node@npm:*":
- version: 25.5.2
- resolution: "@types/node@npm:25.5.2"
+ version: 24.10.1
+ resolution: "@types/node@npm:24.10.1"
dependencies:
- undici-types: "npm:~7.18.0"
- checksum: 10c0/11e41a85401724cd1a4de6fb7bd4264ec46db10c09fc8cf8d41de4ede0a7063db458348f859ead4ec0929906aa26aaf45a5fef3aa59742ca0521cda9cee52377
+ undici-types: "npm:~7.16.0"
+ checksum: 10c0/d6bca7a78f550fbb376f236f92b405d676003a8a09a1b411f55920ef34286ee3ee51f566203920e835478784df52662b5b2af89159d9d319352e9ea21801c002
languageName: node
linkType: hard
"@types/node@npm:^22.0.0":
- version: 22.19.17
- resolution: "@types/node@npm:22.19.17"
+ version: 22.19.1
+ resolution: "@types/node@npm:22.19.1"
dependencies:
undici-types: "npm:~6.21.0"
- checksum: 10c0/b66c484c0a9f6d88b1ef360b0f487717234ee1a482cb2551ff73d9f3c43a42a777daf4c8a5eee970960728f8fe1f3877d3d8c6ffabcbca74cb401a59db700fa4
+ checksum: 10c0/6edd93aea86da740cb7872626839cd6f4a67a049d3a3a6639cb592c620ec591408a30989ab7410008d1a0b2d4985ce50f1e488e79c033e4476d3bec6833b0a2f
languageName: node
linkType: hard
@@ -3298,7 +3433,7 @@ __metadata:
languageName: node
linkType: hard
-"accepts@npm:~1.3.8":
+"accepts@npm:~1.3.4, accepts@npm:~1.3.8":
version: 1.3.8
resolution: "accepts@npm:1.3.8"
dependencies:
@@ -3318,11 +3453,11 @@ __metadata:
linkType: hard
"acorn@npm:^8.0.0":
- version: 8.16.0
- resolution: "acorn@npm:8.16.0"
+ version: 8.15.0
+ resolution: "acorn@npm:8.15.0"
bin:
acorn: bin/acorn
- checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e
+ checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec
languageName: node
linkType: hard
@@ -3358,14 +3493,14 @@ __metadata:
linkType: hard
"ajv@npm:^8.0.0, ajv@npm:^8.12.0":
- version: 8.18.0
- resolution: "ajv@npm:8.18.0"
+ version: 8.17.1
+ resolution: "ajv@npm:8.17.1"
dependencies:
fast-deep-equal: "npm:^3.1.3"
fast-uri: "npm:^3.0.1"
json-schema-traverse: "npm:^1.0.0"
require-from-string: "npm:^2.0.2"
- checksum: 10c0/e7517c426173513a07391be951879932bdf3348feaebd2199f5b901c20f99d60db8cd1591502d4d551dc82f594e82a05c4fe1c70139b15b8937f7afeaed9532f
+ checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35
languageName: node
linkType: hard
@@ -3562,8 +3697,8 @@ __metadata:
linkType: hard
"auto-image-converter@npm:^2.2.0":
- version: 2.2.2
- resolution: "auto-image-converter@npm:2.2.2"
+ version: 2.2.0
+ resolution: "auto-image-converter@npm:2.2.0"
dependencies:
chokidar: "npm:^4.0.3"
commander: "npm:^14.0.1"
@@ -3573,7 +3708,7 @@ __metadata:
auto-convert-images: bin/index.js
auto-convert-images-resize: bin/onetimeresizer.mjs
auto-convert-images-watch: bin/watcher.mjs
- checksum: 10c0/6776271495e1c83ede0dceef85c432b30ceac3129e835e765bfc811d4e3ab3aa6a8ef52e7c862a9ffffc93698354574d444d28719f5b298758ae0419d1a18493
+ checksum: 10c0/3a7afe5abecaf8ed149678fb35f72b49d6ae50b3240885025bdc965e3c2c3daeb5b7feb09614779cadaf08c3cf6a37dc4b20417e93555b0e622ebab5e1dd9153
languageName: node
linkType: hard
@@ -3587,12 +3722,12 @@ __metadata:
linkType: hard
"avvio@npm:^9.0.0":
- version: 9.2.0
- resolution: "avvio@npm:9.2.0"
+ version: 9.1.0
+ resolution: "avvio@npm:9.1.0"
dependencies:
"@fastify/error": "npm:^4.0.0"
fastq: "npm:^1.17.1"
- checksum: 10c0/ebeb1613a507d001922a3a2763336191da731bbd9df93f67d51b08fc98549e14499b058e008220d5df3354e0f14316cfa57107198caf09df6c8ba42c94ce9f51
+ checksum: 10c0/bdc294a7e8f38e1e21f9d338d97d7240025db54f1005fc419cfe0499a35edf2276ab1fe91135739faa3a9437358ec6912d5a56f23361b061880333cb4f1c7884
languageName: node
linkType: hard
@@ -3611,14 +3746,14 @@ __metadata:
linkType: hard
"babel-dead-code-elimination@npm:^1.0.6":
- version: 1.0.12
- resolution: "babel-dead-code-elimination@npm:1.0.12"
+ version: 1.0.10
+ resolution: "babel-dead-code-elimination@npm:1.0.10"
dependencies:
"@babel/core": "npm:^7.23.7"
"@babel/parser": "npm:^7.23.6"
"@babel/traverse": "npm:^7.23.7"
"@babel/types": "npm:^7.23.6"
- checksum: 10c0/9289b66ce202a5f2b8c160f6a0ed16b97c42a9e06e92ea997df4e34d6a8309a01cf641b21467ee6a2713efd7e158b4b770e04a07f3f9d30eb05d428d186f7a60
+ checksum: 10c0/9503662f28cf8f86e7a27c5cc1fa63fc556100cd3bc6f1a4382aa8e9c6df54b15d2e0fcc073016f315d26a9e4004bc4d70829a395f056172b8f9240314da8973
languageName: node
linkType: hard
@@ -3636,13 +3771,6 @@ __metadata:
languageName: node
linkType: hard
-"balanced-match@npm:^4.0.2":
- version: 4.0.4
- resolution: "balanced-match@npm:4.0.4"
- checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b
- languageName: node
- linkType: hard
-
"base64-js@npm:^1.3.1":
version: 1.5.1
resolution: "base64-js@npm:1.5.1"
@@ -3650,12 +3778,12 @@ __metadata:
languageName: node
linkType: hard
-"baseline-browser-mapping@npm:^2.10.12":
- version: 2.10.16
- resolution: "baseline-browser-mapping@npm:2.10.16"
+"baseline-browser-mapping@npm:^2.8.25":
+ version: 2.8.31
+ resolution: "baseline-browser-mapping@npm:2.8.31"
bin:
- baseline-browser-mapping: dist/cli.cjs
- checksum: 10c0/9947243bb8f16db3f8e05397c5c3e7a91243dcf2d1ec6a681ad5ffabeadee36c1061cd18e5f0432088df6798fa0689890ba26db173b9ad23c5650709b7b2e7cf
+ baseline-browser-mapping: dist/cli.js
+ checksum: 10c0/e0b2fcb41bf36c5e27e122a4d4cc9e5f6b9747d31cd0bd1f771aee9c490eb1e01cd11a31db32286bd4b9221139ee332b5ab7e3893c18a4dbd0ce8915a9e180ed
languageName: node
linkType: hard
@@ -3703,23 +3831,23 @@ __metadata:
languageName: node
linkType: hard
-"body-parser@npm:~1.20.3":
- version: 1.20.4
- resolution: "body-parser@npm:1.20.4"
+"body-parser@npm:1.20.3":
+ version: 1.20.3
+ resolution: "body-parser@npm:1.20.3"
dependencies:
- bytes: "npm:~3.1.2"
+ bytes: "npm:3.1.2"
content-type: "npm:~1.0.5"
debug: "npm:2.6.9"
depd: "npm:2.0.0"
- destroy: "npm:~1.2.0"
- http-errors: "npm:~2.0.1"
- iconv-lite: "npm:~0.4.24"
- on-finished: "npm:~2.4.1"
- qs: "npm:~6.14.0"
- raw-body: "npm:~2.5.3"
+ destroy: "npm:1.2.0"
+ http-errors: "npm:2.0.0"
+ iconv-lite: "npm:0.4.24"
+ on-finished: "npm:2.4.1"
+ qs: "npm:6.13.0"
+ raw-body: "npm:2.5.2"
type-is: "npm:~1.6.18"
- unpipe: "npm:~1.0.0"
- checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9
+ unpipe: "npm:1.0.0"
+ checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310
languageName: node
linkType: hard
@@ -3739,21 +3867,12 @@ __metadata:
languageName: node
linkType: hard
-"brace-expansion@npm:^2.0.2":
- version: 2.0.3
- resolution: "brace-expansion@npm:2.0.3"
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "brace-expansion@npm:2.0.2"
dependencies:
balanced-match: "npm:^1.0.0"
- checksum: 10c0/468436c9b2fa6f9e64d0cff8784b21300677571a7196e258593e95e7c3db9973a80fbafdb0f01404d5d298a04dc666eae1fc3c9052e2edbb9f2510541deeddfe
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^5.0.5":
- version: 5.0.5
- resolution: "brace-expansion@npm:5.0.5"
- dependencies:
- balanced-match: "npm:^4.0.2"
- checksum: 10c0/4d238e14ed4f5cc9c07285550a41cef23121ca08ba99fa9eb5b55b580dcb6bf868b8210aa10526bdc9f8dc97f33ca2a7259039c4cc131a93042beddb424c48e3
+ checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf
languageName: node
linkType: hard
@@ -3767,17 +3886,17 @@ __metadata:
linkType: hard
"browserslist@npm:^4.24.0":
- version: 4.28.2
- resolution: "browserslist@npm:4.28.2"
- dependencies:
- baseline-browser-mapping: "npm:^2.10.12"
- caniuse-lite: "npm:^1.0.30001782"
- electron-to-chromium: "npm:^1.5.328"
- node-releases: "npm:^2.0.36"
- update-browserslist-db: "npm:^1.2.3"
+ version: 4.28.0
+ resolution: "browserslist@npm:4.28.0"
+ dependencies:
+ baseline-browser-mapping: "npm:^2.8.25"
+ caniuse-lite: "npm:^1.0.30001754"
+ electron-to-chromium: "npm:^1.5.249"
+ node-releases: "npm:^2.0.27"
+ update-browserslist-db: "npm:^1.1.4"
bin:
browserslist: cli.js
- checksum: 10c0/c0228b6330f785b7fa59d2d360124ec6d9322f96ed9f3ee1f873e33ecc9503a6f0ffc3b71191a28c4ff6e930b753b30043da1c33844a9548f3018d491f09ce60
+ checksum: 10c0/4284fd568f7d40a496963083860d488cb2a89fb055b6affd316bebc59441fec938e090b3e62c0ee065eb0bc88cd1bc145f4300a16c75f3f565621c5823715ae1
languageName: node
linkType: hard
@@ -3824,7 +3943,7 @@ __metadata:
languageName: node
linkType: hard
-"bytes@npm:~3.1.2":
+"bytes@npm:3.1.2":
version: 3.1.2
resolution: "bytes@npm:3.1.2"
checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e
@@ -3839,8 +3958,8 @@ __metadata:
linkType: hard
"cacache@npm:^20.0.1":
- version: 20.0.4
- resolution: "cacache@npm:20.0.4"
+ version: 20.0.3
+ resolution: "cacache@npm:20.0.3"
dependencies:
"@npmcli/fs": "npm:^5.0.0"
fs-minipass: "npm:^3.0.0"
@@ -3852,7 +3971,8 @@ __metadata:
minipass-pipeline: "npm:^1.2.4"
p-map: "npm:^7.0.2"
ssri: "npm:^13.0.0"
- checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b
+ unique-filename: "npm:^5.0.0"
+ checksum: 10c0/c7da1ca694d20e8f8aedabd21dc11518f809a7d2b59aa76a1fc655db5a9e62379e465c157ddd2afe34b19230808882288effa6911b2de26a088a6d5645123462
languageName: node
linkType: hard
@@ -3902,10 +4022,10 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001782":
- version: 1.0.30001786
- resolution: "caniuse-lite@npm:1.0.30001786"
- checksum: 10c0/9895f0add1991eefb91cfae98e7baa9daffc6b862b0996c983d30e6be90ef679b6aef32dcb6eca312977fb67c2636ee575820f101213e69c1e0dbffd6ee8e09e
+"caniuse-lite@npm:^1.0.30001754":
+ version: 1.0.30001757
+ resolution: "caniuse-lite@npm:1.0.30001757"
+ checksum: 10c0/3ccb71fa2bf1f8c96ff1bf9b918b08806fed33307e20a3ce3259155fda131eaf96cfcd88d3d309c8fd7f8285cc71d89a3b93648a1c04814da31c301f98508d42
languageName: node
linkType: hard
@@ -4160,9 +4280,9 @@ __metadata:
linkType: hard
"commander@npm:^14.0.1":
- version: 14.0.3
- resolution: "commander@npm:14.0.3"
- checksum: 10c0/755652564bbf56ff2ff083313912b326450d3f8d8c85f4b71416539c9a05c3c67dbd206821ca72635bf6b160e2afdefcb458e86b317827d5cb333b69ce7f1a24
+ version: 14.0.2
+ resolution: "commander@npm:14.0.2"
+ checksum: 10c0/245abd1349dbad5414cb6517b7b5c584895c02c4f7836ff5395f301192b8566f9796c82d7bd6c92d07eba8775fe4df86602fca5d86d8d10bcc2aded1e21c2aeb
languageName: node
linkType: hard
@@ -4206,14 +4326,7 @@ __metadata:
languageName: node
linkType: hard
-"content-disposition@npm:^1.0.1":
- version: 1.0.1
- resolution: "content-disposition@npm:1.0.1"
- checksum: 10c0/bd7ff1fe8d2542d3a2b9a29428cc3591f6ac27bb5595bba2c69664408a68f9538b14cbd92479796ea835b317a09a527c8c7209c4200381dedb0c34d3b658849e
- languageName: node
- linkType: hard
-
-"content-disposition@npm:~0.5.4":
+"content-disposition@npm:0.5.4":
version: 0.5.4
resolution: "content-disposition@npm:0.5.4"
dependencies:
@@ -4222,6 +4335,13 @@ __metadata:
languageName: node
linkType: hard
+"content-disposition@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "content-disposition@npm:1.0.1"
+ checksum: 10c0/bd7ff1fe8d2542d3a2b9a29428cc3591f6ac27bb5595bba2c69664408a68f9538b14cbd92479796ea835b317a09a527c8c7209c4200381dedb0c34d3b658849e
+ languageName: node
+ linkType: hard
+
"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
version: 1.0.5
resolution: "content-type@npm:1.0.5"
@@ -4236,10 +4356,17 @@ __metadata:
languageName: node
linkType: hard
-"cookie-signature@npm:~1.0.6":
- version: 1.0.7
- resolution: "cookie-signature@npm:1.0.7"
- checksum: 10c0/e7731ad2995ae2efeed6435ec1e22cdd21afef29d300c27281438b1eab2bae04ef0d1a203928c0afec2cee72aa36540b8747406ebe308ad23c8e8cc3c26c9c51
+"cookie-signature@npm:1.0.6":
+ version: 1.0.6
+ resolution: "cookie-signature@npm:1.0.6"
+ checksum: 10c0/b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221
+ languageName: node
+ linkType: hard
+
+"cookie@npm:0.7.1":
+ version: 0.7.1
+ resolution: "cookie@npm:0.7.1"
+ checksum: 10c0/5de60c67a410e7c8dc8a46a4b72eb0fe925871d057c9a5d2c0e8145c4270a4f81076de83410c4d397179744b478e33cd80ccbcc457abf40a9409ad27dcd21dde
languageName: node
linkType: hard
@@ -4250,13 +4377,6 @@ __metadata:
languageName: node
linkType: hard
-"cookie@npm:~0.7.1":
- version: 0.7.2
- resolution: "cookie@npm:0.7.2"
- checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2
- languageName: node
- linkType: hard
-
"core-util-is@npm:1.0.2":
version: 1.0.2
resolution: "core-util-is@npm:1.0.2"
@@ -4463,23 +4583,23 @@ __metadata:
linkType: hard
"decode-named-character-reference@npm:^1.0.0":
- version: 1.3.0
- resolution: "decode-named-character-reference@npm:1.3.0"
+ version: 1.2.0
+ resolution: "decode-named-character-reference@npm:1.2.0"
dependencies:
character-entities: "npm:^2.0.0"
- checksum: 10c0/787f4c87f3b82ea342aa7c2d7b1882b6fb9511bb77f72ae44dcaabea0470bacd1e9c6a0080ab886545019fa0cb3a7109573fad6b61a362844c3a0ac52b36e4bb
+ checksum: 10c0/761a89de6b0e0a2d4b21ae99074e4cc3344dd11eb29f112e23cc5909f2e9f33c5ed20cd6b146b27fb78170bce0f3f9b3362a84b75638676a05c938c24a60f5d7
languageName: node
linkType: hard
"dedent@npm:^1.5.3":
- version: 1.7.2
- resolution: "dedent@npm:1.7.2"
+ version: 1.7.0
+ resolution: "dedent@npm:1.7.0"
peerDependencies:
babel-plugin-macros: ^3.1.0
peerDependenciesMeta:
babel-plugin-macros:
optional: true
- checksum: 10c0/acaff07cac355b93f17b1b17ebbb84d3cc55af6ab4b7814c3f505e061903e168bc6bf9ddce331552d64dee1525f0b4c549c9ade46aebfac6f69caaed74e90751
+ checksum: 10c0/c5e8a8beb5072bd5e520cb64b27a82d7ec3c2a63ee5ce47dbc2a05d5b7700cefd77a992a752cd0a8b1d979c1db06b14fb9486e805f3ad6088eda6e07cd9bf2d5
languageName: node
linkType: hard
@@ -4557,7 +4677,7 @@ __metadata:
languageName: node
linkType: hard
-"destroy@npm:1.2.0, destroy@npm:~1.2.0":
+"destroy@npm:1.2.0":
version: 1.2.0
resolution: "destroy@npm:1.2.0"
checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643
@@ -4682,10 +4802,10 @@ __metadata:
languageName: node
linkType: hard
-"electron-to-chromium@npm:^1.5.328":
- version: 1.5.332
- resolution: "electron-to-chromium@npm:1.5.332"
- checksum: 10c0/0e9aedd5634e81f323919a5fba7e1cf34c18860262a50915fb2371a6c65324cbfa50eaea231d05d235cc40b1b60cfaf0c1546d3f2daa6ad6c03e89dfe21cb55f
+"electron-to-chromium@npm:^1.5.249":
+ version: 1.5.260
+ resolution: "electron-to-chromium@npm:1.5.260"
+ checksum: 10c0/5be308adbe7f9b370f628eb3ae35528bccc8e8592ee4848f9dfa308af658deaa87e915dd6929b6993e712929e7e6828f40434814506476ae11051381ee423fdf
languageName: node
linkType: hard
@@ -4710,6 +4830,13 @@ __metadata:
languageName: node
linkType: hard
+"encodeurl@npm:~1.0.2":
+ version: 1.0.2
+ resolution: "encodeurl@npm:1.0.2"
+ checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec
+ languageName: node
+ linkType: hard
+
"encodeurl@npm:~2.0.0":
version: 2.0.0
resolution: "encodeurl@npm:2.0.0"
@@ -4717,6 +4844,15 @@ __metadata:
languageName: node
linkType: hard
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: "npm:^0.6.2"
+ checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
+ languageName: node
+ linkType: hard
+
"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1":
version: 1.4.5
resolution: "end-of-stream@npm:1.4.5"
@@ -4784,8 +4920,8 @@ __metadata:
linkType: hard
"es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9":
- version: 1.24.1
- resolution: "es-abstract@npm:1.24.1"
+ version: 1.24.0
+ resolution: "es-abstract@npm:1.24.0"
dependencies:
array-buffer-byte-length: "npm:^1.0.2"
arraybuffer.prototype.slice: "npm:^1.0.4"
@@ -4841,7 +4977,7 @@ __metadata:
typed-array-length: "npm:^1.0.7"
unbox-primitive: "npm:^1.1.0"
which-typed-array: "npm:^1.1.19"
- checksum: 10c0/fca062ef8b5daacf743732167d319a212d45cb655b0bb540821d38d715416ae15b04b84fc86da9e2c89135aa7b337337b6c867f84dcde698d75d55688d5d765c
+ checksum: 10c0/b256e897be32df5d382786ce8cce29a1dd8c97efbab77a26609bd70f2ed29fbcfc7a31758cb07488d532e7ccccdfca76c1118f2afe5a424cdc05ca007867c318
languageName: node
linkType: hard
@@ -5018,36 +5154,36 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.27.0":
- version: 0.27.7
- resolution: "esbuild@npm:0.27.7"
- dependencies:
- "@esbuild/aix-ppc64": "npm:0.27.7"
- "@esbuild/android-arm": "npm:0.27.7"
- "@esbuild/android-arm64": "npm:0.27.7"
- "@esbuild/android-x64": "npm:0.27.7"
- "@esbuild/darwin-arm64": "npm:0.27.7"
- "@esbuild/darwin-x64": "npm:0.27.7"
- "@esbuild/freebsd-arm64": "npm:0.27.7"
- "@esbuild/freebsd-x64": "npm:0.27.7"
- "@esbuild/linux-arm": "npm:0.27.7"
- "@esbuild/linux-arm64": "npm:0.27.7"
- "@esbuild/linux-ia32": "npm:0.27.7"
- "@esbuild/linux-loong64": "npm:0.27.7"
- "@esbuild/linux-mips64el": "npm:0.27.7"
- "@esbuild/linux-ppc64": "npm:0.27.7"
- "@esbuild/linux-riscv64": "npm:0.27.7"
- "@esbuild/linux-s390x": "npm:0.27.7"
- "@esbuild/linux-x64": "npm:0.27.7"
- "@esbuild/netbsd-arm64": "npm:0.27.7"
- "@esbuild/netbsd-x64": "npm:0.27.7"
- "@esbuild/openbsd-arm64": "npm:0.27.7"
- "@esbuild/openbsd-x64": "npm:0.27.7"
- "@esbuild/openharmony-arm64": "npm:0.27.7"
- "@esbuild/sunos-x64": "npm:0.27.7"
- "@esbuild/win32-arm64": "npm:0.27.7"
- "@esbuild/win32-ia32": "npm:0.27.7"
- "@esbuild/win32-x64": "npm:0.27.7"
+"esbuild@npm:^0.25.0":
+ version: 0.25.12
+ resolution: "esbuild@npm:0.25.12"
+ dependencies:
+ "@esbuild/aix-ppc64": "npm:0.25.12"
+ "@esbuild/android-arm": "npm:0.25.12"
+ "@esbuild/android-arm64": "npm:0.25.12"
+ "@esbuild/android-x64": "npm:0.25.12"
+ "@esbuild/darwin-arm64": "npm:0.25.12"
+ "@esbuild/darwin-x64": "npm:0.25.12"
+ "@esbuild/freebsd-arm64": "npm:0.25.12"
+ "@esbuild/freebsd-x64": "npm:0.25.12"
+ "@esbuild/linux-arm": "npm:0.25.12"
+ "@esbuild/linux-arm64": "npm:0.25.12"
+ "@esbuild/linux-ia32": "npm:0.25.12"
+ "@esbuild/linux-loong64": "npm:0.25.12"
+ "@esbuild/linux-mips64el": "npm:0.25.12"
+ "@esbuild/linux-ppc64": "npm:0.25.12"
+ "@esbuild/linux-riscv64": "npm:0.25.12"
+ "@esbuild/linux-s390x": "npm:0.25.12"
+ "@esbuild/linux-x64": "npm:0.25.12"
+ "@esbuild/netbsd-arm64": "npm:0.25.12"
+ "@esbuild/netbsd-x64": "npm:0.25.12"
+ "@esbuild/openbsd-arm64": "npm:0.25.12"
+ "@esbuild/openbsd-x64": "npm:0.25.12"
+ "@esbuild/openharmony-arm64": "npm:0.25.12"
+ "@esbuild/sunos-x64": "npm:0.25.12"
+ "@esbuild/win32-arm64": "npm:0.25.12"
+ "@esbuild/win32-ia32": "npm:0.25.12"
+ "@esbuild/win32-x64": "npm:0.25.12"
dependenciesMeta:
"@esbuild/aix-ppc64":
optional: true
@@ -5103,7 +5239,7 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: 10c0/ccd51f0555708bc9ff4ec9dc3ac92d3daacd45ecaac949ca8645984c5c323bf8cefe98c2df307418685e0b4ce37f9a3bdbfe8e3651fe632a0059a436195a17d4
+ checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b
languageName: node
linkType: hard
@@ -5279,41 +5415,41 @@ __metadata:
linkType: hard
"express@npm:^4.16.3":
- version: 4.22.1
- resolution: "express@npm:4.22.1"
+ version: 4.21.2
+ resolution: "express@npm:4.21.2"
dependencies:
accepts: "npm:~1.3.8"
array-flatten: "npm:1.1.1"
- body-parser: "npm:~1.20.3"
- content-disposition: "npm:~0.5.4"
+ body-parser: "npm:1.20.3"
+ content-disposition: "npm:0.5.4"
content-type: "npm:~1.0.4"
- cookie: "npm:~0.7.1"
- cookie-signature: "npm:~1.0.6"
+ cookie: "npm:0.7.1"
+ cookie-signature: "npm:1.0.6"
debug: "npm:2.6.9"
depd: "npm:2.0.0"
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
etag: "npm:~1.8.1"
- finalhandler: "npm:~1.3.1"
- fresh: "npm:~0.5.2"
- http-errors: "npm:~2.0.0"
+ finalhandler: "npm:1.3.1"
+ fresh: "npm:0.5.2"
+ http-errors: "npm:2.0.0"
merge-descriptors: "npm:1.0.3"
methods: "npm:~1.1.2"
- on-finished: "npm:~2.4.1"
+ on-finished: "npm:2.4.1"
parseurl: "npm:~1.3.3"
- path-to-regexp: "npm:~0.1.12"
+ path-to-regexp: "npm:0.1.12"
proxy-addr: "npm:~2.0.7"
- qs: "npm:~6.14.0"
+ qs: "npm:6.13.0"
range-parser: "npm:~1.2.1"
safe-buffer: "npm:5.2.1"
- send: "npm:~0.19.0"
- serve-static: "npm:~1.16.2"
+ send: "npm:0.19.0"
+ serve-static: "npm:1.16.2"
setprototypeof: "npm:1.2.0"
- statuses: "npm:~2.0.1"
+ statuses: "npm:2.0.1"
type-is: "npm:~1.6.18"
utils-merge: "npm:1.0.1"
vary: "npm:~1.1.2"
- checksum: 10c0/ea57f512ab1e05e26b53a14fd432f65a10ec735ece342b37d0b63a7bcb8d337ffbb830ecb8ca15bcdfe423fbff88cea09786277baff200e8cde3ab40faa665cd
+ checksum: 10c0/38168fd0a32756600b56e6214afecf4fc79ec28eca7f7a91c2ab8d50df4f47562ca3f9dee412da7f5cea6b1a1544b33b40f9f8586dbacfbdada0fe90dbb10a1f
languageName: node
linkType: hard
@@ -5397,8 +5533,8 @@ __metadata:
linkType: hard
"fast-json-stringify@npm:^6.0.0":
- version: 6.3.0
- resolution: "fast-json-stringify@npm:6.3.0"
+ version: 6.1.1
+ resolution: "fast-json-stringify@npm:6.1.1"
dependencies:
"@fastify/merge-json-schemas": "npm:^0.2.0"
ajv: "npm:^8.12.0"
@@ -5406,7 +5542,7 @@ __metadata:
fast-uri: "npm:^3.0.0"
json-schema-ref-resolver: "npm:^3.0.0"
rfdc: "npm:^1.2.0"
- checksum: 10c0/5562eee1b18a7db92dce5eca969068da26ff3f8cb940bd875124b02f46992329b248953c8190906a8a638ec980e1f5ec72a70254796d5fb735f2cb315b026fa0
+ checksum: 10c0/15bf8e1e183c1631687d40907e4330b1ae764f790fbdeedf1f2b5d75fece457a445a1a99c0ea8e8113612928e4dae32bfccd7a7a7da57555d6be893471478a7a
languageName: node
linkType: hard
@@ -5464,11 +5600,11 @@ __metadata:
linkType: hard
"fastq@npm:^1.17.1, fastq@npm:^1.6.0":
- version: 1.20.1
- resolution: "fastq@npm:1.20.1"
+ version: 1.19.1
+ resolution: "fastq@npm:1.19.1"
dependencies:
reusify: "npm:^1.0.4"
- checksum: 10c0/e5dd725884decb1f11e5c822221d76136f239d0236f176fab80b7b8f9e7619ae57e6b4e5b73defc21e6b9ef99437ee7b545cff8e6c2c337819633712fa9d352e
+ checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630
languageName: node
linkType: hard
@@ -5520,29 +5656,29 @@ __metadata:
languageName: node
linkType: hard
-"finalhandler@npm:~1.3.1":
- version: 1.3.2
- resolution: "finalhandler@npm:1.3.2"
+"finalhandler@npm:1.3.1":
+ version: 1.3.1
+ resolution: "finalhandler@npm:1.3.1"
dependencies:
debug: "npm:2.6.9"
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
- on-finished: "npm:~2.4.1"
+ on-finished: "npm:2.4.1"
parseurl: "npm:~1.3.3"
- statuses: "npm:~2.0.2"
+ statuses: "npm:2.0.1"
unpipe: "npm:~1.0.0"
- checksum: 10c0/435a4fd65e4e4e4c71bb5474980090b73c353a123dd415583f67836bdd6516e528cf07298e219a82b94631dee7830eae5eece38d3c178073cf7df4e8c182f413
+ checksum: 10c0/d38035831865a49b5610206a3a9a9aae4e8523cbbcd01175d0480ffbf1278c47f11d89be3ca7f617ae6d94f29cf797546a4619cd84dd109009ef33f12f69019f
languageName: node
linkType: hard
"find-my-way@npm:^9.0.0":
- version: 9.5.0
- resolution: "find-my-way@npm:9.5.0"
+ version: 9.3.0
+ resolution: "find-my-way@npm:9.3.0"
dependencies:
fast-deep-equal: "npm:^3.1.3"
fast-querystring: "npm:^1.0.0"
safe-regex2: "npm:^5.0.0"
- checksum: 10c0/a70cb80a296dbb57a16940fd0697a47dbe372d35a5096bc2a827d8d67f66c22244e308e599ec19bfee4be25910aaf1d9e157a82cad6deaf9cc9cd7460740daec
+ checksum: 10c0/f221bc0c70b2c2a6f9282fd3e0ac1911fcbb68ac718da043ddcefdec3b9d884a54d6ef1bf92e1b2ff83400e50f3c22141206a8ea3308bf0e9e37fd177843425d
languageName: node
linkType: hard
@@ -5599,7 +5735,7 @@ __metadata:
languageName: node
linkType: hard
-"fresh@npm:~0.5.2":
+"fresh@npm:0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a
@@ -5825,13 +5961,13 @@ __metadata:
linkType: hard
"glob@npm:^13.0.0":
- version: 13.0.6
- resolution: "glob@npm:13.0.6"
+ version: 13.0.0
+ resolution: "glob@npm:13.0.0"
dependencies:
- minimatch: "npm:^10.2.2"
- minipass: "npm:^7.1.3"
- path-scurry: "npm:^2.0.2"
- checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
+ minimatch: "npm:^10.1.1"
+ minipass: "npm:^7.1.2"
+ path-scurry: "npm:^2.0.0"
+ checksum: 10c0/8e2f5821f3f7c312dd102e23a15b80c79e0837a9872784293ba2e15ec73b3f3749a49a42a31bfcb4e52c84820a474e92331c2eebf18819d20308f5c33876630a
languageName: node
linkType: hard
@@ -5869,8 +6005,8 @@ __metadata:
linkType: hard
"handlebars@npm:^4.0.11":
- version: 4.7.9
- resolution: "handlebars@npm:4.7.9"
+ version: 4.7.8
+ resolution: "handlebars@npm:4.7.8"
dependencies:
minimist: "npm:^1.2.5"
neo-async: "npm:^2.6.2"
@@ -5882,7 +6018,7 @@ __metadata:
optional: true
bin:
handlebars: bin/handlebars
- checksum: 10c0/22f8105a7e68e81aff2662bb434edf05f757d21d850731d71cec886d69c10cd33d3c43e34b2892968ec62de8241611851d3d0674c8ef324ea3e01dc66262faa9
+ checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d
languageName: node
linkType: hard
@@ -6106,7 +6242,20 @@ __metadata:
languageName: node
linkType: hard
-"http-errors@npm:^2.0.0, http-errors@npm:~2.0.0, http-errors@npm:~2.0.1":
+"http-errors@npm:2.0.0":
+ version: 2.0.0
+ resolution: "http-errors@npm:2.0.0"
+ dependencies:
+ depd: "npm:2.0.0"
+ inherits: "npm:2.0.4"
+ setprototypeof: "npm:1.2.0"
+ statuses: "npm:2.0.1"
+ toidentifier: "npm:1.0.1"
+ checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19
+ languageName: node
+ linkType: hard
+
+"http-errors@npm:^2.0.0":
version: 2.0.1
resolution: "http-errors@npm:2.0.1"
dependencies:
@@ -6119,16 +6268,15 @@ __metadata:
languageName: node
linkType: hard
-"http-errors@npm:~1.8.0":
- version: 1.8.1
- resolution: "http-errors@npm:1.8.1"
+"http-errors@npm:~1.6.2":
+ version: 1.6.3
+ resolution: "http-errors@npm:1.6.3"
dependencies:
depd: "npm:~1.1.2"
- inherits: "npm:2.0.4"
- setprototypeof: "npm:1.2.0"
- statuses: "npm:>= 1.5.0 < 2"
- toidentifier: "npm:1.0.1"
- checksum: 10c0/f01aeecd76260a6fe7f08e192fcbe9b2f39ed20fc717b852669a69930167053b01790998275c6297d44f435cf0e30edd50c05223d1bec9bc484e6cf35b2d6f43
+ inherits: "npm:2.0.3"
+ setprototypeof: "npm:1.1.0"
+ statuses: "npm:>= 1.4.0 < 2"
+ checksum: 10c0/17ec4046ee974477778bfdd525936c254b872054703ec2caa4d6f099566b8adade636ae6aeeacb39302c5cd6e28fb407ebd937f500f5010d0b6850750414ff78
languageName: node
linkType: hard
@@ -6170,30 +6318,21 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.6.3":
- version: 0.6.3
- resolution: "iconv-lite@npm:0.6.3"
+"iconv-lite@npm:0.4.24":
+ version: 0.4.24
+ resolution: "iconv-lite@npm:0.4.24"
dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
+ safer-buffer: "npm:>= 2.1.2 < 3"
+ checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
languageName: node
linkType: hard
-"iconv-lite@npm:^0.7.2":
- version: 0.7.2
- resolution: "iconv-lite@npm:0.7.2"
+"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
dependencies:
safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:~0.4.24":
- version: 0.4.24
- resolution: "iconv-lite@npm:0.4.24"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3"
- checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
+ checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
languageName: node
linkType: hard
@@ -6218,6 +6357,13 @@ __metadata:
languageName: node
linkType: hard
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
"indent-string@npm:^4.0.0":
version: 4.0.0
resolution: "indent-string@npm:4.0.0"
@@ -6225,6 +6371,13 @@ __metadata:
languageName: node
linkType: hard
+"inherits@npm:2.0.3":
+ version: 2.0.3
+ resolution: "inherits@npm:2.0.3"
+ checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
+ languageName: node
+ linkType: hard
+
"inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3, inherits@npm:~2.0.4":
version: 2.0.4
resolution: "inherits@npm:2.0.4"
@@ -6279,9 +6432,9 @@ __metadata:
linkType: hard
"ipaddr.js@npm:^2.1.0":
- version: 2.3.0
- resolution: "ipaddr.js@npm:2.3.0"
- checksum: 10c0/084bab99e2f6875d7a62adc3325e1c64b038a12c9521e35fb967b5e263a8b3afb1b8884dd77c276092331f5d63298b767491e10997ef147c62da01b143780bbd
+ version: 2.2.0
+ resolution: "ipaddr.js@npm:2.2.0"
+ checksum: 10c0/e4ee875dc1bd92ac9d27e06cfd87cdb63ca786ff9fd7718f1d4f7a8ef27db6e5d516128f52d2c560408cbb75796ac2f83ead669e73507c86282d45f84c5abbb6
languageName: node
linkType: hard
@@ -6671,11 +6824,11 @@ __metadata:
linkType: hard
"is-wsl@npm:^3.1.0":
- version: 3.1.1
- resolution: "is-wsl@npm:3.1.1"
+ version: 3.1.0
+ resolution: "is-wsl@npm:3.1.0"
dependencies:
is-inside-container: "npm:^1.0.0"
- checksum: 10c0/7e5023522bfb8f27de4de960b0d82c4a8146c0bddb186529a3616d78b5bbbfc19ef0c5fc60d0b3a3cc0bf95a415fbdedc18454310ea3049587c879b07ace5107
+ checksum: 10c0/d3317c11995690a32c362100225e22ba793678fe8732660c6de511ae71a0ff05b06980cf21f98a6bf40d7be0e9e9506f859abe00a1118287d63e53d0a3d06947
languageName: node
linkType: hard
@@ -6708,16 +6861,9 @@ __metadata:
linkType: hard
"isexe@npm:^3.1.1":
- version: 3.1.5
- resolution: "isexe@npm:3.1.5"
- checksum: 10c0/8be2973a09f2f804ea1f34bfccfd5ea219ef48083bdb12107fe5bcf96b3e36b85084409e1b09ddaf2fae8927fdd9f6d70d90baadb78caa1ca7c530935706c8a4
- languageName: node
- linkType: hard
-
-"isexe@npm:^4.0.0":
- version: 4.0.0
- resolution: "isexe@npm:4.0.0"
- checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
languageName: node
linkType: hard
@@ -6921,90 +7067,90 @@ __metadata:
languageName: node
linkType: hard
-"lefthook-darwin-arm64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-darwin-arm64@npm:2.1.5"
+"lefthook-darwin-arm64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-darwin-arm64@npm:2.1.4"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"lefthook-darwin-x64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-darwin-x64@npm:2.1.5"
+"lefthook-darwin-x64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-darwin-x64@npm:2.1.4"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"lefthook-freebsd-arm64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-freebsd-arm64@npm:2.1.5"
+"lefthook-freebsd-arm64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-freebsd-arm64@npm:2.1.4"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
-"lefthook-freebsd-x64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-freebsd-x64@npm:2.1.5"
+"lefthook-freebsd-x64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-freebsd-x64@npm:2.1.4"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"lefthook-linux-arm64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-linux-arm64@npm:2.1.5"
+"lefthook-linux-arm64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-linux-arm64@npm:2.1.4"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"lefthook-linux-x64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-linux-x64@npm:2.1.5"
+"lefthook-linux-x64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-linux-x64@npm:2.1.4"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"lefthook-openbsd-arm64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-openbsd-arm64@npm:2.1.5"
+"lefthook-openbsd-arm64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-openbsd-arm64@npm:2.1.4"
conditions: os=openbsd & cpu=arm64
languageName: node
linkType: hard
-"lefthook-openbsd-x64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-openbsd-x64@npm:2.1.5"
+"lefthook-openbsd-x64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-openbsd-x64@npm:2.1.4"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
-"lefthook-windows-arm64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-windows-arm64@npm:2.1.5"
+"lefthook-windows-arm64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-windows-arm64@npm:2.1.4"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"lefthook-windows-x64@npm:2.1.5":
- version: 2.1.5
- resolution: "lefthook-windows-x64@npm:2.1.5"
+"lefthook-windows-x64@npm:2.1.4":
+ version: 2.1.4
+ resolution: "lefthook-windows-x64@npm:2.1.4"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"lefthook@npm:^2.1.4":
- version: 2.1.5
- resolution: "lefthook@npm:2.1.5"
- dependencies:
- lefthook-darwin-arm64: "npm:2.1.5"
- lefthook-darwin-x64: "npm:2.1.5"
- lefthook-freebsd-arm64: "npm:2.1.5"
- lefthook-freebsd-x64: "npm:2.1.5"
- lefthook-linux-arm64: "npm:2.1.5"
- lefthook-linux-x64: "npm:2.1.5"
- lefthook-openbsd-arm64: "npm:2.1.5"
- lefthook-openbsd-x64: "npm:2.1.5"
- lefthook-windows-arm64: "npm:2.1.5"
- lefthook-windows-x64: "npm:2.1.5"
+ version: 2.1.4
+ resolution: "lefthook@npm:2.1.4"
+ dependencies:
+ lefthook-darwin-arm64: "npm:2.1.4"
+ lefthook-darwin-x64: "npm:2.1.4"
+ lefthook-freebsd-arm64: "npm:2.1.4"
+ lefthook-freebsd-x64: "npm:2.1.4"
+ lefthook-linux-arm64: "npm:2.1.4"
+ lefthook-linux-x64: "npm:2.1.4"
+ lefthook-openbsd-arm64: "npm:2.1.4"
+ lefthook-openbsd-x64: "npm:2.1.4"
+ lefthook-windows-arm64: "npm:2.1.4"
+ lefthook-windows-x64: "npm:2.1.4"
dependenciesMeta:
lefthook-darwin-arm64:
optional: true
@@ -7028,7 +7174,7 @@ __metadata:
optional: true
bin:
lefthook: bin/index.js
- checksum: 10c0/534c0e3b62e5032d6b61031b695aa562932e5cb147d124884fa66d12d1849a9b2843ae434fc2846b06d2f59a3e2d0d4fb0c099f2f972a93e55c331f8a50607f9
+ checksum: 10c0/8238c33a00a5770e02bf2b12c6191994f05a785339a4ac2e994c2027209b49af8f7e9d38e4f9ca6d16a6815c8141c9f7d69a162571d632ee746f0b7a27e06047
languageName: node
linkType: hard
@@ -7210,10 +7356,10 @@ __metadata:
languageName: node
linkType: hard
-"lodash-es@npm:4.18.1":
- version: 4.18.1
- resolution: "lodash-es@npm:4.18.1"
- checksum: 10c0/35d4dcf87ef07f8d090f409447575800108057e360b445f590d0d25d09e3d1e33a163d2fc100d4d072b0f901d5e2fc533cd7c4bfd8eeb38a06abec693823c8b8
+"lodash-es@npm:4.17.23":
+ version: 4.17.23
+ resolution: "lodash-es@npm:4.17.23"
+ checksum: 10c0/3150fb6660c14c7a6b5f23bd11597d884b140c0e862a17fdb415aaa5ef7741523182904a6b7929f04e5f60a11edb5a79499eb448734381c99ffb3c4734beeddd
languageName: node
linkType: hard
@@ -7278,9 +7424,9 @@ __metadata:
linkType: hard
"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
- version: 11.3.2
- resolution: "lru-cache@npm:11.3.2"
- checksum: 10c0/1981baec397c1e7875ac7456ea123e1f8016b878bf3a88b083bbe3f791ba77212d0507751a069f3d4c12441d70ca255d150c2a1c489d3cbe5ed6b8c625bb1be2
+ version: 11.2.2
+ resolution: "lru-cache@npm:11.2.2"
+ checksum: 10c0/72d7831bbebc85e2bdefe01047ee5584db69d641c48d7a509e86f66f6ee111b30af7ec3bd68a967d47b69a4b1fa8bbf3872630bd06a63b6735e6f0a5f1c8e83d
languageName: node
linkType: hard
@@ -7319,12 +7465,10 @@ __metadata:
linkType: hard
"make-fetch-happen@npm:^15.0.0":
- version: 15.0.5
- resolution: "make-fetch-happen@npm:15.0.5"
+ version: 15.0.3
+ resolution: "make-fetch-happen@npm:15.0.3"
dependencies:
- "@gar/promise-retry": "npm:^1.0.0"
"@npmcli/agent": "npm:^4.0.0"
- "@npmcli/redact": "npm:^4.0.0"
cacache: "npm:^20.0.1"
http-cache-semantics: "npm:^4.1.1"
minipass: "npm:^7.0.2"
@@ -7333,8 +7477,9 @@ __metadata:
minipass-pipeline: "npm:^1.2.4"
negotiator: "npm:^1.0.0"
proc-log: "npm:^6.0.0"
+ promise-retry: "npm:^2.0.1"
ssri: "npm:^13.0.0"
- checksum: 10c0/527580eb5e5476e6ad07a4e3bd017d13e935f4be815674b442081ae5a721c13d3af5715006619e6be79a85723067e047f83a0c9e699f41d8cec43609a8de4f7b
+ checksum: 10c0/525f74915660be60b616bcbd267c4a5b59481b073ba125e45c9c3a041bb1a47a2bd0ae79d028eb6f5f95bf9851a4158423f5068539c3093621abb64027e8e461
languageName: node
linkType: hard
@@ -8178,7 +8323,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34, mime-types@npm:~2.1.35":
+"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -8235,21 +8380,21 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^10.2.2":
- version: 10.2.5
- resolution: "minimatch@npm:10.2.5"
+"minimatch@npm:^10.1.1":
+ version: 10.1.1
+ resolution: "minimatch@npm:10.1.1"
dependencies:
- brace-expansion: "npm:^5.0.5"
- checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd
+ "@isaacs/brace-expansion": "npm:^5.0.0"
+ checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902
languageName: node
linkType: hard
"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4":
- version: 9.0.9
- resolution: "minimatch@npm:9.0.9"
+ version: 9.0.5
+ resolution: "minimatch@npm:9.0.5"
dependencies:
- brace-expansion: "npm:^2.0.2"
- checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed
languageName: node
linkType: hard
@@ -8270,26 +8415,26 @@ __metadata:
linkType: hard
"minipass-fetch@npm:^5.0.0":
- version: 5.0.2
- resolution: "minipass-fetch@npm:5.0.2"
+ version: 5.0.0
+ resolution: "minipass-fetch@npm:5.0.0"
dependencies:
- iconv-lite: "npm:^0.7.2"
+ encoding: "npm:^0.1.13"
minipass: "npm:^7.0.3"
- minipass-sized: "npm:^2.0.0"
+ minipass-sized: "npm:^1.0.3"
minizlib: "npm:^3.0.1"
dependenciesMeta:
- iconv-lite:
+ encoding:
optional: true
- checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649
+ checksum: 10c0/9443aab5feab190972f84b64116e54e58dd87a58e62399cae0a4a7461b80568281039b7c3a38ba96453431ebc799d1e26999e548540156216729a4967cd5ef06
languageName: node
linkType: hard
"minipass-flush@npm:^1.0.5":
- version: 1.0.7
- resolution: "minipass-flush@npm:1.0.7"
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
dependencies:
minipass: "npm:^3.0.0"
- checksum: 10c0/960915c02aa0991662c37c404517dd93708d17f96533b2ca8c1e776d158715d8107c5ced425ffc61674c167d93607f07f48a83c139ce1057f8781e5dfb4b90c2
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
languageName: node
linkType: hard
@@ -8302,12 +8447,12 @@ __metadata:
languageName: node
linkType: hard
-"minipass-sized@npm:^2.0.0":
- version: 2.0.0
- resolution: "minipass-sized@npm:2.0.0"
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
languageName: node
linkType: hard
@@ -8320,7 +8465,7 @@ __metadata:
languageName: node
linkType: hard
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3":
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2":
version: 7.1.3
resolution: "minipass@npm:7.1.3"
checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb
@@ -8388,8 +8533,8 @@ __metadata:
linkType: hard
"node-gyp@npm:latest":
- version: 12.2.0
- resolution: "node-gyp@npm:12.2.0"
+ version: 12.1.0
+ resolution: "node-gyp@npm:12.1.0"
dependencies:
env-paths: "npm:^2.2.0"
exponential-backoff: "npm:^3.1.1"
@@ -8398,19 +8543,19 @@ __metadata:
nopt: "npm:^9.0.0"
proc-log: "npm:^6.0.0"
semver: "npm:^7.3.5"
- tar: "npm:^7.5.4"
+ tar: "npm:^7.5.2"
tinyglobby: "npm:^0.2.12"
which: "npm:^6.0.0"
bin:
node-gyp: bin/node-gyp.js
- checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759
+ checksum: 10c0/f43efea8aaf0beb6b2f6184e533edad779b2ae38062953e21951f46221dd104006cc574154f2ad4a135467a5aae92c49e84ef289311a82e08481c5df0e8dc495
languageName: node
linkType: hard
-"node-releases@npm:^2.0.36":
- version: 2.0.37
- resolution: "node-releases@npm:2.0.37"
- checksum: 10c0/306df89190b3225d0cb001260de52f0befd225a782ec85311ce97b0aa3b2e22f5e4e4c00395c6dc9bc9ef440c64723f6205fe1e27d32b8dd1d140891fbadf901
+"node-releases@npm:^2.0.27":
+ version: 2.0.27
+ resolution: "node-releases@npm:2.0.27"
+ checksum: 10c0/f1e6583b7833ea81880627748d28a3a7ff5703d5409328c216ae57befbced10ce2c991bea86434e8ec39003bd017f70481e2e5f8c1f7e0a7663241f81d6e00e2
languageName: node
linkType: hard
@@ -8504,9 +8649,9 @@ __metadata:
linkType: hard
"nwsapi@npm:^2.2.16":
- version: 2.2.23
- resolution: "nwsapi@npm:2.2.23"
- checksum: 10c0/e44bfc9246baf659581206ed716d291a1905185247795fb8a302cb09315c943a31023b4ac4d026a5eaf32b2def51d77b3d0f9ebf4f3d35f70e105fcb6447c76e
+ version: 2.2.22
+ resolution: "nwsapi@npm:2.2.22"
+ checksum: 10c0/b6a0e5ea6754aacfdfe551c8c0f1b374eaf94d48b0a4e7eac666f879ecbc1892ef1d7c457e9b02eefad3fa1323ea1faebcba533eeab6582e24c9c503411bf879
languageName: node
linkType: hard
@@ -8552,7 +8697,7 @@ __metadata:
languageName: node
linkType: hard
-"on-finished@npm:~2.4.1":
+"on-finished@npm:2.4.1":
version: 2.4.1
resolution: "on-finished@npm:2.4.1"
dependencies:
@@ -8765,7 +8910,7 @@ __metadata:
languageName: node
linkType: hard
-"parseurl@npm:~1.3.3":
+"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
version: 1.3.3
resolution: "parseurl@npm:1.3.3"
checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5
@@ -8789,13 +8934,20 @@ __metadata:
languageName: node
linkType: hard
-"path-scurry@npm:^2.0.2":
- version: 2.0.2
- resolution: "path-scurry@npm:2.0.2"
+"path-scurry@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "path-scurry@npm:2.0.1"
dependencies:
lru-cache: "npm:^11.0.0"
minipass: "npm:^7.1.2"
- checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
+ checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620
+ languageName: node
+ linkType: hard
+
+"path-to-regexp@npm:0.1.12":
+ version: 0.1.12
+ resolution: "path-to-regexp@npm:0.1.12"
+ checksum: 10c0/1c6ff10ca169b773f3bba943bbc6a07182e332464704572962d277b900aeee81ac6aa5d060ff9e01149636c30b1f63af6e69dd7786ba6e0ddb39d4dee1f0645b
languageName: node
linkType: hard
@@ -8806,13 +8958,6 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:~0.1.12":
- version: 0.1.13
- resolution: "path-to-regexp@npm:0.1.13"
- checksum: 10c0/1cae3921739c154a8926e136185a10c916f79a249b9072a5001b266d96e193860ca03867e8e8cc808b786862d750f427ed93686bc259355442c3407a62deab1a
- languageName: node
- linkType: hard
-
"pathe@npm:^1.1.2":
version: 1.1.2
resolution: "pathe@npm:1.1.2"
@@ -8860,9 +9005,9 @@ __metadata:
linkType: hard
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
- version: 2.3.2
- resolution: "picomatch@npm:2.3.2"
- checksum: 10c0/a554d1709e59be97d1acb9eaedbbc700a5c03dbd4579807baed95100b00420bc729335440ef15004ae2378984e2487a7c1cebd743cfdb72b6fa9ab69223c0d61
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
languageName: node
linkType: hard
@@ -8913,9 +9058,9 @@ __metadata:
linkType: hard
"pino-std-serializers@npm:^7.0.0":
- version: 7.1.0
- resolution: "pino-std-serializers@npm:7.1.0"
- checksum: 10c0/d158615aa93ebdeac2d3912ad4227a23ef78cf14229e886214771f581e96eff312257f2d6368c75b2fbf53e5024eda475d81305014f4ed1a6d5eeab9107f6ef0
+ version: 7.0.0
+ resolution: "pino-std-serializers@npm:7.0.0"
+ checksum: 10c0/73e694d542e8de94445a03a98396cf383306de41fd75ecc07085d57ed7a57896198508a0dec6eefad8d701044af21eb27253ccc352586a03cf0d4a0bd25b4133
languageName: node
linkType: hard
@@ -8999,7 +9144,7 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:^8.5.6, postcss@npm:^8.5.8":
+"postcss@npm:^8.5.6":
version: 8.5.10
resolution: "postcss@npm:8.5.10"
dependencies:
@@ -9010,6 +9155,17 @@ __metadata:
languageName: node
linkType: hard
+"postcss@npm:^8.5.8":
+ version: 8.5.8
+ resolution: "postcss@npm:8.5.8"
+ dependencies:
+ nanoid: "npm:^3.3.11"
+ picocolors: "npm:^1.1.1"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c
+ languageName: node
+ linkType: hard
+
"powershell-utils@npm:^0.1.0":
version: 0.1.0
resolution: "powershell-utils@npm:0.1.0"
@@ -9018,11 +9174,11 @@ __metadata:
linkType: hard
"prettier@npm:^3.6.2":
- version: 3.8.1
- resolution: "prettier@npm:3.8.1"
+ version: 3.6.2
+ resolution: "prettier@npm:3.6.2"
bin:
prettier: bin/prettier.cjs
- checksum: 10c0/33169b594009e48f570471271be7eac7cdcf88a209eed39ac3b8d6d78984039bfa9132f82b7e6ba3b06711f3bfe0222a62a1bfb87c43f50c25a83df1b78a2c42
+ checksum: 10c0/488cb2f2b99ec13da1e50074912870217c11edaddedeadc649b1244c749d15ba94e846423d062e2c4c9ae683e2d65f754de28889ba06e697ac4f988d44f45812
languageName: node
linkType: hard
@@ -9041,9 +9197,9 @@ __metadata:
linkType: hard
"proc-log@npm:^6.0.0":
- version: 6.1.0
- resolution: "proc-log@npm:6.1.0"
- checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82
+ version: 6.0.0
+ resolution: "proc-log@npm:6.0.0"
+ checksum: 10c0/40c5e2b4c55e395a3bd72e38cba9c26e58598a1f4844fa6a115716d5231a0919f46aa8e351147035d91583ad39a794593615078c948bc001fe3beb99276be776
languageName: node
linkType: hard
@@ -9126,12 +9282,12 @@ __metadata:
linkType: hard
"pump@npm:^3.0.0":
- version: 3.0.4
- resolution: "pump@npm:3.0.4"
+ version: 3.0.3
+ resolution: "pump@npm:3.0.3"
dependencies:
end-of-stream: "npm:^1.1.0"
once: "npm:^1.3.1"
- checksum: 10c0/2780e66b5471c19e3e3e1063b84f3f6a3a08367f24c5ed552f98cd5901e6ada27c7ad6495d4244f553fd03b01884a4561933064f053f47c8994d84fd352768ea
+ checksum: 10c0/ada5cdf1d813065bbc99aa2c393b8f6beee73b5de2890a8754c9f488d7323ffd2ca5f5a0943b48934e3fcbd97637d0337369c3c631aeb9614915db629f1c75c9
languageName: node
linkType: hard
@@ -9153,7 +9309,16 @@ __metadata:
languageName: node
linkType: hard
-"qs@npm:~6.14.0, qs@npm:~6.14.1":
+"qs@npm:6.13.0":
+ version: 6.13.0
+ resolution: "qs@npm:6.13.0"
+ dependencies:
+ side-channel: "npm:^1.0.6"
+ checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860
+ languageName: node
+ linkType: hard
+
+"qs@npm:~6.14.1":
version: 6.14.2
resolution: "qs@npm:6.14.2"
dependencies:
@@ -9190,15 +9355,15 @@ __metadata:
languageName: node
linkType: hard
-"raw-body@npm:~2.5.3":
- version: 2.5.3
- resolution: "raw-body@npm:2.5.3"
+"raw-body@npm:2.5.2":
+ version: 2.5.2
+ resolution: "raw-body@npm:2.5.2"
dependencies:
- bytes: "npm:~3.1.2"
- http-errors: "npm:~2.0.1"
- iconv-lite: "npm:~0.4.24"
- unpipe: "npm:~1.0.0"
- checksum: 10c0/449844344fc90547fb994383a494b83300e4f22199f146a79f68d78a199a8f2a923ea9fd29c3be979bfd50291a3884733619ffc15ba02a32e703b612f8d3f74a
+ bytes: "npm:3.1.2"
+ http-errors: "npm:2.0.0"
+ iconv-lite: "npm:0.4.24"
+ unpipe: "npm:1.0.0"
+ checksum: 10c0/b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4
languageName: node
linkType: hard
@@ -9756,34 +9921,31 @@ __metadata:
linkType: hard
"rollup@npm:^4.43.0":
- version: 4.60.1
- resolution: "rollup@npm:4.60.1"
- dependencies:
- "@rollup/rollup-android-arm-eabi": "npm:4.60.1"
- "@rollup/rollup-android-arm64": "npm:4.60.1"
- "@rollup/rollup-darwin-arm64": "npm:4.60.1"
- "@rollup/rollup-darwin-x64": "npm:4.60.1"
- "@rollup/rollup-freebsd-arm64": "npm:4.60.1"
- "@rollup/rollup-freebsd-x64": "npm:4.60.1"
- "@rollup/rollup-linux-arm-gnueabihf": "npm:4.60.1"
- "@rollup/rollup-linux-arm-musleabihf": "npm:4.60.1"
- "@rollup/rollup-linux-arm64-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-arm64-musl": "npm:4.60.1"
- "@rollup/rollup-linux-loong64-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-loong64-musl": "npm:4.60.1"
- "@rollup/rollup-linux-ppc64-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-ppc64-musl": "npm:4.60.1"
- "@rollup/rollup-linux-riscv64-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-riscv64-musl": "npm:4.60.1"
- "@rollup/rollup-linux-s390x-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-x64-gnu": "npm:4.60.1"
- "@rollup/rollup-linux-x64-musl": "npm:4.60.1"
- "@rollup/rollup-openbsd-x64": "npm:4.60.1"
- "@rollup/rollup-openharmony-arm64": "npm:4.60.1"
- "@rollup/rollup-win32-arm64-msvc": "npm:4.60.1"
- "@rollup/rollup-win32-ia32-msvc": "npm:4.60.1"
- "@rollup/rollup-win32-x64-gnu": "npm:4.60.1"
- "@rollup/rollup-win32-x64-msvc": "npm:4.60.1"
+ version: 4.53.3
+ resolution: "rollup@npm:4.53.3"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.53.3"
+ "@rollup/rollup-android-arm64": "npm:4.53.3"
+ "@rollup/rollup-darwin-arm64": "npm:4.53.3"
+ "@rollup/rollup-darwin-x64": "npm:4.53.3"
+ "@rollup/rollup-freebsd-arm64": "npm:4.53.3"
+ "@rollup/rollup-freebsd-x64": "npm:4.53.3"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.3"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.3"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.53.3"
+ "@rollup/rollup-linux-loong64-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-riscv64-musl": "npm:4.53.3"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.53.3"
+ "@rollup/rollup-linux-x64-musl": "npm:4.53.3"
+ "@rollup/rollup-openharmony-arm64": "npm:4.53.3"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.53.3"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.53.3"
+ "@rollup/rollup-win32-x64-gnu": "npm:4.53.3"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.53.3"
"@types/estree": "npm:1.0.8"
fsevents: "npm:~2.3.2"
dependenciesMeta:
@@ -9809,12 +9971,8 @@ __metadata:
optional: true
"@rollup/rollup-linux-loong64-gnu":
optional: true
- "@rollup/rollup-linux-loong64-musl":
- optional: true
"@rollup/rollup-linux-ppc64-gnu":
optional: true
- "@rollup/rollup-linux-ppc64-musl":
- optional: true
"@rollup/rollup-linux-riscv64-gnu":
optional: true
"@rollup/rollup-linux-riscv64-musl":
@@ -9825,8 +9983,6 @@ __metadata:
optional: true
"@rollup/rollup-linux-x64-musl":
optional: true
- "@rollup/rollup-openbsd-x64":
- optional: true
"@rollup/rollup-openharmony-arm64":
optional: true
"@rollup/rollup-win32-arm64-msvc":
@@ -9841,7 +9997,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: 10c0/48d3f2216b5533639b007e6756e2275c7f594e45adee21ce03674aa2e004406c661f8b86c7a0b471c9e889c6a9efbb29240ca0b7673c50e391406c490c309833
+ checksum: 10c0/a21305aac72013083bd0dec92162b0f7f24cacf57c876ca601ec76e892895952c9ea592c1c07f23b8c125f7979c2b17f7fb565e386d03ee4c1f0952ac4ab0d75
languageName: node
linkType: hard
@@ -9926,13 +10082,11 @@ __metadata:
linkType: hard
"safe-regex2@npm:^5.0.0":
- version: 5.1.0
- resolution: "safe-regex2@npm:5.1.0"
+ version: 5.0.0
+ resolution: "safe-regex2@npm:5.0.0"
dependencies:
ret: "npm:~0.5.0"
- bin:
- safe-regex2: bin/safe-regex2.js
- checksum: 10c0/9ee1e1c0336dbbf7a9cc182766d193371cff8adc4e390d9d709a5fb72fe0dc42500efc77eb5a266d8feb442ae3872a189021e73e7286420b4ad65db9896977b0
+ checksum: 10c0/83d5b1b60a5a97cb71a6e615518ec4a47761b3600aba389089be59a417498185250db2368080afc2f5e91237d68809c6c634b97a2e1cc8bd56a4c7eef2eeb6cf
languageName: node
linkType: hard
@@ -9990,59 +10144,59 @@ __metadata:
linkType: hard
"semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.6.0, semver@npm:^7.7.3":
- version: 7.7.4
- resolution: "semver@npm:7.7.4"
+ version: 7.7.3
+ resolution: "semver@npm:7.7.3"
bin:
semver: bin/semver.js
- checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
+ checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e
languageName: node
linkType: hard
-"send@npm:~0.19.0, send@npm:~0.19.1":
- version: 0.19.2
- resolution: "send@npm:0.19.2"
+"send@npm:0.19.0":
+ version: 0.19.0
+ resolution: "send@npm:0.19.0"
dependencies:
debug: "npm:2.6.9"
depd: "npm:2.0.0"
destroy: "npm:1.2.0"
- encodeurl: "npm:~2.0.0"
+ encodeurl: "npm:~1.0.2"
escape-html: "npm:~1.0.3"
etag: "npm:~1.8.1"
- fresh: "npm:~0.5.2"
- http-errors: "npm:~2.0.1"
+ fresh: "npm:0.5.2"
+ http-errors: "npm:2.0.0"
mime: "npm:1.6.0"
ms: "npm:2.1.3"
- on-finished: "npm:~2.4.1"
+ on-finished: "npm:2.4.1"
range-parser: "npm:~1.2.1"
- statuses: "npm:~2.0.2"
- checksum: 10c0/20c2389fe0fdf3fc499938cac598bc32272287e993c4960717381a10de8550028feadfb9076f959a3a3ebdea42e1f690e116f0d16468fa56b9fd41866d3dc267
+ statuses: "npm:2.0.1"
+ checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3
languageName: node
linkType: hard
"serve-index@npm:^1.9.1":
- version: 1.9.2
- resolution: "serve-index@npm:1.9.2"
+ version: 1.9.1
+ resolution: "serve-index@npm:1.9.1"
dependencies:
- accepts: "npm:~1.3.8"
+ accepts: "npm:~1.3.4"
batch: "npm:0.6.1"
debug: "npm:2.6.9"
escape-html: "npm:~1.0.3"
- http-errors: "npm:~1.8.0"
- mime-types: "npm:~2.1.35"
- parseurl: "npm:~1.3.3"
- checksum: 10c0/b4e48da75c9262cfcf6a4707748a33a127f6c3cd3a095782c22312c4915545b7695071fedc8f5717bae165e6e63053cd963847013b1f1e984213f07186f78a74
+ http-errors: "npm:~1.6.2"
+ mime-types: "npm:~2.1.17"
+ parseurl: "npm:~1.3.2"
+ checksum: 10c0/a666471a24196f74371edf2c3c7bcdd82adbac52f600804508754b5296c3567588bf694258b19e0cb23a567acfa20d9721bfdaed3286007b81f9741ada8a3a9c
languageName: node
linkType: hard
-"serve-static@npm:~1.16.2":
- version: 1.16.3
- resolution: "serve-static@npm:1.16.3"
+"serve-static@npm:1.16.2":
+ version: 1.16.2
+ resolution: "serve-static@npm:1.16.2"
dependencies:
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
parseurl: "npm:~1.3.3"
- send: "npm:~0.19.1"
- checksum: 10c0/36320397a073c71bedf58af48a4a100fe6d93f07459af4d6f08b9a7217c04ce2a4939e0effd842dc7bece93ffcd59eb52f58c4fff2a8e002dc29ae6b219cd42b
+ send: "npm:0.19.0"
+ checksum: 10c0/528fff6f5e12d0c5a391229ad893910709bc51b5705962b09404a1d813857578149b8815f35d3ee5752f44cd378d0f31669d4b1d7e2d11f41e08283d5134bd1f
languageName: node
linkType: hard
@@ -10090,6 +10244,13 @@ __metadata:
languageName: node
linkType: hard
+"setprototypeof@npm:1.1.0":
+ version: 1.1.0
+ resolution: "setprototypeof@npm:1.1.0"
+ checksum: 10c0/a77b20876689c6a89c3b42f0c3596a9cae02f90fc902570cbd97198e9e8240382086c9303ad043e88cee10f61eae19f1004e51d885395a1e9bf49f9ebed12872
+ languageName: node
+ linkType: hard
+
"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0":
version: 1.2.0
resolution: "setprototypeof@npm:1.2.0"
@@ -10232,7 +10393,7 @@ __metadata:
languageName: node
linkType: hard
-"side-channel@npm:^1.1.0":
+"side-channel@npm:^1.0.6, side-channel@npm:^1.1.0":
version: 1.1.0
resolution: "side-channel@npm:1.1.0"
dependencies:
@@ -10328,11 +10489,11 @@ __metadata:
linkType: hard
"sonic-boom@npm:^4.0.1":
- version: 4.2.1
- resolution: "sonic-boom@npm:4.2.1"
+ version: 4.2.0
+ resolution: "sonic-boom@npm:4.2.0"
dependencies:
atomic-sleep: "npm:^1.0.0"
- checksum: 10c0/f374e9c3dfe194d706d8ef8aed4e28bc10638f9952fd19bcbddf2cef05d53334ad9e9dca3e01e24e88dd88fb278c6b8c5b2ae5002494b289c4914aaea3d9eae9
+ checksum: 10c0/ae897e6c2cd6d3cb7cdcf608bc182393b19c61c9413a85ce33ffd25891485589f39bece0db1de24381d0a38fc03d08c9862ded0c60f184f1b852f51f97af9684
languageName: node
linkType: hard
@@ -10392,9 +10553,9 @@ __metadata:
linkType: hard
"spdx-license-ids@npm:^3.0.0":
- version: 3.0.23
- resolution: "spdx-license-ids@npm:3.0.23"
- checksum: 10c0/8495620f6f2a237749cce922ea2d593a66f7885c301b1a0f5542183e7041182f27f616a8f13345cefdea0c9b3e0899328e0aa8cec100cf4f3fac4bb3bd975515
+ version: 3.0.22
+ resolution: "spdx-license-ids@npm:3.0.22"
+ checksum: 10c0/4a85e44c2ccfc06eebe63239193f526508ebec1abc7cf7bca8ee43923755636234395447c2c87f40fb672cf580a9c8e684513a676bfb2da3d38a4983684bbb38
languageName: node
linkType: hard
@@ -10427,11 +10588,11 @@ __metadata:
linkType: hard
"ssri@npm:^13.0.0":
- version: 13.0.1
- resolution: "ssri@npm:13.0.1"
+ version: 13.0.0
+ resolution: "ssri@npm:13.0.0"
dependencies:
minipass: "npm:^7.0.3"
- checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a
+ checksum: 10c0/405f3a531cd98b013cecb355d63555dca42fd12c7bc6671738aaa9a82882ff41cdf0ef9a2b734ca4f9a760338f114c29d01d9238a65db3ccac27929bd6e6d4b2
languageName: node
linkType: hard
@@ -10442,14 +10603,21 @@ __metadata:
languageName: node
linkType: hard
-"statuses@npm:>= 1.5.0 < 2":
+"statuses@npm:2.0.1":
+ version: 2.0.1
+ resolution: "statuses@npm:2.0.1"
+ checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0
+ languageName: node
+ linkType: hard
+
+"statuses@npm:>= 1.4.0 < 2":
version: 1.5.0
resolution: "statuses@npm:1.5.0"
checksum: 10c0/e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940
languageName: node
linkType: hard
-"statuses@npm:~2.0.1, statuses@npm:~2.0.2":
+"statuses@npm:~2.0.2":
version: 2.0.2
resolution: "statuses@npm:2.0.2"
checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f
@@ -10714,19 +10882,26 @@ __metadata:
linkType: hard
"tabbable@npm:^6.0.0":
- version: 6.4.0
- resolution: "tabbable@npm:6.4.0"
- checksum: 10c0/d931427f4a96b801fd8801ba296a702119e06f70ad262fed8abc5271225c9f1ca51b89fdec4fb2f22e1d35acb3d2881db0a17cedc758272e9ecb540d00299d76
+ version: 6.3.0
+ resolution: "tabbable@npm:6.3.0"
+ checksum: 10c0/57ba019d29b5cfa0c862248883bcec0e6d29d8f156ba52a1f425e7cfeca4a0fc701ab8d035c4c86ddf74ecdbd0e9f454a88d9b55d924a51f444038e9cd14d7a0
languageName: node
linkType: hard
-"tailwindcss@npm:4.2.2, tailwindcss@npm:^4":
+"tailwindcss@npm:4.2.2":
version: 4.2.2
resolution: "tailwindcss@npm:4.2.2"
checksum: 10c0/6eae8a125c35d504ba6c518d26ec64fba694ff4a9ab9b9cd9883050128e0b7afdf491388c472d9bed2624664c1c7d4a133d19b653151a6b52e6ce6953168a857
languageName: node
linkType: hard
+"tailwindcss@npm:^4":
+ version: 4.1.17
+ resolution: "tailwindcss@npm:4.1.17"
+ checksum: 10c0/1fecf618ba9895e068e5a6d842b978f56a815bc849a28338cebbcb07b13df763715c2f8848def938403c73d59f08ffff33a4b83a977a9e38fa56adc60d1d56c8
+ languageName: node
+ linkType: hard
+
"tapable@npm:^2.3.0":
version: 2.3.2
resolution: "tapable@npm:2.3.2"
@@ -10734,16 +10909,16 @@ __metadata:
languageName: node
linkType: hard
-"tar@npm:^7.5.4":
- version: 7.5.13
- resolution: "tar@npm:7.5.13"
+"tar@npm:^7.5.2":
+ version: 7.5.7
+ resolution: "tar@npm:7.5.7"
dependencies:
"@isaacs/fs-minipass": "npm:^4.0.0"
chownr: "npm:^3.0.0"
minipass: "npm:^7.1.2"
minizlib: "npm:^3.1.0"
yallist: "npm:^5.0.0"
- checksum: 10c0/5c65b8084799bde7a791593a1c1a45d3d6ee98182e3700b24c247b7b8f8654df4191642abbdb07ff25043d45dcff35620827c3997b88ae6c12040f64bed5076b
+ checksum: 10c0/51f261afc437e1112c3e7919478d6176ea83f7f7727864d8c2cce10f0b03a631d1911644a567348c3063c45abdae39718ba97abb073d22aa3538b9a53ae1e31c
languageName: node
linkType: hard
@@ -10795,9 +10970,9 @@ __metadata:
linkType: hard
"tinyexec@npm:^1.0.2":
- version: 1.0.4
- resolution: "tinyexec@npm:1.0.4"
- checksum: 10c0/d4a5bbcf6bdb23527a4b74c4aa566f41432167112fe76f420ec7e3a90a3ecfd3a7d944383e2719fc3987b69400f7b928daf08700d145fb527c2e80ec01e198bd
+ version: 1.0.2
+ resolution: "tinyexec@npm:1.0.2"
+ checksum: 10c0/1261a8e34c9b539a9aae3b7f0bb5372045ff28ee1eba035a2a059e532198fe1a182ec61ac60fa0b4a4129f0c4c4b1d2d57355b5cb9aa2d17ac9454ecace502ee
languageName: node
linkType: hard
@@ -11122,10 +11297,10 @@ __metadata:
languageName: node
linkType: hard
-"undici-types@npm:~7.18.0":
- version: 7.18.2
- resolution: "undici-types@npm:7.18.2"
- checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d
+"undici-types@npm:~7.16.0":
+ version: 7.16.0
+ resolution: "undici-types@npm:7.16.0"
+ checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a
languageName: node
linkType: hard
@@ -11206,6 +11381,24 @@ __metadata:
languageName: node
linkType: hard
+"unique-filename@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unique-filename@npm:5.0.0"
+ dependencies:
+ unique-slug: "npm:^6.0.0"
+ checksum: 10c0/afb897e9cf4c2fb622ea716f7c2bb462001928fc5f437972213afdf1cc32101a230c0f1e9d96fc91ee5185eca0f2feb34127145874975f347be52eb91d6ccc2c
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "unique-slug@npm:6.0.0"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/da7ade4cb04eb33ad0499861f82fe95ce9c7c878b7139dc54d140ecfb6a6541c18a5c8dac16188b8b379fe62c0c1f1b710814baac910cde5f4fec06212126c6a
+ languageName: node
+ linkType: hard
+
"unist-util-inspect@npm:^8.0.0":
version: 8.1.0
resolution: "unist-util-inspect@npm:8.1.0"
@@ -11262,13 +11455,13 @@ __metadata:
linkType: hard
"unist-util-visit@npm:^5.0.0":
- version: 5.1.0
- resolution: "unist-util-visit@npm:5.1.0"
+ version: 5.0.0
+ resolution: "unist-util-visit@npm:5.0.0"
dependencies:
"@types/unist": "npm:^3.0.0"
unist-util-is: "npm:^6.0.0"
unist-util-visit-parents: "npm:^6.0.0"
- checksum: 10c0/a56e1bbbf63fcb55abe379e660b9a3367787e8be1e2473bdb7e86cfa6f32b6c1fa0092432d7040b8a30b2fc674bbbe024ffe6d03c3d6bf4839b064f584463a4e
+ checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5
languageName: node
linkType: hard
@@ -11279,7 +11472,7 @@ __metadata:
languageName: node
linkType: hard
-"unpipe@npm:~1.0.0":
+"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
version: 1.0.0
resolution: "unpipe@npm:1.0.0"
checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c
@@ -11293,9 +11486,9 @@ __metadata:
languageName: node
linkType: hard
-"update-browserslist-db@npm:^1.2.3":
- version: 1.2.3
- resolution: "update-browserslist-db@npm:1.2.3"
+"update-browserslist-db@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "update-browserslist-db@npm:1.1.4"
dependencies:
escalade: "npm:^3.2.0"
picocolors: "npm:^1.1.1"
@@ -11303,7 +11496,7 @@ __metadata:
browserslist: ">= 4.21.0"
bin:
update-browserslist-db: cli.js
- checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec
+ checksum: 10c0/db0c9aaecf1258a6acda5e937fc27a7996ccca7a7580a1b4aa8bba6a9b0e283e5e65c49ebbd74ec29288ef083f1b88d4da13e3d4d326c1e5fc55bf72d7390702
languageName: node
linkType: hard
@@ -11517,10 +11710,10 @@ __metadata:
linkType: hard
"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0":
- version: 7.3.2
- resolution: "vite@npm:7.3.2"
+ version: 7.2.4
+ resolution: "vite@npm:7.2.4"
dependencies:
- esbuild: "npm:^0.27.0"
+ esbuild: "npm:^0.25.0"
fdir: "npm:^6.5.0"
fsevents: "npm:~2.3.3"
picomatch: "npm:^4.0.3"
@@ -11567,13 +11760,13 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 10c0/74be36907e208916f18bfec81c8eba18b869f0a170f1ece0a4dcb14874d0f0e7c022fb6c2ad896e3ee6c973fe88f53ac23b4078879ada340d8b263260868b8d4
+ checksum: 10c0/26aa0cad01d6e00f17c837b2a0587ab52f6bd0d0e64606b4220cfc58fa5fa76a4095ef3ea27c886bea542a346363912c4fad9f9462ef1e6757262fedfd5196b2
languageName: node
linkType: hard
"vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0, vite@npm:^8.0.3":
- version: 8.0.5
- resolution: "vite@npm:8.0.5"
+ version: 8.0.3
+ resolution: "vite@npm:8.0.3"
dependencies:
fsevents: "npm:~2.3.3"
lightningcss: "npm:^1.32.0"
@@ -11584,7 +11777,7 @@ __metadata:
peerDependencies:
"@types/node": ^20.19.0 || >=22.12.0
"@vitejs/devtools": ^0.1.0
- esbuild: ^0.27.0 || ^0.28.0
+ esbuild: ^0.27.0
jiti: ">=1.21.0"
less: ^4.0.0
sass: ^1.70.0
@@ -11624,7 +11817,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 10c0/bfc22896b2661753c01c398a058f1859bdbd3ebe55f3d8505ab629b39e5f68790c0a6f55f8644b6692b0b9b8e210f698082ef9f4fd0d76509f4a46762fbfbba2
+ checksum: 10c0/bed9520358080393a02fe22565b3309b4b3b8f916afe4c97577528f3efb05c1bf4b29f7b552179bc5b3938629e50fbd316231727457411dbc96648fa5c9d14bf
languageName: node
linkType: hard
@@ -11811,8 +12004,8 @@ __metadata:
linkType: hard
"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18, which-typed-array@npm:^1.1.19":
- version: 1.1.20
- resolution: "which-typed-array@npm:1.1.20"
+ version: 1.1.19
+ resolution: "which-typed-array@npm:1.1.19"
dependencies:
available-typed-arrays: "npm:^1.0.7"
call-bind: "npm:^1.0.8"
@@ -11821,7 +12014,7 @@ __metadata:
get-proto: "npm:^1.0.1"
gopd: "npm:^1.2.0"
has-tostringtag: "npm:^1.0.2"
- checksum: 10c0/16fcdada95c8afb821cd1117f0ab50b4d8551677ac08187f21d4e444530913c9ffd2dac634f0c1183345f96344b69280f40f9a8bc52164ef409e555567c2604b
+ checksum: 10c0/702b5dc878addafe6c6300c3d0af5983b175c75fcb4f2a72dfc3dd38d93cf9e89581e4b29c854b16ea37e50a7d7fca5ae42ece5c273d8060dcd603b2404bbb3f
languageName: node
linkType: hard
@@ -11848,13 +12041,13 @@ __metadata:
linkType: hard
"which@npm:^6.0.0":
- version: 6.0.1
- resolution: "which@npm:6.0.1"
+ version: 6.0.0
+ resolution: "which@npm:6.0.0"
dependencies:
- isexe: "npm:^4.0.0"
+ isexe: "npm:^3.1.1"
bin:
node-which: bin/which.js
- checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5
+ checksum: 10c0/fe9d6463fe44a76232bb6e3b3181922c87510a5b250a98f1e43a69c99c079b3f42ddeca7e03d3e5f2241bf2d334f5a7657cfa868b97c109f3870625842f4cc15
languageName: node
linkType: hard
@@ -12074,11 +12267,11 @@ __metadata:
linkType: hard
"yaml@npm:^2.0.0":
- version: 2.8.3
- resolution: "yaml@npm:2.8.3"
+ version: 2.8.1
+ resolution: "yaml@npm:2.8.1"
bin:
yaml: bin.mjs
- checksum: 10c0/ddff0e11c1b467728d7eb4633db61c5f5de3d8e9373cf84d08fb0cdee03e1f58f02b9f1c51a4a8a865751695addbd465a77f73f1079be91fe5493b29c305fd77
+ checksum: 10c0/7c587be00d9303d2ae1566e03bc5bc7fe978ba0d9bf39cc418c3139d37929dfcb93a230d9749f2cb578b6aa5d9ebebc322415e4b653cb83acd8bc0bc321707f3
languageName: node
linkType: hard