diff --git a/enclave-manager/web/packages/app/public/noLogo.png b/enclave-manager/web/packages/app/public/noLogo.png new file mode 100644 index 0000000000..249357a8a4 Binary files /dev/null and b/enclave-manager/web/packages/app/public/noLogo.png differ diff --git a/enclave-manager/web/packages/app/src/emui/catalog/Catalog.tsx b/enclave-manager/web/packages/app/src/emui/catalog/Catalog.tsx index efab70f957..257b0b89df 100644 --- a/enclave-manager/web/packages/app/src/emui/catalog/Catalog.tsx +++ b/enclave-manager/web/packages/app/src/emui/catalog/Catalog.tsx @@ -1,18 +1,23 @@ import { SmallCloseIcon } from "@chakra-ui/icons"; import { Box, + Button, + ButtonGroup, Card, CardBody, - CardHeader, + Checkbox, Flex, Heading, Icon, - IconButton, Input, InputGroup, InputLeftElement, InputRightElement, - Text, + Menu, + MenuButton, + MenuDivider, + MenuItem, + MenuList, } from "@chakra-ui/react"; import { GetPackagesResponse, KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; import { @@ -21,20 +26,32 @@ import { isDefined, KurtosisAlert, KurtosisPackageCardGrid, + KurtosisPackageCardRow, + maybeArrayToArray, PageTitle, useKeyboardAction, useSavedPackages, } from "kurtosis-ui-components"; -import { useMemo, useRef, useState } from "react"; +import { upperFirst } from "lodash"; +import { useEffect, useMemo, useRef, useState } from "react"; +import { BiSortAlt2 } from "react-icons/bi"; import { FiSearch } from "react-icons/fi"; +import { HiStar } from "react-icons/hi"; +import { IoFilterSharp, IoPlay } from "react-icons/io5"; import { MdBookmarkAdded } from "react-icons/md"; +import { useSearchParams } from "react-router-dom"; import { ConfigureEnclaveModal } from "../enclaves/components/modals/ConfigureEnclaveModal"; import { EnclavesContextProvider } from "../enclaves/EnclavesContext"; import { useCatalogContext } from "./CatalogContext"; +type SearchState = { + term: string; + filter: ("saved" | "featured")[]; // TODO: Implement 'featured' + sortBy?: "stars" | "runs"; +}; + export const Catalog = () => { const { catalog } = useCatalogContext(); - const { savedPackages } = useSavedPackages(); if (catalog.isErr) { return ( @@ -44,23 +61,27 @@ export const Catalog = () => { ); } - return ; + return ; }; type CatalogImplProps = { catalog: GetPackagesResponse; - savedPackages: KurtosisPackage[]; }; -const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { +const CatalogImpl = ({ catalog }: CatalogImplProps) => { const searchRef = useRef(null); - const [searchTerm, setSearchTerm] = useState(""); + const [searchParams, setUrlSearchParams] = useSearchParams(); + const initialTerm = searchParams.get("t") || ""; + const initialFilter = maybeArrayToArray(searchParams.get("f")).filter(isDefined); + const initialSortBy = searchParams.get("s") || undefined; + + const [searchState, setSearchState] = useState({ + term: initialTerm, + filter: initialFilter as ("saved" | "featured")[], + sortBy: initialSortBy as "stars" | "runs", + }); const [configuringPackage, setConfiguringPackage] = useState(); - const isSearching = searchTerm.length > 0; - const filteredCatalog = useMemo( - () => catalog.packages.filter((kurtosisPackage) => kurtosisPackage.name.toLowerCase().indexOf(searchTerm) > -1), - [searchTerm, catalog], - ); + const isSearching = searchState.term.length > 0 || searchState.filter.length > 0 || isDefined(searchState.sortBy); const handlePackageRun = (kurtosisPackage: KurtosisPackage) => { setConfiguringPackage(kurtosisPackage); @@ -76,7 +97,7 @@ const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { }, escape: () => { if (isDefined(searchRef.current) && searchRef.current === document.activeElement) { - setSearchTerm(""); + setSearchState((searchTerm) => ({ ...searchTerm, term: "" })); } }, }), @@ -84,6 +105,21 @@ const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { ), ); + useEffect(() => { + const params = new URLSearchParams(); + params.set("t", searchState.term); + searchState.filter.forEach((f) => params.set("f", f)); + if (isDefined(searchState.sortBy)) { + params.set("s", searchState.sortBy); + } + const currentParts = window.location.href.split("?"); + if (currentParts.length > 1) { + setUrlSearchParams(params, { replace: true }); + } else { + setUrlSearchParams(params); + } + }, [searchState, setUrlSearchParams]); + return ( @@ -97,20 +133,21 @@ const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { setSearchTerm(e.target.value)} + onChange={(e) => setSearchState((searchTerm) => ({ ...searchTerm, term: e.target.value }))} placeholder={"Search"} /> - + {isSearching ? ( - } - onClick={() => setSearchTerm("")} - /> + size={"xs"} + rightIcon={} + onClick={() => setSearchState((searchTerm) => ({ filter: [], term: "" }))} + > + Clear + ) : ( )} @@ -118,40 +155,19 @@ const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { {isSearching && ( - <> - - {filteredCatalog.length} Matches - - - + )} {!isSearching && ( - <> - {savedPackages.length > 0 && ( - - - - - Saved - - - - - - - )} - - All - - - + )} {configuringPackage && ( @@ -166,3 +182,184 @@ const CatalogImpl = ({ catalog, savedPackages }: CatalogImplProps) => { ); }; + +type CatalogSearchResultsProps = { + catalog: GetPackagesResponse; + searchState: SearchState; + onSearchStateChanged: (updater: (oldState: SearchState) => SearchState) => void; + onPackageRunClicked: (kurtosisPackage: KurtosisPackage) => void; +}; + +const CatalogSearchResults = ({ + catalog, + searchState, + onSearchStateChanged, + onPackageRunClicked, +}: CatalogSearchResultsProps) => { + const { savedPackages } = useSavedPackages(); + + const filteredCatalog = useMemo( + () => + catalog.packages + .filter((kurtosisPackage) => kurtosisPackage.name.toLowerCase().indexOf(searchState.term.toLowerCase()) > -1) + .filter((kurtosisPackage) => { + if (searchState.filter.length === 0) { + return true; + } + if ( + searchState.filter.indexOf("saved") >= 0 && + savedPackages.some((savedKurtosisPackage) => savedKurtosisPackage.name === kurtosisPackage.name) + ) { + return true; + } + // TODO: Implement 'featured' filtering + return false; + }) + .sort((a, b) => { + if (searchState.sortBy === "stars") { + return a.stars > b.stars ? -1 : a.stars === b.stars ? 0 : 1; + } + if (searchState.sortBy === "runs") { + return b.runCount - a.runCount; + } + return 0; + }), + [searchState, catalog, savedPackages], + ); + + const handleFilterToggle = (filter: "saved" | "featured") => () => { + onSearchStateChanged((searchTerm) => ({ + ...searchTerm, + filter: + searchTerm.filter.indexOf(filter) >= 0 + ? searchTerm.filter.filter((searchFilter) => searchFilter !== filter) + : [...searchTerm.filter, filter], + })); + }; + + return ( + + + + {filteredCatalog.length} Matches + + + + } + variant={searchState.filter.length > 0 ? "activeFilterControl" : "ghost"} + colorScheme={searchState.filter.length > 0 ? "kurtosisGreen" : "ghost"} + > + {searchState.filter.length > 0 ? searchState.filter.map((v) => upperFirst(v)).join(", ") : "Filter"} + + + + + = 0}> + Saved + + + + + onSearchStateChanged((searchTerm) => ({ ...searchTerm, filter: [] }))}> + Clear + + + + + } + variant={isDefined(searchState.sortBy) ? "activeFilterControl" : "ghost"} + colorScheme={isDefined(searchState.sortBy) ? "kurtosisGreen" : "ghost"} + > + {isDefined(searchState.sortBy) ? `Sorted by ${searchState.sortBy}` : "Sort"} + + + } + onClick={() => onSearchStateChanged((searchState) => ({ ...searchState, sortBy: "stars" }))} + > + Stars + + } + onClick={() => onSearchStateChanged((searchState) => ({ ...searchState, sortBy: "runs" }))} + > + Run Count + + + onSearchStateChanged((searchState) => ({ ...searchState, sortBy: undefined }))}> + Clear + + + + + + + + ); +}; + +type CatalogDefaultViewProps = { + catalog: GetPackagesResponse; + onSearchStateChanged: (updater: (oldState: SearchState) => SearchState) => void; + onPackageRunClicked: (kurtosisPackage: KurtosisPackage) => void; +}; + +const CatalogDefaultView = ({ catalog, onPackageRunClicked, onSearchStateChanged }: CatalogDefaultViewProps) => { + const { savedPackages } = useSavedPackages(); + + const mostStarredPackages = useMemo( + () => [...catalog.packages].sort((a, b) => (a.stars > b.stars ? -1 : a.stars === b.stars ? 0 : 1)).slice(0, 10), + [catalog], + ); + const mostRanPackages = useMemo( + () => + [...catalog.packages] + .sort((a, b) => (a.runCount > b.runCount ? -1 : a.runCount === b.runCount ? 0 : 1)) + .slice(0, 10), + [catalog], + ); + + return ( + <> + {savedPackages.length > 0 && ( + + + + } + packages={savedPackages} + onPackageRunClicked={onPackageRunClicked} + onSeeAllClicked={() => onSearchStateChanged((searchTerm) => ({ ...searchTerm, filter: ["saved"] }))} + /> + + + + )} + + onSearchStateChanged((searchState) => ({ ...searchState, sortBy: "stars" }))} + /> + + + onSearchStateChanged((searchState) => ({ ...searchState, sortBy: "runs" }))} + /> + + + All + + + + ); +}; diff --git a/enclave-manager/web/packages/app/src/emui/catalog/package/Package.tsx b/enclave-manager/web/packages/app/src/emui/catalog/package/Package.tsx index 0d38de8b0c..409cc00a0a 100644 --- a/enclave-manager/web/packages/app/src/emui/catalog/package/Package.tsx +++ b/enclave-manager/web/packages/app/src/emui/catalog/package/Package.tsx @@ -1,9 +1,8 @@ -import { Box, Flex, Icon, Image, Input, InputGroup, InputRightElement, Text } from "@chakra-ui/react"; +import { Box, Flex, Icon, Input, InputGroup, InputRightElement, Text } from "@chakra-ui/react"; import { DateTime } from "luxon"; import { useState } from "react"; import { IoPlay, IoStar } from "react-icons/io5"; import { useParams } from "react-router-dom"; -import { useKurtosisClient } from "../../../client/enclaveManager/KurtosisClientContext"; import { KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; import { @@ -13,6 +12,7 @@ import { isDefined, KurtosisAlert, KurtosisMarkdown, + PackageLogo, PackageSourceButton, readablePackageName, RunKurtosisPackageButton, @@ -52,7 +52,7 @@ const PackageImpl = ({ kurtosisPackage }: PackageImplProps) => { - + {kurtosisPackage.description} @@ -64,8 +64,14 @@ const PackageImpl = ({ kurtosisPackage }: PackageImplProps) => { size={"lg"} onClick={() => setShowConfigurePackage(true)} /> - - + + { > View on Github - - + + @@ -96,7 +108,7 @@ const PackageImpl = ({ kurtosisPackage }: PackageImplProps) => { {kurtosisPackage.stars.toString()} - + @@ -144,18 +156,9 @@ const PackageImpl = ({ kurtosisPackage }: PackageImplProps) => { }; const PackageHeader = ({ kurtosisPackage }: PackageImplProps) => { - const client = useKurtosisClient(); - return ( - + @@ -166,7 +169,7 @@ const PackageHeader = ({ kurtosisPackage }: PackageImplProps) => { - + diff --git a/enclave-manager/web/packages/app/src/emui/enclaves/enclave/artifact/Artifact.tsx b/enclave-manager/web/packages/app/src/emui/enclaves/enclave/artifact/Artifact.tsx index 716eea61be..b331203eef 100644 --- a/enclave-manager/web/packages/app/src/emui/enclaves/enclave/artifact/Artifact.tsx +++ b/enclave-manager/web/packages/app/src/emui/enclaves/enclave/artifact/Artifact.tsx @@ -136,7 +136,7 @@ const ArtifactImpl = ({ enclave, artifactName, files }: ArtifactImplProps) => { return ( - + + - {children} - + ); diff --git a/enclave-manager/web/packages/components/src/KurtosisThemeProvider.tsx b/enclave-manager/web/packages/components/src/KurtosisThemeProvider.tsx index 9cd8dcbb5a..224e88ecf4 100644 --- a/enclave-manager/web/packages/components/src/KurtosisThemeProvider.tsx +++ b/enclave-manager/web/packages/components/src/KurtosisThemeProvider.tsx @@ -8,6 +8,7 @@ import { useColorMode, } from "@chakra-ui/react"; import type { ChakraProviderProps } from "@chakra-ui/react/dist/chakra-provider"; +import { cssVar } from "@chakra-ui/styled-system"; import { mode } from "@chakra-ui/theme-tools"; import { PropsWithChildren, useEffect } from "react"; import Fonts from "./theme/Fonts"; @@ -36,8 +37,7 @@ const theme = extendTheme({ }, colors: { kurtosisGreen: { - 50: "#00371E", - 100: "#005e11", + 100: "#18371E", 200: "#008c19", 300: "#00bb22", 400: "#00C223", // The true green @@ -106,16 +106,13 @@ const theme = extendTheme({ color: `${props.colorScheme}.400`, borderColor: "gray.300", }), - solidOutline: (props: StyleFunctionProps) => { - const outline = theme.components.Button.variants!.outline(props); - return { - ...outline, - _hover: { bg: `${props.colorScheme}.400`, color: "gray.900" }, - _active: { bg: `${props.colorScheme}.400`, color: "gray.900" }, - color: `${props.colorScheme}.400`, - borderColor: `${props.colorScheme}.400`, - }; - }, + activeFilterControl: (props: StyleFunctionProps) => ({ + _hover: { borderColor: `${props.colorScheme}.200` }, + borderColor: `${props.colorScheme}.400`, + borderWidth: "1px", + bg: `${props.colorScheme}.100`, + color: `${props.colorScheme}.400`, + }), kurtosisGroupOutline: (props: StyleFunctionProps) => { const outline = theme.components.Button.variants!.outline(props); return { @@ -137,11 +134,18 @@ const theme = extendTheme({ }; }, solid: defineStyle((props) => ({ - _hover: { bg: "gray.600" }, - _active: { bg: "gray.600" }, - color: `${props.colorScheme}.400`, - bg: "gray.700", + color: `white`, })), + savedSolid: (props: StyleFunctionProps) => { + const solid = theme.components.Button.variants!.solid(props); + return { + ...solid, + _hover: { bg: "gray.600" }, + _active: { bg: "gray.600" }, + bg: "gray.700", + color: `${props.colorScheme}.400`, + }; + }, ghost: defineStyle((props) => ({ _hover: { bg: "gray.650" }, color: props.colorScheme === "gray" ? undefined : `${props.colorScheme}.400`, @@ -200,10 +204,17 @@ const theme = extendTheme({ }, }, Card: { + baseStyle: { + container: { [cssVar("card-bg").variable]: "colors.gray.850" }, + }, variants: { + elevated: { + container: { + _dark: { [cssVar("card-bg").variable]: "colors.gray.850" }, + }, + }, valueCard: { container: { - bg: "gray.850", borderRadius: "8px", padding: "16px", gap: "16px", @@ -225,6 +236,7 @@ const theme = extendTheme({ borderStyle: "solid", borderWidth: "1px", borderRadius: "6px", + overflow: "hidden", }, header: { bg: "gray.850", @@ -267,7 +279,14 @@ const theme = extendTheme({ baseStyle: { list: { minW: "unset", + padding: "4px", + boxShadow: + "0px 11.25px 30px 0px rgba(0, 0, 0, 0.40), 0px 3.75px 7.5px 0px rgba(0, 0, 0, 0.20), 0px 0px 0px 0.75px rgba(0, 0, 0, 0.10)", + }, + item: { + borderRadius: "6px", }, + icon: { color: "gray.400", "font-size": "18px !important" }, }, }, Popover: { diff --git a/enclave-manager/web/packages/components/src/PackageSourceButton.tsx b/enclave-manager/web/packages/components/src/PackageSourceButton.tsx index b548fea041..a2e44ec476 100644 --- a/enclave-manager/web/packages/components/src/PackageSourceButton.tsx +++ b/enclave-manager/web/packages/components/src/PackageSourceButton.tsx @@ -35,12 +35,7 @@ export const PackageSourceButton = ({ source, children, ...buttonProps }: Enclav button = ( - diff --git a/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCard.tsx b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCard.tsx index 764374f857..86a481710a 100644 --- a/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCard.tsx +++ b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCard.tsx @@ -1,8 +1,10 @@ -import { Box, Flex, Icon, Image, Text } from "@chakra-ui/react"; +import { Box, Flex, Icon, Text, Tooltip } from "@chakra-ui/react"; import { KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; import { IoPlay, IoStar } from "react-icons/io5"; -import { Link, useHref } from "react-router-dom"; +import { Link } from "react-router-dom"; +import { numberSummary } from "../utils"; import { readablePackageName } from "./utils"; +import { PackageLogo } from "./widgets/PackageLogo"; import { RunKurtosisPackageButton } from "./widgets/RunKurtosisPackageButton"; import { SaveKurtosisPackageButton } from "./widgets/SaveKurtosisPackageButton"; @@ -12,13 +14,13 @@ type KurtosisPackageCardProps = { }; export const KurtosisPackageCard = ({ kurtosisPackage, onRunClick }: KurtosisPackageCardProps) => { - const logoHref = useHref("/logo.png"); - return ( - - + + + + - + {readablePackageName(kurtosisPackage.name)} - div": { flexDirection: "column", justifyContent: "flex-end", height: "100%" }, - }, - }} - > - - - {kurtosisPackage.repositoryMetadata?.owner.replaceAll("-", " ") || "Unknown owner"} - - - - - {kurtosisPackage.stars.toString()} - - - - {kurtosisPackage.runCount.toString()} - + + {kurtosisPackage.repositoryMetadata?.owner.replaceAll("-", " ") || "Unknown owner"} + + + + + + {numberSummary(Number(kurtosisPackage.stars))} + + + + + + {numberSummary(kurtosisPackage.runCount)} - - + + - diff --git a/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardGrid.tsx b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardGrid.tsx index 9d9a08afe5..0bb454c52d 100644 --- a/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardGrid.tsx +++ b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardGrid.tsx @@ -1,30 +1,22 @@ -import { Grid, GridItem } from "@chakra-ui/react"; +import { Flex } from "@chakra-ui/react"; import { KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; import { memo } from "react"; import { KurtosisPackageCard } from "./KurtosisPackageCard"; type KurtosisPackageCardGridProps = { packages: KurtosisPackage[]; - onPackageClicked?: (kurtosisPackage: KurtosisPackage) => void; onPackageRunClicked: (kurtosisPackage: KurtosisPackage) => void; }; -export const KurtosisPackageCardGrid = memo( - ({ packages, onPackageClicked, onPackageRunClicked }: KurtosisPackageCardGridProps) => { - return ( - - {packages.map((kurtosisPackage) => ( - onPackageClicked(kurtosisPackage) : undefined} - > - onPackageRunClicked(kurtosisPackage)} - /> - - ))} - - ); - }, -); +export const KurtosisPackageCardGrid = memo(({ packages, onPackageRunClicked }: KurtosisPackageCardGridProps) => { + return ( + + {packages.map((kurtosisPackage) => ( + onPackageRunClicked(kurtosisPackage)} + /> + ))} + + ); +}); diff --git a/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardRow.tsx b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardRow.tsx new file mode 100644 index 0000000000..e7250bb625 --- /dev/null +++ b/enclave-manager/web/packages/components/src/catalog/KurtosisPackageCardRow.tsx @@ -0,0 +1,99 @@ +import { Button, ButtonGroup, Flex, IconButton, Text } from "@chakra-ui/react"; +import { KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; +import { memo, ReactElement, useEffect, useRef, useState } from "react"; +import { MdArrowBackIosNew, MdArrowForwardIos } from "react-icons/md"; +import { isDefined } from "../utils"; +import { KurtosisPackageCard } from "./KurtosisPackageCard"; + +type KurtosisPackageCardRowProps = { + title: string; + icon?: ReactElement; + packages: KurtosisPackage[]; + onSeeAllClicked?: () => void; + onPackageRunClicked: (kurtosisPackage: KurtosisPackage) => void; +}; + +export const KurtosisPackageCardRow = memo( + ({ packages, onSeeAllClicked, onPackageRunClicked, title, icon }: KurtosisPackageCardRowProps) => { + const flexRef = useRef(null); + const [scrollPosition, setScrollPosition] = useState<"start" | "mid" | "end" | "not-scrollable">("start"); + + const handleScrollLeft = () => { + if (isDefined(flexRef.current)) { + flexRef.current.scrollBy({ left: -200, top: 0, behavior: "smooth" }); + } + }; + const handleScrollRight = () => { + if (isDefined(flexRef.current)) { + flexRef.current.scrollBy({ left: 200, top: 0, behavior: "smooth" }); + } + }; + + useEffect(() => { + if (isDefined(flexRef.current)) { + const updateScrollPosition = () => { + if (flexRef.current) { + if (flexRef.current.scrollWidth === flexRef.current.clientWidth) { + setScrollPosition("not-scrollable"); + } else if (flexRef.current.scrollLeft <= 0) { + setScrollPosition("start"); + } else if (flexRef.current.scrollLeft >= flexRef.current.scrollWidth - flexRef.current.clientWidth) { + setScrollPosition("end"); + } else { + setScrollPosition("mid"); + } + } + }; + + window.addEventListener("resize", updateScrollPosition); + flexRef.current.addEventListener("scroll", updateScrollPosition); + return () => { + if (isDefined(flexRef.current)) { + window.removeEventListener("resize", updateScrollPosition); + flexRef.current.removeEventListener("scroll", updateScrollPosition); + } + }; + } + }, [flexRef.current]); + + return ( + + + + {icon} + {title} + + + {isDefined(onSeeAllClicked) && ( + + )} + + } + isDisabled={scrollPosition === "start" || scrollPosition === "not-scrollable"} + /> + } + isDisabled={scrollPosition === "end" || scrollPosition === "not-scrollable"} + /> + + + + + {packages.map((kurtosisPackage) => ( + onPackageRunClicked(kurtosisPackage)} + /> + ))} + + + ); + }, +); diff --git a/enclave-manager/web/packages/components/src/catalog/index.ts b/enclave-manager/web/packages/components/src/catalog/index.ts index a0c3b4d2f9..1432dc3435 100644 --- a/enclave-manager/web/packages/components/src/catalog/index.ts +++ b/enclave-manager/web/packages/components/src/catalog/index.ts @@ -1,6 +1,8 @@ export * from "./KurtosisPackageCard"; export * from "./KurtosisPackageCardGrid"; +export * from "./KurtosisPackageCardRow"; export * from "./SavedPackages"; export * from "./utils"; +export * from "./widgets/PackageLogo"; export * from "./widgets/RunKurtosisPackageButton"; export * from "./widgets/SaveKurtosisPackageButton"; diff --git a/enclave-manager/web/packages/components/src/catalog/widgets/PackageLogo.tsx b/enclave-manager/web/packages/components/src/catalog/widgets/PackageLogo.tsx new file mode 100644 index 0000000000..bde6078c1b --- /dev/null +++ b/enclave-manager/web/packages/components/src/catalog/widgets/PackageLogo.tsx @@ -0,0 +1,25 @@ +import { Image, ImageProps } from "@chakra-ui/react"; +import { KurtosisPackage } from "kurtosis-cloud-indexer-sdk"; +import { useHref } from "react-router-dom"; +import { isDefined } from "../../utils"; + +type PackageLogoProps = ImageProps & { + kurtosisPackage: KurtosisPackage; +}; + +export const PackageLogo = ({ kurtosisPackage, ...imageProps }: PackageLogoProps) => { + const noLogoHref = useHref("/noLogo.png"); + const kurtosisLogoHref = useHref("/logo.png"); + + const hasLogo = isDefined(kurtosisPackage.iconUrl) && kurtosisPackage.iconUrl !== ""; + const isKurtosisPackage = kurtosisPackage.repositoryMetadata?.owner === "kurtosis-tech"; + + return ( + + ); +}; diff --git a/enclave-manager/web/packages/components/src/catalog/widgets/RunKurtosisPackageButton.tsx b/enclave-manager/web/packages/components/src/catalog/widgets/RunKurtosisPackageButton.tsx index b674ce6ab1..8266ee4bfd 100644 --- a/enclave-manager/web/packages/components/src/catalog/widgets/RunKurtosisPackageButton.tsx +++ b/enclave-manager/web/packages/components/src/catalog/widgets/RunKurtosisPackageButton.tsx @@ -11,7 +11,7 @@ export const RunKurtosisPackageButton = ({ kurtosisPackage, ...buttonProps }: Ru return ( - ); + ({ + isPackageSaved, + onClick, + isIconButton, + ...buttonProps + }: SaveKurtosisPackageButtonMemoProps) => { + if (isIconButton) { + return ( + } + size={"xs"} + variant={"solid"} + colorScheme={isPackageSaved ? "kurtosisGreen" : "darkBlue"} + onClick={onClick} + {...(buttonProps as IconButtonProps)} + > + {isPackageSaved ? "Saved" : "Save"} + + ); + } else { + return ( + + ); + } }, ); diff --git a/enclave-manager/web/packages/components/src/theme/Fonts.tsx b/enclave-manager/web/packages/components/src/theme/Fonts.tsx index cfe5b28ada..194bfb40d4 100644 --- a/enclave-manager/web/packages/components/src/theme/Fonts.tsx +++ b/enclave-manager/web/packages/components/src/theme/Fonts.tsx @@ -2,7 +2,10 @@ import { Global } from "@emotion/react"; const Fonts = () => ( ); diff --git a/enclave-manager/web/packages/components/src/utils/index.ts b/enclave-manager/web/packages/components/src/utils/index.ts index 23c53075eb..5c62c028ac 100644 --- a/enclave-manager/web/packages/components/src/utils/index.ts +++ b/enclave-manager/web/packages/components/src/utils/index.ts @@ -64,6 +64,23 @@ export function stripAnsi(input: string): string { return input.replace(ansiRegex, ""); } +export const numberSummary = (val: number) => { + if (val < 1000) { + return `${val}`; + } + if (val < 10000) { + return `${(val / 1000).toFixed(1)}k`; + } + if (val < 1000000) { + return `${Math.round(val / 1000)}k`; + } + return `${Math.round(val / 1000000).toFixed(1)}m`; +}; + +export function maybeArrayToArray(maybeArray: T | T[]): T[] { + return Array.isArray(maybeArray) ? maybeArray : [maybeArray]; +} + export function range(until: number): number[]; export function range(from: number, to: number): []; export function range(from: number, to: number, step: number): number[]; diff --git a/engine/server/webapp/asset-manifest.json b/engine/server/webapp/asset-manifest.json index 386caf7605..04f51cd3e1 100644 --- a/engine/server/webapp/asset-manifest.json +++ b/engine/server/webapp/asset-manifest.json @@ -1,10 +1,10 @@ { "files": { - "main.js": "./static/js/main.345117dd.js", + "main.js": "./static/js/main.fc994d71.js", "index.html": "./index.html", - "main.345117dd.js.map": "./static/js/main.345117dd.js.map" + "main.fc994d71.js.map": "./static/js/main.fc994d71.js.map" }, "entrypoints": [ - "static/js/main.345117dd.js" + "static/js/main.fc994d71.js" ] } \ No newline at end of file diff --git a/engine/server/webapp/index.html b/engine/server/webapp/index.html index 2eb74a0d69..c1d26cd9ca 100644 --- a/engine/server/webapp/index.html +++ b/engine/server/webapp/index.html @@ -1 +1 @@ -Kurtosis Enclave Manager
\ No newline at end of file +Kurtosis Enclave Manager
\ No newline at end of file diff --git a/engine/server/webapp/noLogo.png b/engine/server/webapp/noLogo.png new file mode 100644 index 0000000000..249357a8a4 Binary files /dev/null and b/engine/server/webapp/noLogo.png differ diff --git a/engine/server/webapp/static/js/main.345117dd.js b/engine/server/webapp/static/js/main.fc994d71.js similarity index 54% rename from engine/server/webapp/static/js/main.345117dd.js rename to engine/server/webapp/static/js/main.fc994d71.js index 9994c16da8..1a333f0111 100644 --- a/engine/server/webapp/static/js/main.345117dd.js +++ b/engine/server/webapp/static/js/main.fc994d71.js @@ -1,3 +1,3 @@ -/*! For license information please see main.345117dd.js.LICENSE.txt */ -(()=>{var e={3900:(e,t,n)=>{"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?40*e+55:0,s=t>0?40*t+55:0,c=n>0?40*n+55:0;r[i]=function(e){var t,n=[],r=o(e);try{for(r.s();!(t=r.n()).done;){var i=t.value;n.push(l(i))}}catch(a){r.e(a)}finally{r.f()}return"#"+n.join("")}([a,s,c])}(t,n,r,e)}))}))})),d(0,23).forEach((function(t){var n=t+232,r=l(10*t+8);e[n]="#"+r+r+r})),e}()};function l(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function c(e,t,n,r){var o;return"text"===t?o=function(e,t){if(t.escapeXML)return a.encodeXML(e);return e}(n,r):"display"===t?o=function(e,t,n){t=parseInt(t,10);var r,o={"-1":function(){return"
"},0:function(){return e.length&&u(e)},1:function(){return p(e,"b")},3:function(){return p(e,"i")},4:function(){return p(e,"u")},8:function(){return h(e,"display:none")},9:function(){return p(e,"strike")},22:function(){return h(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return v(e,"i")},24:function(){return v(e,"u")},39:function(){return m(e,n.fg)},49:function(){return g(e,n.bg)},53:function(){return h(e,"text-decoration:overline")}};o[t]?r=o[t]():4"})).join("")}function d(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function f(e){var t=null;return 0===(e=parseInt(e,10))?t="all":1===e?t="bold":2")}function h(e,t){return p(e,"span",t)}function m(e,t){return p(e,"span","color:"+t)}function g(e,t){return p(e,"span","background-color:"+t)}function v(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}var y=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(t=t||{}).colors&&(t.colors=Object.assign({},s.colors,t.colors)),this.options=Object.assign({},s,t),this.stack=[],this.stickyStack=[]}var t,n,i;return t=e,(n=[{key:"toHtml",value:function(e){var t=this;e="string"===typeof e?[e]:e;var n=this.stack,r=this.options,i=[];return this.stickyStack.forEach((function(e){var t=c(n,e.token,e.data,r);t&&i.push(t)})),function(e,t,n){var r=!1;function i(){return""}function a(e){return t.newline?n("display",-1):n("text",e),""}var s=[{pattern:/^\x08+/,sub:i},{pattern:/^\x1b\[[012]?K/,sub:i},{pattern:/^\x1b\[\(B/,sub:i},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:function(e){return n("rgb",e),""}},{pattern:/^\x1b\[38;5;(\d+)m/,sub:function(e,t){return n("xterm256Foreground",t),""}},{pattern:/^\x1b\[48;5;(\d+)m/,sub:function(e,t){return n("xterm256Background",t),""}},{pattern:/^\n/,sub:a},{pattern:/^\r+\n/,sub:a},{pattern:/^\r/,sub:a},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:function(e,t){r=!0,0===t.trim().length&&(t="0");var i,a=o(t=t.trimRight(";").split(";"));try{for(a.s();!(i=a.n()).done;){var s=i.value;n("display",s)}}catch(l){a.e(l)}finally{a.f()}return""}},{pattern:/^\x1b\[\d?J/,sub:i},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:i},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:i},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:function(e){return n("text",e),""}}];function l(t,n){n>3&&r||(r=!1,e=e.replace(t.pattern,t.sub))}var c=[],u=e.length;e:for(;u>0;){for(var d=0,f=0,p=s.length;f{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},7422:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var i=n(7995),a=n(9671);o(n(9671),t);var s={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,n){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof t&&(n=t,t=s),"object"===typeof e&&(t=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==t&&void 0!==t?t:s,this.elementCB=null!==n&&void 0!==n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?i.ElementType.Tag:void 0,r=new a.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===i.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new a.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new a.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},9671:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__assign||function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=d;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(d);t.CDATA=f;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=i.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(d);t.Document=p;var h=function(e){function t(t,n,r,o){void 0===r&&(r=[]),void 0===o&&(o="script"===t?i.ElementType.Script:"style"===t?i.ElementType.Style:i.ElementType.Tag);var a=e.call(this,r)||this;return a.name=t,a.attribs=n,a.type=o,a}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(d);function m(e){return(0,i.isTag)(e)}function g(e){return e.type===i.ElementType.CDATA}function v(e){return e.type===i.ElementType.Text}function y(e){return e.type===i.ElementType.Comment}function b(e){return e.type===i.ElementType.Directive}function w(e){return e.type===i.ElementType.Root}function k(e,t){var n;if(void 0===t&&(t=!1),v(e))n=new l(e.data);else if(y(e))n=new c(e.data);else if(m(e)){var r=t?x(e.children):[],i=new h(e.name,o({},e.attribs),r);r.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=o({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=o({},e["x-attribsPrefix"])),n=i}else if(g(e)){r=t?x(e.children):[];var a=new f(r);r.forEach((function(e){return e.parent=a})),n=a}else if(w(e)){r=t?x(e.children):[];var s=new p(r);r.forEach((function(e){return e.parent=s})),e["x-mode"]&&(s["x-mode"]=e["x-mode"]),n=s}else{if(!b(e))throw new Error("Not implemented yet: ".concat(e.type));var d=new u(e.name,e.data);null!=e["x-name"]&&(d["x-name"]=e["x-name"],d["x-publicId"]=e["x-publicId"],d["x-systemId"]=e["x-systemId"]),n=d}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function x(e){for(var t=e.map((function(e){return k(e,!0)})),n=1;n{"use strict";n.r(t),n.d(t,{Connect:()=>a,ConnectServicesArgs:()=>$,ConnectServicesResponse:()=>X,Container:()=>d,Container_Status:()=>f,DataChunkMetadata:()=>M,DownloadFilesArtifactArgs:()=>U,ExecCommandArgs:()=>D,ExecCommandResponse:()=>j,FileArtifactContentsFileDescription:()=>K,FilesArtifactNameAndUuid:()=>W,GetExistingAndHistoricalServiceIdentifiersResponse:()=>P,GetServicesArgs:()=>C,GetServicesResponse:()=>O,GetStarlarkRunResponse:()=>Z,ImageDownloadMode:()=>i,InspectFilesArtifactContentsRequest:()=>G,InspectFilesArtifactContentsResponse:()=>Y,KurtosisFeatureFlag:()=>s,ListFilesArtifactNamesAndUuidsResponse:()=>H,Port:()=>c,Port_TransportProtocol:()=>u,RestartPolicy:()=>l,RunStarlarkPackageArgs:()=>m,RunStarlarkScriptArgs:()=>h,ServiceIdentifiers:()=>A,ServiceInfo:()=>p,ServiceStatus:()=>o,StarlarkError:()=>S,StarlarkExecutionError:()=>_,StarlarkInfo:()=>v,StarlarkInstruction:()=>b,StarlarkInstructionArg:()=>k,StarlarkInstructionPosition:()=>x,StarlarkInstructionResult:()=>w,StarlarkInterpretationError:()=>T,StarlarkRunFinishedEvent:()=>I,StarlarkRunProgress:()=>N,StarlarkRunResponseLine:()=>g,StarlarkValidationError:()=>E,StarlarkWarning:()=>y,StoreFilesArtifactFromServiceArgs:()=>q,StoreFilesArtifactFromServiceResponse:()=>J,StoreWebFilesArtifactArgs:()=>V,StoreWebFilesArtifactResponse:()=>z,StreamedDataChunk:()=>F,UploadFilesArtifactResponse:()=>B,WaitForHttpGetEndpointAvailabilityArgs:()=>R,WaitForHttpPostEndpointAvailabilityArgs:()=>L});var r=n(9699);const o=r.w.makeEnum("api_container_api.ServiceStatus",[{no:0,name:"STOPPED"},{no:1,name:"RUNNING"},{no:2,name:"UNKNOWN"}]),i=r.w.makeEnum("api_container_api.ImageDownloadMode",[{no:0,name:"always"},{no:1,name:"missing"}]),a=r.w.makeEnum("api_container_api.Connect",[{no:0,name:"CONNECT"},{no:1,name:"NO_CONNECT"}]),s=r.w.makeEnum("api_container_api.KurtosisFeatureFlag",[{no:0,name:"NO_INSTRUCTIONS_CACHING"}]),l=r.w.makeEnum("api_container_api.RestartPolicy",[{no:0,name:"NEVER"},{no:1,name:"ALWAYS"}]),c=r.w.makeMessageType("api_container_api.Port",(()=>[{no:1,name:"number",kind:"scalar",T:13},{no:2,name:"transport_protocol",kind:"enum",T:r.w.getEnumType(u)},{no:3,name:"maybe_application_protocol",kind:"scalar",T:9},{no:4,name:"maybe_wait_timeout",kind:"scalar",T:9}])),u=r.w.makeEnum("api_container_api.Port.TransportProtocol",[{no:0,name:"TCP"},{no:1,name:"SCTP"},{no:2,name:"UDP"}]),d=r.w.makeMessageType("api_container_api.Container",(()=>[{no:1,name:"status",kind:"enum",T:r.w.getEnumType(f)},{no:2,name:"image_name",kind:"scalar",T:9},{no:3,name:"entrypoint_args",kind:"scalar",T:9,repeated:!0},{no:4,name:"cmd_args",kind:"scalar",T:9,repeated:!0},{no:5,name:"env_vars",kind:"map",K:9,V:{kind:"scalar",T:9}}])),f=r.w.makeEnum("api_container_api.Container.Status",[{no:0,name:"STOPPED"},{no:1,name:"RUNNING"},{no:2,name:"UNKNOWN"}]),p=r.w.makeMessageType("api_container_api.ServiceInfo",(()=>[{no:1,name:"service_uuid",kind:"scalar",T:9},{no:2,name:"private_ip_addr",kind:"scalar",T:9},{no:3,name:"private_ports",kind:"map",K:9,V:{kind:"message",T:c}},{no:4,name:"maybe_public_ip_addr",kind:"scalar",T:9},{no:5,name:"maybe_public_ports",kind:"map",K:9,V:{kind:"message",T:c}},{no:6,name:"name",kind:"scalar",T:9},{no:7,name:"shortened_uuid",kind:"scalar",T:9},{no:8,name:"service_status",kind:"enum",T:r.w.getEnumType(o)},{no:9,name:"container",kind:"message",T:d}])),h=r.w.makeMessageType("api_container_api.RunStarlarkScriptArgs",(()=>[{no:1,name:"serialized_script",kind:"scalar",T:9},{no:2,name:"serialized_params",kind:"scalar",T:9,opt:!0},{no:3,name:"dry_run",kind:"scalar",T:8,opt:!0},{no:4,name:"parallelism",kind:"scalar",T:5,opt:!0},{no:5,name:"main_function_name",kind:"scalar",T:9,opt:!0},{no:6,name:"experimental_features",kind:"enum",T:r.w.getEnumType(s),repeated:!0},{no:7,name:"cloud_instance_id",kind:"scalar",T:9,opt:!0},{no:8,name:"cloud_user_id",kind:"scalar",T:9,opt:!0},{no:9,name:"image_download_mode",kind:"enum",T:r.w.getEnumType(i),opt:!0}])),m=r.w.makeMessageType("api_container_api.RunStarlarkPackageArgs",(()=>[{no:1,name:"package_id",kind:"scalar",T:9},{no:3,name:"local",kind:"scalar",T:12,oneof:"starlark_package_content"},{no:4,name:"remote",kind:"scalar",T:8,oneof:"starlark_package_content"},{no:5,name:"serialized_params",kind:"scalar",T:9,opt:!0},{no:6,name:"dry_run",kind:"scalar",T:8,opt:!0},{no:7,name:"parallelism",kind:"scalar",T:5,opt:!0},{no:8,name:"clone_package",kind:"scalar",T:8,opt:!0},{no:9,name:"relative_path_to_main_file",kind:"scalar",T:9,opt:!0},{no:10,name:"main_function_name",kind:"scalar",T:9,opt:!0},{no:11,name:"experimental_features",kind:"enum",T:r.w.getEnumType(s),repeated:!0},{no:12,name:"cloud_instance_id",kind:"scalar",T:9,opt:!0},{no:13,name:"cloud_user_id",kind:"scalar",T:9,opt:!0},{no:14,name:"image_download_mode",kind:"enum",T:r.w.getEnumType(i),opt:!0}])),g=r.w.makeMessageType("api_container_api.StarlarkRunResponseLine",(()=>[{no:1,name:"instruction",kind:"message",T:b,oneof:"run_response_line"},{no:2,name:"error",kind:"message",T:S,oneof:"run_response_line"},{no:3,name:"progress_info",kind:"message",T:N,oneof:"run_response_line"},{no:4,name:"instruction_result",kind:"message",T:w,oneof:"run_response_line"},{no:5,name:"run_finished_event",kind:"message",T:I,oneof:"run_response_line"},{no:6,name:"warning",kind:"message",T:y,oneof:"run_response_line"},{no:7,name:"info",kind:"message",T:v,oneof:"run_response_line"}])),v=r.w.makeMessageType("api_container_api.StarlarkInfo",(()=>[{no:1,name:"info_message",kind:"scalar",T:9}])),y=r.w.makeMessageType("api_container_api.StarlarkWarning",(()=>[{no:1,name:"warning_message",kind:"scalar",T:9}])),b=r.w.makeMessageType("api_container_api.StarlarkInstruction",(()=>[{no:1,name:"position",kind:"message",T:x},{no:2,name:"instruction_name",kind:"scalar",T:9},{no:3,name:"arguments",kind:"message",T:k,repeated:!0},{no:4,name:"executable_instruction",kind:"scalar",T:9},{no:5,name:"is_skipped",kind:"scalar",T:8}])),w=r.w.makeMessageType("api_container_api.StarlarkInstructionResult",(()=>[{no:1,name:"serialized_instruction_result",kind:"scalar",T:9}])),k=r.w.makeMessageType("api_container_api.StarlarkInstructionArg",(()=>[{no:1,name:"serialized_arg_value",kind:"scalar",T:9},{no:2,name:"arg_name",kind:"scalar",T:9,opt:!0},{no:3,name:"is_representative",kind:"scalar",T:8}])),x=r.w.makeMessageType("api_container_api.StarlarkInstructionPosition",(()=>[{no:1,name:"filename",kind:"scalar",T:9},{no:2,name:"line",kind:"scalar",T:5},{no:3,name:"column",kind:"scalar",T:5}])),S=r.w.makeMessageType("api_container_api.StarlarkError",(()=>[{no:1,name:"interpretation_error",kind:"message",T:T,oneof:"error"},{no:2,name:"validation_error",kind:"message",T:E,oneof:"error"},{no:3,name:"execution_error",kind:"message",T:_,oneof:"error"}])),T=r.w.makeMessageType("api_container_api.StarlarkInterpretationError",(()=>[{no:1,name:"error_message",kind:"scalar",T:9}])),E=r.w.makeMessageType("api_container_api.StarlarkValidationError",(()=>[{no:1,name:"error_message",kind:"scalar",T:9}])),_=r.w.makeMessageType("api_container_api.StarlarkExecutionError",(()=>[{no:1,name:"error_message",kind:"scalar",T:9}])),N=r.w.makeMessageType("api_container_api.StarlarkRunProgress",(()=>[{no:1,name:"current_step_info",kind:"scalar",T:9,repeated:!0},{no:2,name:"total_steps",kind:"scalar",T:13},{no:3,name:"current_step_number",kind:"scalar",T:13}])),I=r.w.makeMessageType("api_container_api.StarlarkRunFinishedEvent",(()=>[{no:1,name:"is_run_successful",kind:"scalar",T:8},{no:2,name:"serialized_output",kind:"scalar",T:9,opt:!0}])),C=r.w.makeMessageType("api_container_api.GetServicesArgs",(()=>[{no:1,name:"service_identifiers",kind:"map",K:9,V:{kind:"scalar",T:8}}])),O=r.w.makeMessageType("api_container_api.GetServicesResponse",(()=>[{no:1,name:"service_info",kind:"map",K:9,V:{kind:"message",T:p}}])),A=r.w.makeMessageType("api_container_api.ServiceIdentifiers",(()=>[{no:1,name:"service_uuid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"shortened_uuid",kind:"scalar",T:9}])),P=r.w.makeMessageType("api_container_api.GetExistingAndHistoricalServiceIdentifiersResponse",(()=>[{no:1,name:"allIdentifiers",kind:"message",T:A,repeated:!0}])),D=r.w.makeMessageType("api_container_api.ExecCommandArgs",(()=>[{no:1,name:"service_identifier",kind:"scalar",T:9},{no:2,name:"command_args",kind:"scalar",T:9,repeated:!0}])),j=r.w.makeMessageType("api_container_api.ExecCommandResponse",(()=>[{no:1,name:"exit_code",kind:"scalar",T:5},{no:2,name:"log_output",kind:"scalar",T:9}])),R=r.w.makeMessageType("api_container_api.WaitForHttpGetEndpointAvailabilityArgs",(()=>[{no:1,name:"service_identifier",kind:"scalar",T:9},{no:2,name:"port",kind:"scalar",T:13},{no:3,name:"path",kind:"scalar",T:9,opt:!0},{no:4,name:"initial_delay_milliseconds",kind:"scalar",T:13,opt:!0},{no:5,name:"retries",kind:"scalar",T:13,opt:!0},{no:6,name:"retries_delay_milliseconds",kind:"scalar",T:13,opt:!0},{no:7,name:"body_text",kind:"scalar",T:9,opt:!0}])),L=r.w.makeMessageType("api_container_api.WaitForHttpPostEndpointAvailabilityArgs",(()=>[{no:1,name:"service_identifier",kind:"scalar",T:9},{no:2,name:"port",kind:"scalar",T:13},{no:3,name:"path",kind:"scalar",T:9,opt:!0},{no:4,name:"request_body",kind:"scalar",T:9,opt:!0},{no:5,name:"initial_delay_milliseconds",kind:"scalar",T:13,opt:!0},{no:6,name:"retries",kind:"scalar",T:13,opt:!0},{no:7,name:"retries_delay_milliseconds",kind:"scalar",T:13,opt:!0},{no:8,name:"body_text",kind:"scalar",T:9,opt:!0}])),F=r.w.makeMessageType("api_container_api.StreamedDataChunk",(()=>[{no:1,name:"data",kind:"scalar",T:12},{no:2,name:"previous_chunk_hash",kind:"scalar",T:9},{no:3,name:"metadata",kind:"message",T:M}])),M=r.w.makeMessageType("api_container_api.DataChunkMetadata",(()=>[{no:1,name:"name",kind:"scalar",T:9}])),B=r.w.makeMessageType("api_container_api.UploadFilesArtifactResponse",(()=>[{no:1,name:"uuid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])),U=r.w.makeMessageType("api_container_api.DownloadFilesArtifactArgs",(()=>[{no:1,name:"identifier",kind:"scalar",T:9}])),V=r.w.makeMessageType("api_container_api.StoreWebFilesArtifactArgs",(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])),z=r.w.makeMessageType("api_container_api.StoreWebFilesArtifactResponse",(()=>[{no:1,name:"uuid",kind:"scalar",T:9}])),q=r.w.makeMessageType("api_container_api.StoreFilesArtifactFromServiceArgs",(()=>[{no:1,name:"service_identifier",kind:"scalar",T:9},{no:2,name:"source_path",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9}])),J=r.w.makeMessageType("api_container_api.StoreFilesArtifactFromServiceResponse",(()=>[{no:1,name:"uuid",kind:"scalar",T:9}])),W=r.w.makeMessageType("api_container_api.FilesArtifactNameAndUuid",(()=>[{no:1,name:"fileName",kind:"scalar",T:9},{no:2,name:"fileUuid",kind:"scalar",T:9}])),H=r.w.makeMessageType("api_container_api.ListFilesArtifactNamesAndUuidsResponse",(()=>[{no:1,name:"file_names_and_uuids",kind:"message",T:W,repeated:!0}])),G=r.w.makeMessageType("api_container_api.InspectFilesArtifactContentsRequest",(()=>[{no:1,name:"file_names_and_uuid",kind:"message",T:W}])),Y=r.w.makeMessageType("api_container_api.InspectFilesArtifactContentsResponse",(()=>[{no:1,name:"file_descriptions",kind:"message",T:K,repeated:!0}])),K=r.w.makeMessageType("api_container_api.FileArtifactContentsFileDescription",(()=>[{no:1,name:"path",kind:"scalar",T:9},{no:2,name:"size",kind:"scalar",T:4},{no:3,name:"text_preview",kind:"scalar",T:9,opt:!0}])),$=r.w.makeMessageType("api_container_api.ConnectServicesArgs",(()=>[{no:1,name:"connect",kind:"enum",T:r.w.getEnumType(a)}])),X=r.w.makeMessageType("api_container_api.ConnectServicesResponse",[]),Z=r.w.makeMessageType("api_container_api.GetStarlarkRunResponse",(()=>[{no:1,name:"package_id",kind:"scalar",T:9},{no:2,name:"serialized_script",kind:"scalar",T:9},{no:3,name:"serialized_params",kind:"scalar",T:9},{no:4,name:"parallelism",kind:"scalar",T:5},{no:5,name:"relative_path_to_main_file",kind:"scalar",T:9},{no:6,name:"main_function_name",kind:"scalar",T:9},{no:7,name:"experimental_features",kind:"enum",T:r.w.getEnumType(s),repeated:!0},{no:8,name:"restart_policy",kind:"enum",T:r.w.getEnumType(l)}]))},2933:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CleanArgs:()=>w,CleanResponse:()=>x,CreateEnclaveArgs:()=>u,CreateEnclaveResponse:()=>d,DestroyEnclaveArgs:()=>b,EnclaveAPIContainerHostMachineInfo:()=>p,EnclaveAPIContainerInfo:()=>f,EnclaveAPIContainerStatus:()=>s,EnclaveContainersStatus:()=>a,EnclaveIdentifiers:()=>g,EnclaveInfo:()=>h,EnclaveMode:()=>i,EnclaveNameAndUuid:()=>k,GetEnclavesResponse:()=>m,GetEngineInfoResponse:()=>c,GetExistingAndHistoricalEnclaveIdentifiersResponse:()=>v,GetServiceLogsArgs:()=>S,GetServiceLogsResponse:()=>T,LogLine:()=>E,LogLineFilter:()=>_,LogLineOperator:()=>l,StopEnclaveArgs:()=>y});var r=n(9699),o=n(533);const i=r.w.makeEnum("engine_api.EnclaveMode",[{no:0,name:"TEST"},{no:1,name:"PRODUCTION"}]),a=r.w.makeEnum("engine_api.EnclaveContainersStatus",[{no:0,name:"EnclaveContainersStatus_EMPTY"},{no:1,name:"EnclaveContainersStatus_RUNNING"},{no:2,name:"EnclaveContainersStatus_STOPPED"}]),s=r.w.makeEnum("engine_api.EnclaveAPIContainerStatus",[{no:0,name:"EnclaveAPIContainerStatus_NONEXISTENT"},{no:1,name:"EnclaveAPIContainerStatus_RUNNING"},{no:2,name:"EnclaveAPIContainerStatus_STOPPED"}]),l=r.w.makeEnum("engine_api.LogLineOperator",[{no:0,name:"LogLineOperator_DOES_CONTAIN_TEXT"},{no:1,name:"LogLineOperator_DOES_NOT_CONTAIN_TEXT"},{no:2,name:"LogLineOperator_DOES_CONTAIN_MATCH_REGEX"},{no:3,name:"LogLineOperator_DOES_NOT_CONTAIN_MATCH_REGEX"}]),c=r.w.makeMessageType("engine_api.GetEngineInfoResponse",(()=>[{no:1,name:"engine_version",kind:"scalar",T:9}])),u=r.w.makeMessageType("engine_api.CreateEnclaveArgs",(()=>[{no:1,name:"enclave_name",kind:"scalar",T:9,opt:!0},{no:2,name:"api_container_version_tag",kind:"scalar",T:9,opt:!0},{no:3,name:"api_container_log_level",kind:"scalar",T:9,opt:!0},{no:4,name:"mode",kind:"enum",T:r.w.getEnumType(i),opt:!0}])),d=r.w.makeMessageType("engine_api.CreateEnclaveResponse",(()=>[{no:1,name:"enclave_info",kind:"message",T:h}])),f=r.w.makeMessageType("engine_api.EnclaveAPIContainerInfo",(()=>[{no:1,name:"container_id",kind:"scalar",T:9},{no:2,name:"ip_inside_enclave",kind:"scalar",T:9},{no:3,name:"grpc_port_inside_enclave",kind:"scalar",T:13},{no:6,name:"bridge_ip_address",kind:"scalar",T:9}])),p=r.w.makeMessageType("engine_api.EnclaveAPIContainerHostMachineInfo",(()=>[{no:4,name:"ip_on_host_machine",kind:"scalar",T:9},{no:5,name:"grpc_port_on_host_machine",kind:"scalar",T:13}])),h=r.w.makeMessageType("engine_api.EnclaveInfo",(()=>[{no:1,name:"enclave_uuid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"shortened_uuid",kind:"scalar",T:9},{no:4,name:"containers_status",kind:"enum",T:r.w.getEnumType(a)},{no:5,name:"api_container_status",kind:"enum",T:r.w.getEnumType(s)},{no:6,name:"api_container_info",kind:"message",T:f},{no:7,name:"api_container_host_machine_info",kind:"message",T:p},{no:8,name:"creation_time",kind:"message",T:o.E},{no:9,name:"mode",kind:"enum",T:r.w.getEnumType(i)}])),m=r.w.makeMessageType("engine_api.GetEnclavesResponse",(()=>[{no:1,name:"enclave_info",kind:"map",K:9,V:{kind:"message",T:h}}])),g=r.w.makeMessageType("engine_api.EnclaveIdentifiers",(()=>[{no:1,name:"enclave_uuid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"shortened_uuid",kind:"scalar",T:9}])),v=r.w.makeMessageType("engine_api.GetExistingAndHistoricalEnclaveIdentifiersResponse",(()=>[{no:1,name:"allIdentifiers",kind:"message",T:g,repeated:!0}])),y=r.w.makeMessageType("engine_api.StopEnclaveArgs",(()=>[{no:1,name:"enclave_identifier",kind:"scalar",T:9}])),b=r.w.makeMessageType("engine_api.DestroyEnclaveArgs",(()=>[{no:1,name:"enclave_identifier",kind:"scalar",T:9}])),w=r.w.makeMessageType("engine_api.CleanArgs",(()=>[{no:1,name:"should_clean_all",kind:"scalar",T:8,opt:!0}])),k=r.w.makeMessageType("engine_api.EnclaveNameAndUuid",(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"uuid",kind:"scalar",T:9}])),x=r.w.makeMessageType("engine_api.CleanResponse",(()=>[{no:1,name:"removed_enclave_name_and_uuids",kind:"message",T:k,repeated:!0}])),S=r.w.makeMessageType("engine_api.GetServiceLogsArgs",(()=>[{no:1,name:"enclave_identifier",kind:"scalar",T:9},{no:2,name:"service_uuid_set",kind:"map",K:9,V:{kind:"scalar",T:8}},{no:3,name:"follow_logs",kind:"scalar",T:8,opt:!0},{no:4,name:"conjunctive_filters",kind:"message",T:_,repeated:!0},{no:5,name:"return_all_logs",kind:"scalar",T:8,opt:!0},{no:6,name:"num_log_lines",kind:"scalar",T:13,opt:!0}])),T=r.w.makeMessageType("engine_api.GetServiceLogsResponse",(()=>[{no:1,name:"service_logs_by_service_uuid",kind:"map",K:9,V:{kind:"message",T:E}},{no:2,name:"not_found_service_uuid_set",kind:"map",K:9,V:{kind:"scalar",T:8}}])),E=r.w.makeMessageType("engine_api.LogLine",(()=>[{no:1,name:"line",kind:"scalar",T:9,repeated:!0},{no:2,name:"timestamp",kind:"message",T:o.E}])),_=r.w.makeMessageType("engine_api.LogLineFilter",(()=>[{no:1,name:"operator",kind:"enum",T:r.w.getEnumType(l)},{no:2,name:"text_pattern",kind:"scalar",T:9}]))},4483:(e,t,n)=>{"use strict";t.q=void 0;const r=n(1278),o=n(6611),i=n(2933),a=n(8711);t.q={typeName:"kurtosis_enclave_manager.KurtosisEnclaveManagerServer",methods:{check:{name:"Check",I:r.HealthCheckRequest,O:r.HealthCheckResponse,kind:o.MethodKind.Unary},getEnclaves:{name:"GetEnclaves",I:o.Empty,O:i.GetEnclavesResponse,kind:o.MethodKind.Unary},getServices:{name:"GetServices",I:r.GetServicesRequest,O:a.GetServicesResponse,kind:o.MethodKind.Unary},getServiceLogs:{name:"GetServiceLogs",I:i.GetServiceLogsArgs,O:i.GetServiceLogsResponse,kind:o.MethodKind.ServerStreaming},listFilesArtifactNamesAndUuids:{name:"ListFilesArtifactNamesAndUuids",I:r.GetListFilesArtifactNamesAndUuidsRequest,O:a.ListFilesArtifactNamesAndUuidsResponse,kind:o.MethodKind.Unary},runStarlarkPackage:{name:"RunStarlarkPackage",I:r.RunStarlarkPackageRequest,O:a.StarlarkRunResponseLine,kind:o.MethodKind.ServerStreaming},createEnclave:{name:"CreateEnclave",I:i.CreateEnclaveArgs,O:i.CreateEnclaveResponse,kind:o.MethodKind.Unary},inspectFilesArtifactContents:{name:"InspectFilesArtifactContents",I:r.InspectFilesArtifactContentsRequest,O:a.InspectFilesArtifactContentsResponse,kind:o.MethodKind.Unary},downloadFilesArtifact:{name:"DownloadFilesArtifact",I:r.DownloadFilesArtifactRequest,O:a.StreamedDataChunk,kind:o.MethodKind.ServerStreaming},destroyEnclave:{name:"DestroyEnclave",I:i.DestroyEnclaveArgs,O:o.Empty,kind:o.MethodKind.Unary},getStarlarkRun:{name:"GetStarlarkRun",I:r.GetStarlarkRunRequest,O:a.GetStarlarkRunResponse,kind:o.MethodKind.Unary}}}},1278:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GetStarlarkRunRequest=t.DownloadFilesArtifactRequest=t.InspectFilesArtifactContentsRequest=t.RunStarlarkPackageRequest=t.GetListFilesArtifactNamesAndUuidsRequest=t.GetServicesRequest=t.HealthCheckResponse_ServingStatus=t.HealthCheckResponse=t.HealthCheckRequest=void 0;const r=n(6611),o=n(8711);class i extends r.Message{constructor(e){super(),this.service="",r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new i).fromBinary(e,t)}static fromJson(e,t){return(new i).fromJson(e,t)}static fromJsonString(e,t){return(new i).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(i,e,t)}}t.HealthCheckRequest=i,i.runtime=r.proto3,i.typeName="kurtosis_enclave_manager.HealthCheckRequest",i.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"service",kind:"scalar",T:9}]));class a extends r.Message{constructor(e){super(),this.status=s.UNKNOWN,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new a).fromBinary(e,t)}static fromJson(e,t){return(new a).fromJson(e,t)}static fromJsonString(e,t){return(new a).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(a,e,t)}}var s;t.HealthCheckResponse=a,a.runtime=r.proto3,a.typeName="kurtosis_enclave_manager.HealthCheckResponse",a.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"status",kind:"enum",T:r.proto3.getEnumType(s)}])),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.SERVING=1]="SERVING",e[e.NOT_SERVING=2]="NOT_SERVING",e[e.SERVICE_UNKNOWN=3]="SERVICE_UNKNOWN"}(s=t.HealthCheckResponse_ServingStatus||(t.HealthCheckResponse_ServingStatus={})),r.proto3.util.setEnumType(s,"kurtosis_enclave_manager.HealthCheckResponse.ServingStatus",[{no:0,name:"UNKNOWN"},{no:1,name:"SERVING"},{no:2,name:"NOT_SERVING"},{no:3,name:"SERVICE_UNKNOWN"}]);class l extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new l).fromBinary(e,t)}static fromJson(e,t){return(new l).fromJson(e,t)}static fromJsonString(e,t){return(new l).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(l,e,t)}}t.GetServicesRequest=l,l.runtime=r.proto3,l.typeName="kurtosis_enclave_manager.GetServicesRequest",l.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5}]));class c extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new c).fromBinary(e,t)}static fromJson(e,t){return(new c).fromJson(e,t)}static fromJsonString(e,t){return(new c).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(c,e,t)}}t.GetListFilesArtifactNamesAndUuidsRequest=c,c.runtime=r.proto3,c.typeName="kurtosis_enclave_manager.GetListFilesArtifactNamesAndUuidsRequest",c.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5}]));class u extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new u).fromBinary(e,t)}static fromJson(e,t){return(new u).fromJson(e,t)}static fromJsonString(e,t){return(new u).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(u,e,t)}}t.RunStarlarkPackageRequest=u,u.runtime=r.proto3,u.typeName="kurtosis_enclave_manager.RunStarlarkPackageRequest",u.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5},{no:3,name:"RunStarlarkPackageArgs",kind:"message",T:o.RunStarlarkPackageArgs}]));class d extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new d).fromBinary(e,t)}static fromJson(e,t){return(new d).fromJson(e,t)}static fromJsonString(e,t){return(new d).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(d,e,t)}}t.InspectFilesArtifactContentsRequest=d,d.runtime=r.proto3,d.typeName="kurtosis_enclave_manager.InspectFilesArtifactContentsRequest",d.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5},{no:3,name:"file_names_and_uuid",kind:"message",T:o.FilesArtifactNameAndUuid}]));class f extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new f).fromBinary(e,t)}static fromJson(e,t){return(new f).fromJson(e,t)}static fromJsonString(e,t){return(new f).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(f,e,t)}}t.DownloadFilesArtifactRequest=f,f.runtime=r.proto3,f.typeName="kurtosis_enclave_manager.DownloadFilesArtifactRequest",f.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5},{no:3,name:"download_files_artifacts_args",kind:"message",T:o.DownloadFilesArtifactArgs}]));class p extends r.Message{constructor(e){super(),this.apicIpAddress="",this.apicPort=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new p).fromBinary(e,t)}static fromJson(e,t){return(new p).fromJson(e,t)}static fromJsonString(e,t){return(new p).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(p,e,t)}}t.GetStarlarkRunRequest=p,p.runtime=r.proto3,p.typeName="kurtosis_enclave_manager.GetStarlarkRunRequest",p.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"apic_ip_address",kind:"scalar",T:9},{no:2,name:"apic_port",kind:"scalar",T:5}]))},2099:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var o=r(n(2059)),i=r(n(2184)),a=r(n(1542)),s=r(n(7190)),l=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;function c(e){var t=d(e);return function(e){return String(e).replace(l,t)}}t.decodeXML=c(a.default),t.decodeHTMLStrict=c(o.default);var u=function(e,t){return e65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)};t.default=function(e){return e>=55296&&e<=57343||e>1114111?"\ufffd":(e in o.default&&(e=o.default[e]),i(e))}},3742:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=void 0;var o=u(r(n(1542)).default),i=d(o);t.encodeXML=g(o);var a,s,l=u(r(n(2059)).default),c=d(l);function u(e){return Object.keys(e).sort().reduce((function(t,n){return t[e[n]]="&"+n+";",t}),{})}function d(e){for(var t=[],n=[],r=0,o=Object.keys(e);r1?p(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}var m=new RegExp(i.source+"|"+f.source,"g");function g(e){return function(t){return t.replace(m,(function(t){return e[t]||h(t)}))}}t.escape=function(e){return e.replace(m,h)},t.escapeUTF8=function(e){return e.replace(i,h)}},1672:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var r=n(2099),o=n(3742);t.decode=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?o.encodeXML:o.encodeHTML)(e)};var i=n(3742);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return i.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return i.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return i.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return i.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return i.encodeHTML}});var a=n(2099);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return a.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return a.decodeXML}})},253:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,o=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(o)return o(e,n).value}return e[n]};e.exports=function e(){var t,n,r,o,c,u,d=arguments[0],f=1,p=arguments.length,h=!1;for("boolean"===typeof d&&(h=d,d=arguments[1]||{},f=2),(null==d||"object"!==typeof d&&"function"!==typeof d)&&(d={});f{"use strict";var r=n(9479),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=u(n);d&&(a=a.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CASE_SENSITIVE_TAG_NAMES_MAP=t.CASE_SENSITIVE_TAG_NAMES=void 0,t.CASE_SENSITIVE_TAG_NAMES=["animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","linearGradient","radialGradient","textPath"],t.CASE_SENSITIVE_TAG_NAMES_MAP=t.CASE_SENSITIVE_TAG_NAMES.reduce((function(e,t){return e[t.toLowerCase()]=t,e}),{})},639:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="html",r="head",o="body",i=/<([a-zA-Z]+[0-9]?)/,a=//i,s=//i,l=function(e,t){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},c=function(e,t){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},u="object"===typeof window&&window.DOMParser;if("function"===typeof u){var d=new u;l=c=function(e,t){return t&&(e="<".concat(t,">").concat(e,"")),d.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var f=document.implementation.createHTMLDocument();l=function(e,t){if(t){var n=f.documentElement.querySelector(t);return n&&(n.innerHTML=e),f}return f.documentElement.innerHTML=e,f}}var p,h="object"===typeof document&&document.createElement("template");h&&h.content&&(p=function(e){return h.innerHTML=e,h.content.childNodes}),t.default=function(e){var t,u,d=e.match(i),f=d&&d[1]?d[1].toLowerCase():"";switch(f){case n:var h=c(e);if(!a.test(e))null===(t=null===(g=h.querySelector(r))||void 0===g?void 0:g.parentNode)||void 0===t||t.removeChild(g);if(!s.test(e))null===(u=null===(g=h.querySelector(o))||void 0===g?void 0:g.parentNode)||void 0===u||u.removeChild(g);return h.querySelectorAll(n);case r:case o:var m=l(e).querySelectorAll(f);return s.test(e)&&a.test(e)?m[0].parentNode.childNodes:m;default:return p?p(e):(g=l(e,o).querySelector(o)).childNodes;var g}}},3014:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(639)),i=n(3510),a=/<(![a-zA-Z\s]+)>/;t.default=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];var t=e.match(a),n=t?t[1]:void 0;return(0,i.formatDOM)((0,o.default)(e),null,n)}},3510:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatDOM=t.formatAttributes=void 0;var r=n(7422),o=n(7125);function i(e){for(var t={},n=0,r=e.length;n{var r=n(7422),o=n(3014).default,i=n(3037),a=n(5698);o="function"===typeof o.default?o.default:o;var s={lowerCaseAttributeNames:!1};function l(e,t){if("string"!==typeof e)throw new TypeError("First argument must be a string");return""===e?[]:a(o(e,(t=t||{}).htmlparser2||s),t)}l.domToReact=a,l.htmlToDOM=o,l.attributesToProps=i,l.Comment=r.Comment,l.Element=r.Element,l.ProcessingInstruction=r.ProcessingInstruction,l.Text=r.Text,e.exports=l,l.default=l},3037:(e,t,n)=>{var r=n(5595),o=n(5262),i=["checked","value"],a=["input","select","textarea"],s={reset:!0,submit:!0};function l(e){return r.possibleStandardNames[e]}e.exports=function(e,t){var n,c,u,d,f,p={},h=(e=e||{}).type&&s[e.type];for(n in e)if(u=e[n],r.isCustomAttribute(n))p[n]=u;else if(d=l(c=n.toLowerCase()))switch(f=r.getPropertyInfo(d),-1===i.indexOf(d)||-1===a.indexOf(t)||h||(d=l("default"+c)),p[d]=u,f&&f.type){case r.BOOLEAN:p[d]=!0;break;case r.OVERLOADED_BOOLEAN:""===u&&(p[d]=!0)}else o.PRESERVE_CUSTOM_ATTRIBUTES&&(p[n]=u);return o.setStyleProp(e.style,p),p}},5698:(e,t,n)=>{var r=n(969),o=n(3037),i=n(5262),a=i.setStyleProp,s=i.canTextBeChildOfNode;function l(e){return i.PRESERVE_CUSTOM_ATTRIBUTES&&"tag"===e.type&&i.isCustomComponent(e.name,e.attribs)}e.exports=function e(t,n){for(var c,u,d,f,p,h=(n=n||{}).library||r,m=h.cloneElement,g=h.createElement,v=h.isValidElement,y=[],b="function"===typeof n.replace,w=n.transform||i.returnFirstArg,k=n.trim,x=0,S=t.length;x1&&(d=m(d,{key:d.key||x})),y.push(w(d,c,x));else if("text"!==c.type){switch(f=c.attribs,l(c)?a(f.style,f):f&&(f=o(f,c.name)),p=null,c.type){case"script":case"style":c.children[0]&&(f.dangerouslySetInnerHTML={__html:c.children[0].data});break;case"tag":"textarea"===c.name&&c.children[0]?f.defaultValue=c.children[0].data:c.children&&c.children.length&&(p=e(c.children,n));break;default:continue}S>1&&(f.key=x),y.push(w(g(c.name,f,p),c,x))}else{if((u=!c.data.trim().length)&&c.parent&&!s(c.parent))continue;if(k&&u)continue;y.push(w(c.data,c,x))}return 1===y.length?y[0]:y}},5262:(e,t,n)=>{var r=n(969),o=n(271).default,i=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);var a={reactCompat:!0};var s=r.version.split(".")[0]>=16,l=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);e.exports={PRESERVE_CUSTOM_ATTRIBUTES:s,ELEMENTS_WITH_NO_TEXT_CHILDREN:l,isCustomComponent:function(e,t){return-1===e.indexOf("-")?t&&"string"===typeof t.is:!i.has(e)},setStyleProp:function(e,t){if(null!==e&&void 0!==e)try{t.style=o(e,a)}catch(n){t.style={}}},canTextBeChildOfNode:function(e){return!l.has(e.name)},returnFirstArg:function(e){return e}}},6559:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var d=1,f=1;function p(e){var t=e.match(n);t&&(d+=t.length);var r=e.lastIndexOf("\n");f=~r?e.length-r:f+e.length}function h(){var e={line:d,column:f};return function(t){return t.position=new m(e),b(),t}}function m(e){this.start=e,this.end={line:d,column:f},this.source=l.source}m.prototype.content=e;var g=[];function v(t){var n=new Error(l.source+":"+d+":"+f+": "+t);if(n.reason=t,n.filename=l.source,n.line=d,n.column=f,n.source=e,!l.silent)throw n;g.push(n)}function y(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function b(){y(r)}function w(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return v("End of comment missing");var r=e.slice(2,n-2);return f+=2,p(r),e=e.slice(n),f+=2,t({type:"comment",comment:r})}}function x(){var e=h(),n=y(o);if(n){if(k(),!y(i))return v("property missing ':'");var r=y(a),l=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return y(s),l}}return b(),function(){var e,t=[];for(w(t);e=x();)!1!==e&&(t.push(e),w(t));return t}()}},4947:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(9093),t),o(n(1725),t)},9093:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KurtosisPackageIndexer=void 0;const r=n(2822),o=n(1725);t.KurtosisPackageIndexer={typeName:"kurtosis_package_indexer.KurtosisPackageIndexer",methods:{isAvailable:{name:"IsAvailable",I:r.Empty,O:r.Empty,kind:r.MethodKind.Unary},getPackages:{name:"GetPackages",I:r.Empty,O:o.GetPackagesResponse,kind:r.MethodKind.Unary},reindex:{name:"Reindex",I:r.Empty,O:r.Empty,kind:r.MethodKind.Unary},readPackage:{name:"ReadPackage",I:o.ReadPackageRequest,O:o.ReadPackageResponse,kind:r.MethodKind.Unary}}}},1725:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PackageRepository=t.PackageArgumentType=t.PackageArg=t.KurtosisPackage=t.GetPackagesResponse=t.ReadPackageResponse=t.ReadPackageRequest=t.ArgumentValueType=void 0;const r=n(2822);var o;!function(e){e[e.BOOL=0]="BOOL",e[e.STRING=1]="STRING",e[e.INTEGER=2]="INTEGER",e[e.DICT=4]="DICT",e[e.JSON=5]="JSON",e[e.LIST=6]="LIST"}(o=t.ArgumentValueType||(t.ArgumentValueType={})),r.proto3.util.setEnumType(o,"kurtosis_package_indexer.ArgumentValueType",[{no:0,name:"BOOL"},{no:1,name:"STRING"},{no:2,name:"INTEGER"},{no:4,name:"DICT"},{no:5,name:"JSON"},{no:6,name:"LIST"}]);class i extends r.Message{constructor(e){super(),r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new i).fromBinary(e,t)}static fromJson(e,t){return(new i).fromJson(e,t)}static fromJsonString(e,t){return(new i).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(i,e,t)}}t.ReadPackageRequest=i,i.runtime=r.proto3,i.typeName="kurtosis_package_indexer.ReadPackageRequest",i.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"repository_metadata",kind:"message",T:d}]));class a extends r.Message{constructor(e){super(),r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new a).fromBinary(e,t)}static fromJson(e,t){return(new a).fromJson(e,t)}static fromJsonString(e,t){return(new a).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(a,e,t)}}t.ReadPackageResponse=a,a.runtime=r.proto3,a.typeName="kurtosis_package_indexer.ReadPackageResponse",a.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"package",kind:"message",T:l,opt:!0}]));class s extends r.Message{constructor(e){super(),this.packages=[],r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new s).fromBinary(e,t)}static fromJson(e,t){return(new s).fromJson(e,t)}static fromJsonString(e,t){return(new s).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(s,e,t)}}t.GetPackagesResponse=s,s.runtime=r.proto3,s.typeName="kurtosis_package_indexer.GetPackagesResponse",s.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"packages",kind:"message",T:l,repeated:!0}]));class l extends r.Message{constructor(e){super(),this.name="",this.args=[],this.stars=r.protoInt64.zero,this.description="",this.entrypointDescription="",this.returnsDescription="",this.parsingResult="",this.version="",this.iconUrl="",this.runCount=0,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new l).fromBinary(e,t)}static fromJson(e,t){return(new l).fromJson(e,t)}static fromJsonString(e,t){return(new l).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(l,e,t)}}t.KurtosisPackage=l,l.runtime=r.proto3,l.typeName="kurtosis_package_indexer.KurtosisPackage",l.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"args",kind:"message",T:c,repeated:!0},{no:3,name:"stars",kind:"scalar",T:4},{no:4,name:"description",kind:"scalar",T:9},{no:5,name:"url",kind:"scalar",T:9,opt:!0},{no:6,name:"entrypoint_description",kind:"scalar",T:9},{no:7,name:"returns_description",kind:"scalar",T:9},{no:8,name:"repository_metadata",kind:"message",T:d},{no:9,name:"parsing_result",kind:"scalar",T:9},{no:10,name:"parsing_time",kind:"message",T:r.Timestamp},{no:11,name:"version",kind:"scalar",T:9},{no:12,name:"icon_url",kind:"scalar",T:9},{no:13,name:"run_count",kind:"scalar",T:13}]));class c extends r.Message{constructor(e){super(),this.name="",this.isRequired=!1,this.description="",r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new c).fromBinary(e,t)}static fromJson(e,t){return(new c).fromJson(e,t)}static fromJsonString(e,t){return(new c).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(c,e,t)}}t.PackageArg=c,c.runtime=r.proto3,c.typeName="kurtosis_package_indexer.PackageArg",c.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"is_required",kind:"scalar",T:8},{no:4,name:"description",kind:"scalar",T:9},{no:5,name:"typeV2",kind:"message",T:u},{no:6,name:"defaultValue",kind:"scalar",T:9,opt:!0}]));class u extends r.Message{constructor(e){super(),this.topLevelType=o.BOOL,r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new u).fromBinary(e,t)}static fromJson(e,t){return(new u).fromJson(e,t)}static fromJsonString(e,t){return(new u).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(u,e,t)}}t.PackageArgumentType=u,u.runtime=r.proto3,u.typeName="kurtosis_package_indexer.PackageArgumentType",u.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"top_level_type",kind:"enum",T:r.proto3.getEnumType(o)},{no:2,name:"inner_type_1",kind:"enum",T:r.proto3.getEnumType(o),opt:!0},{no:3,name:"inner_type_2",kind:"enum",T:r.proto3.getEnumType(o),opt:!0}]));class d extends r.Message{constructor(e){super(),this.baseUrl="",this.owner="",this.name="",this.rootPath="",this.defaultBranch="",r.proto3.util.initPartial(e,this)}static fromBinary(e,t){return(new d).fromBinary(e,t)}static fromJson(e,t){return(new d).fromJson(e,t)}static fromJsonString(e,t){return(new d).fromJsonString(e,t)}static equals(e,t){return r.proto3.util.equals(d,e,t)}}t.PackageRepository=d,d.runtime=r.proto3,d.typeName="kurtosis_package_indexer.PackageRepository",d.fields=r.proto3.util.newFieldList((()=>[{no:1,name:"base_url",kind:"scalar",T:9},{no:2,name:"owner",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"root_path",kind:"scalar",T:9},{no:5,name:"last_commit_time",kind:"message",T:r.Timestamp},{no:6,name:"default_branch",kind:"scalar",T:9}]))},6609:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",a="[object AsyncFunction]",s="[object Function]",l="[object GeneratorFunction]",c="[object Null]",u="[object Object]",d="[object Proxy]",f="[object Undefined]",p=/^\[object .+?Constructor\]$/,h=/^(?:0|[1-9]\d*)$/,m={};m["[object Float32Array]"]=m["[object Float64Array]"]=m["[object Int8Array]"]=m["[object Int16Array]"]=m["[object Int32Array]"]=m["[object Uint8Array]"]=m["[object Uint8ClampedArray]"]=m["[object Uint16Array]"]=m["[object Uint32Array]"]=!0,m[i]=m["[object Array]"]=m["[object ArrayBuffer]"]=m["[object Boolean]"]=m["[object DataView]"]=m["[object Date]"]=m["[object Error]"]=m[s]=m["[object Map]"]=m["[object Number]"]=m[u]=m["[object RegExp]"]=m["[object Set]"]=m["[object String]"]=m["[object WeakMap]"]=!1;var g="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,v="object"==typeof self&&self&&self.Object===Object&&self,y=g||v||Function("return this")(),b=t&&!t.nodeType&&t,w=b&&e&&!e.nodeType&&e,k=w&&w.exports===b,x=k&&g.process,S=function(){try{var e=w&&w.require&&w.require("util").types;return e||x&&x.binding&&x.binding("util")}catch(t){}}(),T=S&&S.isTypedArray;var E,_,N=Array.prototype,I=Function.prototype,C=Object.prototype,O=y["__core-js_shared__"],A=I.toString,P=C.hasOwnProperty,D=function(){var e=/[^.]+$/.exec(O&&O.keys&&O.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),j=C.toString,R=A.call(Object),L=RegExp("^"+A.call(P).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),F=k?y.Buffer:void 0,M=y.Symbol,B=y.Uint8Array,U=F?F.allocUnsafe:void 0,V=(E=Object.getPrototypeOf,_=Object,function(e){return E(_(e))}),z=Object.create,q=C.propertyIsEnumerable,J=N.splice,W=M?M.toStringTag:void 0,H=function(){try{var e=ye(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),G=F?F.isBuffer:void 0,Y=Math.max,K=Date.now,$=ye(y,"Map"),X=ye(Object,"create"),Z=function(){function e(){}return function(t){if(!Oe(t))return{};if(z)return z(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Q(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},ee.prototype.set=function(e,t){var n=this.__data__,r=ae(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},te.prototype.clear=function(){this.size=0,this.__data__={hash:new Q,map:new($||ee),string:new Q}},te.prototype.delete=function(e){var t=ve(this,e).delete(e);return this.size-=t?1:0,t},te.prototype.get=function(e){return ve(this,e).get(e)},te.prototype.has=function(e){return ve(this,e).has(e)},te.prototype.set=function(e,t){var n=ve(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},ne.prototype.clear=function(){this.__data__=new ee,this.size=0},ne.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},ne.prototype.get=function(e){return this.__data__.get(e)},ne.prototype.has=function(e){return this.__data__.has(e)},ne.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ee){var r=n.__data__;if(!$||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new te(r)}return n.set(e,t),this.size=n.size,this};var le,ce=function(e,t,n){for(var r=-1,o=Object(e),i=n(e),a=i.length;a--;){var s=i[le?a:++r];if(!1===t(o[s],s,o))break}return e};function ue(e){return null==e?void 0===e?f:c:W&&W in Object(e)?function(e){var t=P.call(e,W),n=e[W];try{e[W]=void 0;var r=!0}catch(i){}var o=j.call(e);r&&(t?e[W]=n:delete e[W]);return o}(e):function(e){return j.call(e)}(e)}function de(e){return Ae(e)&&ue(e)==i}function fe(e){return!(!Oe(e)||function(e){return!!D&&D in e}(e))&&(Ie(e)?L:p).test(function(e){if(null!=e){try{return A.call(e)}catch(t){}try{return e+""}catch(t){}}return""}(e))}function pe(e){if(!Oe(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=we(e),n=[];for(var r in e)("constructor"!=r||!t&&P.call(e,r))&&n.push(r);return n}function he(e,t,n,r,o){e!==t&&ce(t,(function(i,a){if(o||(o=new ne),Oe(i))!function(e,t,n,r,o,i,a){var s=ke(e,n),l=ke(t,n),c=a.get(l);if(c)return void oe(e,n,c);var d=i?i(s,l,n+"",e,t,a):void 0,f=void 0===d;if(f){var p=Ee(l),h=!p&&Ne(l),m=!p&&!h&&Pe(l);d=l,p||h||m?Ee(s)?d=s:Ae(g=s)&&_e(g)?d=function(e,t){var n=-1,r=e.length;t||(t=Array(r));for(;++n-1&&e%1==0&&e0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(ge);function Se(e,t){return e===t||e!==e&&t!==t}var Te=de(function(){return arguments}())?de:function(e){return Ae(e)&&P.call(e,"callee")&&!q.call(e,"callee")},Ee=Array.isArray;function _e(e){return null!=e&&Ce(e.length)&&!Ie(e)}var Ne=G||function(){return!1};function Ie(e){if(!Oe(e))return!1;var t=ue(e);return t==s||t==l||t==a||t==d}function Ce(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function Oe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ae(e){return null!=e&&"object"==typeof e}var Pe=T?function(e){return function(t){return e(t)}}(T):function(e){return Ae(e)&&Ce(e.length)&&!!m[ue(e)]};function De(e){return _e(e)?re(e,!0):pe(e)}var je,Re=(je=function(e,t,n,r){he(e,t,n,r)},me((function(e,t){var n=-1,r=t.length,o=r>1?t[r-1]:void 0,i=r>2?t[2]:void 0;for(o=je.length>3&&"function"==typeof o?(r--,o):void 0,i&&function(e,t,n){if(!Oe(n))return!1;var r=typeof t;return!!("number"==r?_e(n)&&be(t,n.length):"string"==r&&t in n)&&Se(n[t],e)}(t[0],t[1],i)&&(o=r<3?void 0:o,r=1),e=Object(e);++n"']/g,$=RegExp(Y.source),X=RegExp(K.source),Z=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,ee=/<%=([\s\S]+?)%>/g,te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,oe=/[\\^$.*+?()[\]{}|]/g,ie=RegExp(oe.source),ae=/^\s+/,se=/\s/,le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ce=/\{\n\/\* \[wrapped with (.+)\] \*/,ue=/,? & /,de=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,fe=/[()=,{}\[\]\/\s]/,pe=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,me=/\w*$/,ge=/^[-+]0x[0-9a-f]+$/i,ve=/^0b[01]+$/i,ye=/^\[object .+?Constructor\]$/,be=/^0o[0-7]+$/i,we=/^(?:0|[1-9]\d*)$/,ke=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xe=/($^)/,Se=/['\n\r\u2028\u2029\\]/g,Te="\\ud800-\\udfff",Ee="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",_e="\\u2700-\\u27bf",Ne="a-z\\xdf-\\xf6\\xf8-\\xff",Ie="A-Z\\xc0-\\xd6\\xd8-\\xde",Ce="\\ufe0e\\ufe0f",Oe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ae="['\u2019]",Pe="["+Te+"]",De="["+Oe+"]",je="["+Ee+"]",Re="\\d+",Le="["+_e+"]",Fe="["+Ne+"]",Me="[^"+Te+Oe+Re+_e+Ne+Ie+"]",Be="\\ud83c[\\udffb-\\udfff]",Ue="[^"+Te+"]",Ve="(?:\\ud83c[\\udde6-\\uddff]){2}",ze="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="["+Ie+"]",Je="\\u200d",We="(?:"+Fe+"|"+Me+")",He="(?:"+qe+"|"+Me+")",Ge="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ye="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",Ke="(?:"+je+"|"+Be+")"+"?",$e="["+Ce+"]?",Xe=$e+Ke+("(?:"+Je+"(?:"+[Ue,Ve,ze].join("|")+")"+$e+Ke+")*"),Ze="(?:"+[Le,Ve,ze].join("|")+")"+Xe,Qe="(?:"+[Ue+je+"?",je,Ve,ze,Pe].join("|")+")",et=RegExp(Ae,"g"),tt=RegExp(je,"g"),nt=RegExp(Be+"(?="+Be+")|"+Qe+Xe,"g"),rt=RegExp([qe+"?"+Fe+"+"+Ge+"(?="+[De,qe,"$"].join("|")+")",He+"+"+Ye+"(?="+[De,qe+We,"$"].join("|")+")",qe+"?"+We+"+"+Ge,qe+"+"+Ye,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Re,Ze].join("|"),"g"),ot=RegExp("["+Je+Te+Ee+Ce+"]"),it=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,at=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,lt={};lt[L]=lt[F]=lt[M]=lt[B]=lt[U]=lt[V]=lt[z]=lt[q]=lt[J]=!0,lt[y]=lt[b]=lt[j]=lt[w]=lt[R]=lt[k]=lt[x]=lt[S]=lt[E]=lt[_]=lt[N]=lt[C]=lt[O]=lt[A]=lt[D]=!1;var ct={};ct[y]=ct[b]=ct[j]=ct[R]=ct[w]=ct[k]=ct[L]=ct[F]=ct[M]=ct[B]=ct[U]=ct[E]=ct[_]=ct[N]=ct[C]=ct[O]=ct[A]=ct[P]=ct[V]=ct[z]=ct[q]=ct[J]=!0,ct[x]=ct[S]=ct[D]=!1;var ut={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},dt=parseFloat,ft=parseInt,pt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ht="object"==typeof self&&self&&self.Object===Object&&self,mt=pt||ht||Function("return this")(),gt=t&&!t.nodeType&&t,vt=gt&&e&&!e.nodeType&&e,yt=vt&&vt.exports===gt,bt=yt&&pt.process,wt=function(){try{var e=vt&&vt.require&&vt.require("util").types;return e||bt&&bt.binding&&bt.binding("util")}catch(t){}}(),kt=wt&&wt.isArrayBuffer,xt=wt&&wt.isDate,St=wt&&wt.isMap,Tt=wt&&wt.isRegExp,Et=wt&&wt.isSet,_t=wt&&wt.isTypedArray;function Nt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function It(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o-1}function jt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function rn(e,t){for(var n=e.length;n--&&qt(t,e[n],0)>-1;);return n}var on=Yt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),an=Yt({"&":"&","<":"<",">":">",'"':""","'":"'"});function sn(e){return"\\"+ut[e]}function ln(e){return ot.test(e)}function cn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function un(e,t){return function(n){return e(t(n))}}function dn(e,t){for(var n=-1,r=e.length,o=0,i=[];++n",""":'"',"'":"'"});var yn=function e(t){var n=(t=null==t?mt:yn.defaults(mt.Object(),t,yn.pick(mt,at))).Array,r=t.Date,se=t.Error,Te=t.Function,Ee=t.Math,_e=t.Object,Ne=t.RegExp,Ie=t.String,Ce=t.TypeError,Oe=n.prototype,Ae=Te.prototype,Pe=_e.prototype,De=t["__core-js_shared__"],je=Ae.toString,Re=Pe.hasOwnProperty,Le=0,Fe=function(){var e=/[^.]+$/.exec(De&&De.keys&&De.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Me=Pe.toString,Be=je.call(_e),Ue=mt._,Ve=Ne("^"+je.call(Re).replace(oe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ze=yt?t.Buffer:o,qe=t.Symbol,Je=t.Uint8Array,We=ze?ze.allocUnsafe:o,He=un(_e.getPrototypeOf,_e),Ge=_e.create,Ye=Pe.propertyIsEnumerable,Ke=Oe.splice,$e=qe?qe.isConcatSpreadable:o,Xe=qe?qe.iterator:o,Ze=qe?qe.toStringTag:o,Qe=function(){try{var e=fi(_e,"defineProperty");return e({},"",{}),e}catch(t){}}(),nt=t.clearTimeout!==mt.clearTimeout&&t.clearTimeout,ot=r&&r.now!==mt.Date.now&&r.now,ut=t.setTimeout!==mt.setTimeout&&t.setTimeout,pt=Ee.ceil,ht=Ee.floor,gt=_e.getOwnPropertySymbols,vt=ze?ze.isBuffer:o,bt=t.isFinite,wt=Oe.join,Ut=un(_e.keys,_e),Yt=Ee.max,bn=Ee.min,wn=r.now,kn=t.parseInt,xn=Ee.random,Sn=Oe.reverse,Tn=fi(t,"DataView"),En=fi(t,"Map"),_n=fi(t,"Promise"),Nn=fi(t,"Set"),In=fi(t,"WeakMap"),Cn=fi(_e,"create"),On=In&&new In,An={},Pn=Mi(Tn),Dn=Mi(En),jn=Mi(_n),Rn=Mi(Nn),Ln=Mi(In),Fn=qe?qe.prototype:o,Mn=Fn?Fn.valueOf:o,Bn=Fn?Fn.toString:o;function Un(e){if(ts(e)&&!Ja(e)&&!(e instanceof Jn)){if(e instanceof qn)return e;if(Re.call(e,"__wrapped__"))return Bi(e)}return new qn(e)}var Vn=function(){function e(){}return function(t){if(!es(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function zn(){}function qn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function Jn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=g,this.__views__=[]}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function lr(e,t,n,r,i,a){var s,l=1&t,c=2&t,u=4&t;if(n&&(s=i?n(e,r,i,a):n(e)),s!==o)return s;if(!es(e))return e;var d=Ja(e);if(d){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Re.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!l)return Oo(e,s)}else{var f=mi(e),p=f==S||f==T;if(Ya(e))return To(e,l);if(f==N||f==y||p&&!i){if(s=c||p?{}:vi(e),!l)return c?function(e,t){return Ao(e,hi(e),t)}(e,function(e,t){return e&&Ao(t,Ps(t),e)}(s,e)):function(e,t){return Ao(e,pi(e),t)}(e,or(s,e))}else{if(!ct[f])return i?e:{};s=function(e,t,n){var r=e.constructor;switch(t){case j:return Eo(e);case w:case k:return new r(+e);case R:return function(e,t){var n=t?Eo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case L:case F:case M:case B:case U:case V:case z:case q:case J:return _o(e,n);case E:return new r;case _:case A:return new r(e);case C:return function(e){var t=new e.constructor(e.source,me.exec(e));return t.lastIndex=e.lastIndex,t}(e);case O:return new r;case P:return o=e,Mn?_e(Mn.call(o)):{}}var o}(e,f,l)}}a||(a=new Kn);var h=a.get(e);if(h)return h;a.set(e,s),as(e)?e.forEach((function(r){s.add(lr(r,t,n,r,e,a))})):ns(e)&&e.forEach((function(r,o){s.set(o,lr(r,t,n,o,e,a))}));var m=d?o:(u?c?ii:oi:c?Ps:As)(e);return Ct(m||e,(function(r,o){m&&(r=e[o=r]),tr(s,o,lr(r,t,n,o,e,a))})),s}function cr(e,t,n){var r=n.length;if(null==e)return!r;for(e=_e(e);r--;){var i=n[r],a=t[i],s=e[i];if(s===o&&!(i in e)||!a(s))return!1}return!0}function ur(e,t,n){if("function"!=typeof e)throw new Ce(i);return Ai((function(){e.apply(o,n)}),t)}function dr(e,t,n,r){var o=-1,i=Dt,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Rt(t,Qt(n))),r?(i=jt,a=!1):t.length>=200&&(i=tn,a=!1,t=new Yn(t));e:for(;++o-1},Hn.prototype.set=function(e,t){var n=this.__data__,r=nr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new Wn,map:new(En||Hn),string:new Wn}},Gn.prototype.delete=function(e){var t=ui(this,e).delete(e);return this.size-=t?1:0,t},Gn.prototype.get=function(e){return ui(this,e).get(e)},Gn.prototype.has=function(e){return ui(this,e).has(e)},Gn.prototype.set=function(e,t){var n=ui(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Yn.prototype.add=Yn.prototype.push=function(e){return this.__data__.set(e,a),this},Yn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.clear=function(){this.__data__=new Hn,this.size=0},Kn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Kn.prototype.get=function(e){return this.__data__.get(e)},Kn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Hn){var r=n.__data__;if(!En||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Gn(r)}return n.set(e,t),this.size=n.size,this};var fr=jo(wr),pr=jo(kr,!0);function hr(e,t){var n=!0;return fr(e,(function(e,r,o){return n=!!t(e,r,o)})),n}function mr(e,t,n){for(var r=-1,i=e.length;++r0&&n(s)?t>1?vr(s,t-1,n,r,o):Lt(o,s):r||(o[o.length]=s)}return o}var yr=Ro(),br=Ro(!0);function wr(e,t){return e&&yr(e,t,As)}function kr(e,t){return e&&br(e,t,As)}function xr(e,t){return Pt(t,(function(t){return Xa(e[t])}))}function Sr(e,t){for(var n=0,r=(t=wo(t,e)).length;null!=e&&nt}function Nr(e,t){return null!=e&&Re.call(e,t)}function Ir(e,t){return null!=e&&t in _e(e)}function Cr(e,t,r){for(var i=r?jt:Dt,a=e[0].length,s=e.length,l=s,c=n(s),u=1/0,d=[];l--;){var f=e[l];l&&t&&(f=Rt(f,Qt(t))),u=bn(f.length,u),c[l]=!r&&(t||a>=120&&f.length>=120)?new Yn(l&&f):o}f=e[0];var p=-1,h=c[0];e:for(;++p=s?l:l*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}))}function Wr(e,t,n){for(var r=-1,o=t.length,i={};++r-1;)s!==e&&Ke.call(s,l,1),Ke.call(e,l,1);return e}function Gr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;bi(o)?Ke.call(e,o,1):fo(e,o)}}return e}function Yr(e,t){return e+ht(xn()*(t-e+1))}function Kr(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=ht(t/2))&&(e+=e)}while(t);return n}function $r(e,t){return Pi(Ni(e,t,rl),e+"")}function Xr(e){return Xn(Us(e))}function Zr(e,t){var n=Us(e);return Ri(n,sr(t,0,n.length))}function Qr(e,t,n,r){if(!es(e))return e;for(var i=-1,a=(t=wo(t,e)).length,s=a-1,l=e;null!=l&&++ii?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=n(i);++o>>1,a=e[i];null!==a&&!ls(a)&&(n?a<=t:a=200){var c=t?null:$o(e);if(c)return fn(c);a=!1,o=tn,l=new Yn}else l=t?[]:s;e:for(;++r=r?e:ro(e,t,n)}var So=nt||function(e){return mt.clearTimeout(e)};function To(e,t){if(t)return e.slice();var n=e.length,r=We?We(n):new e.constructor(n);return e.copy(r),r}function Eo(e){var t=new e.constructor(e.byteLength);return new Je(t).set(new Je(e)),t}function _o(e,t){var n=t?Eo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function No(e,t){if(e!==t){var n=e!==o,r=null===e,i=e===e,a=ls(e),s=t!==o,l=null===t,c=t===t,u=ls(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||r&&s&&c||!n&&c||!i)return 1;if(!r&&!a&&!u&&e1?n[i-1]:o,s=i>2?n[2]:o;for(a=e.length>3&&"function"==typeof a?(i--,a):o,s&&wi(n[0],n[1],s)&&(a=i<3?o:a,i=1),t=_e(t);++r-1?i[a?t[s]:s]:o}}function Uo(e){return ri((function(t){var n=t.length,r=n,a=qn.prototype.thru;for(e&&t.reverse();r--;){var s=t[r];if("function"!=typeof s)throw new Ce(i);if(a&&!l&&"wrapper"==si(s))var l=new qn([],!0)}for(r=l?r:n;++r1&&w.reverse(),p&&ul))return!1;var u=a.get(e),d=a.get(t);if(u&&d)return u==t&&d==e;var f=-1,p=!0,h=2&n?new Yn:o;for(a.set(e,t),a.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(le,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Ct(v,(function(n){var r="_."+n[0];t&n[1]&&!Dt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(ce);return t?t[1].split(ue):[]}(r),n)))}function ji(e){var t=0,n=0;return function(){var r=wn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(o,arguments)}}function Ri(e,t){var n=-1,r=e.length,i=r-1;for(t=t===o?r:t;++n1?e[t-1]:o;return n="function"==typeof n?(e.pop(),n):o,ia(e,n)}));function fa(e){var t=Un(e);return t.__chain__=!0,t}function pa(e,t){return t(e)}var ha=ri((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return ar(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Jn&&bi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:pa,args:[i],thisArg:o}),new qn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(o),e}))):this.thru(i)}));var ma=Po((function(e,t,n){Re.call(e,n)?++e[n]:ir(e,n,1)}));var ga=Bo(qi),va=Bo(Ji);function ya(e,t){return(Ja(e)?Ct:fr)(e,ci(t,3))}function ba(e,t){return(Ja(e)?Ot:pr)(e,ci(t,3))}var wa=Po((function(e,t,n){Re.call(e,n)?e[n].push(t):ir(e,n,[t])}));var ka=$r((function(e,t,r){var o=-1,i="function"==typeof t,a=Ha(e)?n(e.length):[];return fr(e,(function(e){a[++o]=i?Nt(t,e,r):Or(e,t,r)})),a})),xa=Po((function(e,t,n){ir(e,n,t)}));function Sa(e,t){return(Ja(e)?Rt:Br)(e,ci(t,3))}var Ta=Po((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Ea=$r((function(e,t){if(null==e)return[];var n=t.length;return n>1&&wi(e,t[0],t[1])?t=[]:n>2&&wi(t[0],t[1],t[2])&&(t=[t[0]]),Jr(e,vr(t,1),[])})),_a=ot||function(){return mt.Date.now()};function Na(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,Zo(e,d,o,o,o,o,t)}function Ia(e,t){var n;if("function"!=typeof t)throw new Ce(i);return e=hs(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var Ca=$r((function(e,t,n){var r=1;if(n.length){var o=dn(n,li(Ca));r|=c}return Zo(e,r,t,n,o)})),Oa=$r((function(e,t,n){var r=3;if(n.length){var o=dn(n,li(Oa));r|=c}return Zo(t,r,e,n,o)}));function Aa(e,t,n){var r,a,s,l,c,u,d=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new Ce(i);function m(t){var n=r,i=a;return r=a=o,d=t,l=e.apply(i,n)}function g(e){var n=e-u;return u===o||n>=t||n<0||p&&e-d>=s}function v(){var e=_a();if(g(e))return y(e);c=Ai(v,function(e){var n=t-(e-u);return p?bn(n,s-(e-d)):n}(e))}function y(e){return c=o,h&&r?m(e):(r=a=o,l)}function b(){var e=_a(),n=g(e);if(r=arguments,a=this,u=e,n){if(c===o)return function(e){return d=e,c=Ai(v,t),f?m(e):l}(u);if(p)return So(c),c=Ai(v,t),m(u)}return c===o&&(c=Ai(v,t)),l}return t=gs(t)||0,es(n)&&(f=!!n.leading,s=(p="maxWait"in n)?Yt(gs(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),b.cancel=function(){c!==o&&So(c),d=0,r=u=a=c=o},b.flush=function(){return c===o?l:y(_a())},b}var Pa=$r((function(e,t){return ur(e,1,t)})),Da=$r((function(e,t,n){return ur(e,gs(t)||0,n)}));function ja(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ce(i);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(ja.Cache||Gn),n}function Ra(e){if("function"!=typeof e)throw new Ce(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ja.Cache=Gn;var La=ko((function(e,t){var n=(t=1==t.length&&Ja(t[0])?Rt(t[0],Qt(ci())):Rt(vr(t,1),Qt(ci()))).length;return $r((function(r){for(var o=-1,i=bn(r.length,n);++o=t})),qa=Ar(function(){return arguments}())?Ar:function(e){return ts(e)&&Re.call(e,"callee")&&!Ye.call(e,"callee")},Ja=n.isArray,Wa=kt?Qt(kt):function(e){return ts(e)&&Er(e)==j};function Ha(e){return null!=e&&Qa(e.length)&&!Xa(e)}function Ga(e){return ts(e)&&Ha(e)}var Ya=vt||gl,Ka=xt?Qt(xt):function(e){return ts(e)&&Er(e)==k};function $a(e){if(!ts(e))return!1;var t=Er(e);return t==x||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!os(e)}function Xa(e){if(!es(e))return!1;var t=Er(e);return t==S||t==T||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Za(e){return"number"==typeof e&&e==hs(e)}function Qa(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function es(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function ts(e){return null!=e&&"object"==typeof e}var ns=St?Qt(St):function(e){return ts(e)&&mi(e)==E};function rs(e){return"number"==typeof e||ts(e)&&Er(e)==_}function os(e){if(!ts(e)||Er(e)!=N)return!1;var t=He(e);if(null===t)return!0;var n=Re.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&je.call(n)==Be}var is=Tt?Qt(Tt):function(e){return ts(e)&&Er(e)==C};var as=Et?Qt(Et):function(e){return ts(e)&&mi(e)==O};function ss(e){return"string"==typeof e||!Ja(e)&&ts(e)&&Er(e)==A}function ls(e){return"symbol"==typeof e||ts(e)&&Er(e)==P}var cs=_t?Qt(_t):function(e){return ts(e)&&Qa(e.length)&&!!lt[Er(e)]};var us=Go(Mr),ds=Go((function(e,t){return e<=t}));function fs(e){if(!e)return[];if(Ha(e))return ss(e)?mn(e):Oo(e);if(Xe&&e[Xe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Xe]());var t=mi(e);return(t==E?cn:t==O?fn:Us)(e)}function ps(e){return e?(e=gs(e))===p||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}function hs(e){var t=ps(e),n=t%1;return t===t?n?t-n:t:0}function ms(e){return e?sr(hs(e),0,g):0}function gs(e){if("number"==typeof e)return e;if(ls(e))return m;if(es(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=es(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Zt(e);var n=ve.test(e);return n||be.test(e)?ft(e.slice(2),n?2:8):ge.test(e)?m:+e}function vs(e){return Ao(e,Ps(e))}function ys(e){return null==e?"":co(e)}var bs=Do((function(e,t){if(Ti(t)||Ha(t))Ao(t,As(t),e);else for(var n in t)Re.call(t,n)&&tr(e,n,t[n])})),ws=Do((function(e,t){Ao(t,Ps(t),e)})),ks=Do((function(e,t,n,r){Ao(t,Ps(t),e,r)})),xs=Do((function(e,t,n,r){Ao(t,As(t),e,r)})),Ss=ri(ar);var Ts=$r((function(e,t){e=_e(e);var n=-1,r=t.length,i=r>2?t[2]:o;for(i&&wi(t[0],t[1],i)&&(r=1);++n1),t})),Ao(e,ii(e),n),r&&(n=lr(n,7,ti));for(var o=t.length;o--;)fo(n,t[o]);return n}));var Ls=ri((function(e,t){return null==e?{}:function(e,t){return Wr(e,t,(function(t,n){return Ns(e,n)}))}(e,t)}));function Fs(e,t){if(null==e)return{};var n=Rt(ii(e),(function(e){return[e]}));return t=ci(t),Wr(e,n,(function(e,n){return t(e,n[0])}))}var Ms=Xo(As),Bs=Xo(Ps);function Us(e){return null==e?[]:en(e,As(e))}var Vs=Fo((function(e,t,n){return t=t.toLowerCase(),e+(n?zs(t):t)}));function zs(e){return $s(ys(e).toLowerCase())}function qs(e){return(e=ys(e))&&e.replace(ke,on).replace(tt,"")}var Js=Fo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Ws=Fo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Hs=Lo("toLowerCase");var Gs=Fo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ys=Fo((function(e,t,n){return e+(n?" ":"")+$s(t)}));var Ks=Fo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),$s=Lo("toUpperCase");function Xs(e,t,n){return e=ys(e),(t=n?o:t)===o?function(e){return it.test(e)}(e)?function(e){return e.match(rt)||[]}(e):function(e){return e.match(de)||[]}(e):e.match(t)||[]}var Zs=$r((function(e,t){try{return Nt(e,o,t)}catch(n){return $a(n)?n:new se(n)}})),Qs=ri((function(e,t){return Ct(t,(function(t){t=Fi(t),ir(e,t,Ca(e[t],e))})),e}));function el(e){return function(){return e}}var tl=Uo(),nl=Uo(!0);function rl(e){return e}function ol(e){return Rr("function"==typeof e?e:lr(e,1))}var il=$r((function(e,t){return function(n){return Or(n,e,t)}})),al=$r((function(e,t){return function(n){return Or(e,n,t)}}));function sl(e,t,n){var r=As(t),o=xr(t,r);null!=n||es(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=xr(t,As(t)));var i=!(es(n)&&"chain"in n)||!!n.chain,a=Xa(e);return Ct(o,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__);return(n.__actions__=Oo(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Lt([this.value()],arguments))})})),e}function ll(){}var cl=Jo(Rt),ul=Jo(At),dl=Jo(Bt);function fl(e){return ki(e)?Gt(Fi(e)):function(e){return function(t){return Sr(t,e)}}(e)}var pl=Ho(),hl=Ho(!0);function ml(){return[]}function gl(){return!1}var vl=qo((function(e,t){return e+t}),0),yl=Ko("ceil"),bl=qo((function(e,t){return e/t}),1),wl=Ko("floor");var kl=qo((function(e,t){return e*t}),1),xl=Ko("round"),Sl=qo((function(e,t){return e-t}),0);return Un.after=function(e,t){if("function"!=typeof t)throw new Ce(i);return e=hs(e),function(){if(--e<1)return t.apply(this,arguments)}},Un.ary=Na,Un.assign=bs,Un.assignIn=ws,Un.assignInWith=ks,Un.assignWith=xs,Un.at=Ss,Un.before=Ia,Un.bind=Ca,Un.bindAll=Qs,Un.bindKey=Oa,Un.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ja(e)?e:[e]},Un.chain=fa,Un.chunk=function(e,t,r){t=(r?wi(e,t,r):t===o)?1:Yt(hs(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var a=0,s=0,l=n(pt(i/t));ai?0:i+n),(r=r===o||r>i?i:hs(r))<0&&(r+=i),r=n>r?0:ms(r);n>>0)?(e=ys(e))&&("string"==typeof t||null!=t&&!is(t))&&!(t=co(t))&&ln(e)?xo(mn(e),0,n):e.split(t,n):[]},Un.spread=function(e,t){if("function"!=typeof e)throw new Ce(i);return t=null==t?0:Yt(hs(t),0),$r((function(n){var r=n[t],o=xo(n,0,t);return r&&Lt(o,r),Nt(e,this,o)}))},Un.tail=function(e){var t=null==e?0:e.length;return t?ro(e,1,t):[]},Un.take=function(e,t,n){return e&&e.length?ro(e,0,(t=n||t===o?1:hs(t))<0?0:t):[]},Un.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?ro(e,(t=r-(t=n||t===o?1:hs(t)))<0?0:t,r):[]},Un.takeRightWhile=function(e,t){return e&&e.length?ho(e,ci(t,3),!1,!0):[]},Un.takeWhile=function(e,t){return e&&e.length?ho(e,ci(t,3)):[]},Un.tap=function(e,t){return t(e),e},Un.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new Ce(i);return es(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),Aa(e,t,{leading:r,maxWait:t,trailing:o})},Un.thru=pa,Un.toArray=fs,Un.toPairs=Ms,Un.toPairsIn=Bs,Un.toPath=function(e){return Ja(e)?Rt(e,Fi):ls(e)?[e]:Oo(Li(ys(e)))},Un.toPlainObject=vs,Un.transform=function(e,t,n){var r=Ja(e),o=r||Ya(e)||cs(e);if(t=ci(t,4),null==n){var i=e&&e.constructor;n=o?r?new i:[]:es(e)&&Xa(i)?Vn(He(e)):{}}return(o?Ct:wr)(e,(function(e,r,o){return t(n,e,r,o)})),n},Un.unary=function(e){return Na(e,1)},Un.union=ta,Un.unionBy=na,Un.unionWith=ra,Un.uniq=function(e){return e&&e.length?uo(e):[]},Un.uniqBy=function(e,t){return e&&e.length?uo(e,ci(t,2)):[]},Un.uniqWith=function(e,t){return t="function"==typeof t?t:o,e&&e.length?uo(e,o,t):[]},Un.unset=function(e,t){return null==e||fo(e,t)},Un.unzip=oa,Un.unzipWith=ia,Un.update=function(e,t,n){return null==e?e:po(e,t,bo(n))},Un.updateWith=function(e,t,n,r){return r="function"==typeof r?r:o,null==e?e:po(e,t,bo(n),r)},Un.values=Us,Un.valuesIn=function(e){return null==e?[]:en(e,Ps(e))},Un.without=aa,Un.words=Xs,Un.wrap=function(e,t){return Fa(bo(t),e)},Un.xor=sa,Un.xorBy=la,Un.xorWith=ca,Un.zip=ua,Un.zipObject=function(e,t){return vo(e||[],t||[],tr)},Un.zipObjectDeep=function(e,t){return vo(e||[],t||[],Qr)},Un.zipWith=da,Un.entries=Ms,Un.entriesIn=Bs,Un.extend=ws,Un.extendWith=ks,sl(Un,Un),Un.add=vl,Un.attempt=Zs,Un.camelCase=Vs,Un.capitalize=zs,Un.ceil=yl,Un.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=gs(n))===n?n:0),t!==o&&(t=(t=gs(t))===t?t:0),sr(gs(e),t,n)},Un.clone=function(e){return lr(e,4)},Un.cloneDeep=function(e){return lr(e,5)},Un.cloneDeepWith=function(e,t){return lr(e,5,t="function"==typeof t?t:o)},Un.cloneWith=function(e,t){return lr(e,4,t="function"==typeof t?t:o)},Un.conformsTo=function(e,t){return null==t||cr(e,t,As(t))},Un.deburr=qs,Un.defaultTo=function(e,t){return null==e||e!==e?t:e},Un.divide=bl,Un.endsWith=function(e,t,n){e=ys(e),t=co(t);var r=e.length,i=n=n===o?r:sr(hs(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},Un.eq=Ua,Un.escape=function(e){return(e=ys(e))&&X.test(e)?e.replace(K,an):e},Un.escapeRegExp=function(e){return(e=ys(e))&&ie.test(e)?e.replace(oe,"\\$&"):e},Un.every=function(e,t,n){var r=Ja(e)?At:hr;return n&&wi(e,t,n)&&(t=o),r(e,ci(t,3))},Un.find=ga,Un.findIndex=qi,Un.findKey=function(e,t){return Vt(e,ci(t,3),wr)},Un.findLast=va,Un.findLastIndex=Ji,Un.findLastKey=function(e,t){return Vt(e,ci(t,3),kr)},Un.floor=wl,Un.forEach=ya,Un.forEachRight=ba,Un.forIn=function(e,t){return null==e?e:yr(e,ci(t,3),Ps)},Un.forInRight=function(e,t){return null==e?e:br(e,ci(t,3),Ps)},Un.forOwn=function(e,t){return e&&wr(e,ci(t,3))},Un.forOwnRight=function(e,t){return e&&kr(e,ci(t,3))},Un.get=_s,Un.gt=Va,Un.gte=za,Un.has=function(e,t){return null!=e&&gi(e,t,Nr)},Un.hasIn=Ns,Un.head=Hi,Un.identity=rl,Un.includes=function(e,t,n,r){e=Ha(e)?e:Us(e),n=n&&!r?hs(n):0;var o=e.length;return n<0&&(n=Yt(o+n,0)),ss(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&qt(e,t,n)>-1},Un.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:hs(n);return o<0&&(o=Yt(r+o,0)),qt(e,t,o)},Un.inRange=function(e,t,n){return t=ps(t),n===o?(n=t,t=0):n=ps(n),function(e,t,n){return e>=bn(t,n)&&e=-9007199254740991&&e<=h},Un.isSet=as,Un.isString=ss,Un.isSymbol=ls,Un.isTypedArray=cs,Un.isUndefined=function(e){return e===o},Un.isWeakMap=function(e){return ts(e)&&mi(e)==D},Un.isWeakSet=function(e){return ts(e)&&"[object WeakSet]"==Er(e)},Un.join=function(e,t){return null==e?"":wt.call(e,t)},Un.kebabCase=Js,Un.last=$i,Un.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=hs(n))<0?Yt(r+i,0):bn(i,r-1)),t===t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):zt(e,Wt,i,!0)},Un.lowerCase=Ws,Un.lowerFirst=Hs,Un.lt=us,Un.lte=ds,Un.max=function(e){return e&&e.length?mr(e,rl,_r):o},Un.maxBy=function(e,t){return e&&e.length?mr(e,ci(t,2),_r):o},Un.mean=function(e){return Ht(e,rl)},Un.meanBy=function(e,t){return Ht(e,ci(t,2))},Un.min=function(e){return e&&e.length?mr(e,rl,Mr):o},Un.minBy=function(e,t){return e&&e.length?mr(e,ci(t,2),Mr):o},Un.stubArray=ml,Un.stubFalse=gl,Un.stubObject=function(){return{}},Un.stubString=function(){return""},Un.stubTrue=function(){return!0},Un.multiply=kl,Un.nth=function(e,t){return e&&e.length?qr(e,hs(t)):o},Un.noConflict=function(){return mt._===this&&(mt._=Ue),this},Un.noop=ll,Un.now=_a,Un.pad=function(e,t,n){e=ys(e);var r=(t=hs(t))?hn(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return Wo(ht(o),n)+e+Wo(pt(o),n)},Un.padEnd=function(e,t,n){e=ys(e);var r=(t=hs(t))?hn(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=xn();return bn(e+i*(t-e+dt("1e-"+((i+"").length-1))),t)}return Yr(e,t)},Un.reduce=function(e,t,n){var r=Ja(e)?Ft:Kt,o=arguments.length<3;return r(e,ci(t,4),n,o,fr)},Un.reduceRight=function(e,t,n){var r=Ja(e)?Mt:Kt,o=arguments.length<3;return r(e,ci(t,4),n,o,pr)},Un.repeat=function(e,t,n){return t=(n?wi(e,t,n):t===o)?1:hs(t),Kr(ys(e),t)},Un.replace=function(){var e=arguments,t=ys(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Un.result=function(e,t,n){var r=-1,i=(t=wo(t,e)).length;for(i||(i=1,e=o);++rh)return[];var n=g,r=bn(e,g);t=ci(t),e-=g;for(var o=Xt(r,t);++n=a)return e;var l=n-hn(r);if(l<1)return r;var c=s?xo(s,0,l).join(""):e.slice(0,l);if(i===o)return c+r;if(s&&(l+=c.length-l),is(i)){if(e.slice(l).search(i)){var u,d=c;for(i.global||(i=Ne(i.source,ys(me.exec(i))+"g")),i.lastIndex=0;u=i.exec(d);)var f=u.index;c=c.slice(0,f===o?l:f)}}else if(e.indexOf(co(i),l)!=l){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+r},Un.unescape=function(e){return(e=ys(e))&&$.test(e)?e.replace(Y,vn):e},Un.uniqueId=function(e){var t=++Le;return ys(e)+t},Un.upperCase=Ks,Un.upperFirst=$s,Un.each=ya,Un.eachRight=ba,Un.first=Hi,sl(Un,function(){var e={};return wr(Un,(function(t,n){Re.call(Un.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),Un.VERSION="4.17.21",Ct(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Un[e].placeholder=Un})),Ct(["drop","take"],(function(e,t){Jn.prototype[e]=function(n){n=n===o?1:Yt(hs(n),0);var r=this.__filtered__&&!t?new Jn(this):this.clone();return r.__filtered__?r.__takeCount__=bn(n,r.__takeCount__):r.__views__.push({size:bn(n,g),type:e+(r.__dir__<0?"Right":"")}),r},Jn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ct(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Jn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ci(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Ct(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Jn.prototype[e]=function(){return this[n](1).value()[0]}})),Ct(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Jn.prototype[e]=function(){return this.__filtered__?new Jn(this):this[n](1)}})),Jn.prototype.compact=function(){return this.filter(rl)},Jn.prototype.find=function(e){return this.filter(e).head()},Jn.prototype.findLast=function(e){return this.reverse().find(e)},Jn.prototype.invokeMap=$r((function(e,t){return"function"==typeof e?new Jn(this):this.map((function(n){return Or(n,e,t)}))})),Jn.prototype.reject=function(e){return this.filter(Ra(ci(e)))},Jn.prototype.slice=function(e,t){e=hs(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Jn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=hs(t))<0?n.dropRight(-t):n.take(t-e)),n)},Jn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Jn.prototype.toArray=function(){return this.take(g)},wr(Jn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=Un[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);i&&(Un.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof Jn,c=s[0],u=l||Ja(t),d=function(e){var t=i.apply(Un,Lt([e],s));return r&&f?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var f=this.__chain__,p=!!this.__actions__.length,h=a&&!f,m=l&&!p;if(!a&&u){t=m?t:new Jn(this);var g=e.apply(t,s);return g.__actions__.push({func:pa,args:[d],thisArg:o}),new qn(g,f)}return h&&m?e.apply(this,s):(g=this.thru(d),h?r?g.value()[0]:g.value():g)})})),Ct(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Oe[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Un.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(Ja(o)?o:[],e)}return this[n]((function(n){return t.apply(Ja(n)?n:[],e)}))}})),wr(Jn.prototype,(function(e,t){var n=Un[t];if(n){var r=n.name+"";Re.call(An,r)||(An[r]=[]),An[r].push({name:t,func:n})}})),An[Vo(o,2).name]=[{name:"wrapper",func:o}],Jn.prototype.clone=function(){var e=new Jn(this.__wrapped__);return e.__actions__=Oo(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Oo(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Oo(this.__views__),e},Jn.prototype.reverse=function(){if(this.__filtered__){var e=new Jn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Jn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ja(e),r=t<0,o=n?e.length:0,i=function(e,t,n){var r=-1,o=n.length;for(;++r=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},Un.prototype.plant=function(e){for(var t,n=this;n instanceof zn;){var r=Bi(n);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},Un.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Jn){var t=e;return this.__actions__.length&&(t=new Jn(this)),(t=t.reverse()).__actions__.push({func:pa,args:[ea],thisArg:o}),new qn(t,this.__chain__)}return this.thru(ea)},Un.prototype.toJSON=Un.prototype.valueOf=Un.prototype.value=function(){return mo(this.__wrapped__,this.__actions__)},Un.prototype.first=Un.prototype.head,Xe&&(Un.prototype[Xe]=function(){return this}),Un}();mt._=yn,(r=function(){return yn}.call(t,n,t,e))===o||(e.exports=r)}.call(this)},2610:(e,t,n)=>{"use strict";var r=n(969),o=n(8019);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n