From 7975777b8cfc1d9cd725150081a40182ed85fc77 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Tue, 14 Jan 2025 10:54:17 +0000 Subject: [PATCH 1/7] Document how to set sensitive values (#4137) * Document how to set sensitive values * Update helm.md --- docs/helm.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/helm.md b/docs/helm.md index 4d5c3439e68..77f8565ccda 100644 --- a/docs/helm.md +++ b/docs/helm.md @@ -65,6 +65,16 @@ applicationConfig: armadaUrl: "server.url.com:443" ``` +**Note:** The values you enter in this section will be placed into a K8s configmap. For senistive values (e.g. database passwords) we recommend setting them as environmental variables from a non-helm managed secret: +```yaml +env: +- name: ARMADA_POSTGRES_CONNECTION_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: lookout-postgres-password +``` + #### Credentials ##### Open Id From e53a2eccc9f7c5f69360670da76f24baf1f4d709 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Tue, 14 Jan 2025 14:10:01 +0000 Subject: [PATCH 2/7] update pruners to use configmaps (#4139) --- deployment/lookout-v2/templates/cronjob.yaml | 6 +++--- deployment/scheduler/templates/cronjob.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/lookout-v2/templates/cronjob.yaml b/deployment/lookout-v2/templates/cronjob.yaml index 4c6b822607a..d879503fcf5 100644 --- a/deployment/lookout-v2/templates/cronjob.yaml +++ b/deployment/lookout-v2/templates/cronjob.yaml @@ -51,9 +51,9 @@ spec: securityContext: allowPrivilegeEscalation: false volumes: - - name: user-config - secret: - secretName: {{ include "lookout_v2.config.name" . }} + - name: user-config + configMap: + name: {{ include "lookout_v2.config.name" . }} {{- if .Values.additionalVolumes }} {{- toYaml .Values.additionalVolumes | nindent 12 }} {{- end }} diff --git a/deployment/scheduler/templates/cronjob.yaml b/deployment/scheduler/templates/cronjob.yaml index 4b6db42b472..5140816b19a 100644 --- a/deployment/scheduler/templates/cronjob.yaml +++ b/deployment/scheduler/templates/cronjob.yaml @@ -65,8 +65,8 @@ spec: allowPrivilegeEscalation: false volumes: - name: user-config - secret: - secretName: {{ include "armada-scheduler-pruner.config.name" . }} + configMap: + name: {{ include "armada-scheduler-pruner.config.name" . }} {{- if .Values.scheduler.additionalVolumes }} {{- toYaml .Values.scheduler.additionalVolumes | nindent 12 }} {{- end }} From 419484de33dd96108d7c12add8160f48d1c2a61c Mon Sep 17 00:00:00 2001 From: Eleanor Pratt <101330560+eleanorpratt@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:13:17 +0000 Subject: [PATCH 3/7] fix indentation in lookout v2 cronjob.yaml (#4140) --- deployment/lookout-v2/templates/cronjob.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/lookout-v2/templates/cronjob.yaml b/deployment/lookout-v2/templates/cronjob.yaml index d879503fcf5..cfbc1a4aec0 100644 --- a/deployment/lookout-v2/templates/cronjob.yaml +++ b/deployment/lookout-v2/templates/cronjob.yaml @@ -51,9 +51,9 @@ spec: securityContext: allowPrivilegeEscalation: false volumes: - - name: user-config - configMap: - name: {{ include "lookout_v2.config.name" . }} + - name: user-config + configMap: + name: {{ include "lookout_v2.config.name" . }} {{- if .Values.additionalVolumes }} {{- toYaml .Values.additionalVolumes | nindent 12 }} {{- end }} From b2d99ad86d0fe93fa625d384f483472f68124e49 Mon Sep 17 00:00:00 2001 From: Maurice Yap Date: Tue, 14 Jan 2025 22:10:49 +0000 Subject: [PATCH 4/7] Visual improvements to the job sidebar (#4133) This change makes the sidebar for viewing a job's information visually more consistent across its tabs and the rest of the application. We also migrate to using styled components using emotion JS, which is provided by MUI, instead of separate CSS files. This provides better type-safety and keeps styles in the same place as the components. Note that this has necessitated an upgrade to vitest, and the installation and use of @emotion/babel-plugin. --- internal/lookout/ui/package.json | 3 +- .../lookout/ui/src/components/CodeBlock.tsx | 87 +- .../sidebar/ContainerDetails.module.css | 17 - .../lookoutV2/sidebar/ContainerDetails.tsx | 58 +- .../sidebar/KeyValuePairTable.module.css | 5 - .../lookoutV2/sidebar/KeyValuePairTable.tsx | 14 +- .../lookoutV2/sidebar/NoRunsAlert.tsx | 23 + .../lookoutV2/sidebar/Sidebar.module.css | 70 - .../lookoutV2/sidebar/Sidebar.test.tsx | 2 +- .../components/lookoutV2/sidebar/Sidebar.tsx | 186 +- .../lookoutV2/sidebar/SidebarHeader.tsx | 96 +- .../sidebar/SidebarTabJobCommands.tsx | 27 +- .../sidebar/SidebarTabJobDetails.tsx | 12 +- .../sidebar/SidebarTabJobLogs.module.css | 34 - .../lookoutV2/sidebar/SidebarTabJobLogs.tsx | 65 +- .../sidebar/SidebarTabJobResult.module.css | 20 - .../lookoutV2/sidebar/SidebarTabJobResult.tsx | 259 +- .../sidebar/SidebarTabJobYaml.module.css | 7 - .../lookoutV2/sidebar/SidebarTabJobYaml.tsx | 13 +- .../sidebar/sidebarTabContentComponents.tsx | 15 + .../ui/src/theme/components/accordion.tsx | 31 + .../lookout/ui/src/theme/components/chip.ts | 32 +- internal/lookout/ui/src/theme/theme.ts | 3 +- internal/lookout/ui/vite.config.mts | 35 +- internal/lookout/ui/vitest.config.mts | 35 + internal/lookout/ui/yarn.lock | 2882 +++++++---------- 26 files changed, 1782 insertions(+), 2249 deletions(-) delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.module.css delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.module.css create mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/NoRunsAlert.tsx delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.module.css delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.module.css delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.module.css delete mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.module.css create mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx create mode 100644 internal/lookout/ui/src/theme/components/accordion.tsx diff --git a/internal/lookout/ui/package.json b/internal/lookout/ui/package.json index a503197ced5..052baa34c44 100644 --- a/internal/lookout/ui/package.json +++ b/internal/lookout/ui/package.json @@ -69,6 +69,7 @@ ] }, "devDependencies": { + "@emotion/babel-plugin": "^11.13.5", "@eslint/compat": "^1.2.4", "@tanstack/eslint-plugin-query": "^5.62.1", "@testing-library/dom": "^10.4.0", @@ -96,7 +97,7 @@ "prettier": "^3.4.2", "typescript": "^4.9.3", "vite": "^6.0.3", - "vitest": "^2.1.8" + "vitest": "^3.0.0-beta.4" }, "resolutions": { "@types/react": "^18", diff --git a/internal/lookout/ui/src/components/CodeBlock.tsx b/internal/lookout/ui/src/components/CodeBlock.tsx index a1d8e740743..28bd2671f7b 100644 --- a/internal/lookout/ui/src/components/CodeBlock.tsx +++ b/internal/lookout/ui/src/components/CodeBlock.tsx @@ -1,7 +1,7 @@ import { useCallback } from "react" import { Download } from "@mui/icons-material" -import { IconButton, styled, useColorScheme } from "@mui/material" +import { IconButton, Skeleton, styled, useColorScheme } from "@mui/material" import { Highlight, themes } from "prism-react-renderer" import Prism from "prismjs" import "prismjs/components/prism-bash" @@ -13,6 +13,9 @@ import { CopyIconButton } from "./CopyIconButton" // import "prismjs/components/prism-{language}" type SupportedLanguage = "bash" | "yaml" +const DEFAULT_LOADING_LINES = 20 +const DEFAULT_LOADING_LINE_LENGTH = 80 + const DARK_PRISM_THEME = themes.oneDark const LIGHT_PRISM_THEME = themes.oneLight @@ -69,31 +72,55 @@ const CodeLineNumber = styled("span")({ }, }) -export type CodeBlockProps = { - language: SupportedLanguage | "text" +interface CodeBlockLoadingProps { + loading: true + code?: undefined | string + language?: undefined | SupportedLanguage | "text" +} + +interface CodeBlockLoadedProps { + loading: false code: string + language: SupportedLanguage | "text" +} + +interface CodeBlockDownloadbaleProps { + downloadable: true + downloadBlobType: string + downloadFileName: string +} + +interface CodeBlockNonDownloadbaleProps { + downloadable: false + downloadBlobType?: undefined | string + downloadFileName?: undefined | string +} + +interface CodeBlockbaseProps { showLineNumbers: boolean -} & ( - | { - downloadable: true - downloadBlobType: string - downloadFileName: string - } - | { downloadable: false; downloadBlobType?: undefined | string; downloadFileName?: undefined | string } -) + loadingLines?: number + loadingLineLength?: number +} + +export type CodeBlockProps = CodeBlockbaseProps & + (CodeBlockLoadedProps | CodeBlockLoadingProps) & + (CodeBlockDownloadbaleProps | CodeBlockNonDownloadbaleProps) export const CodeBlock = ({ language, code, - showLineNumbers, + loading, downloadable, downloadBlobType, downloadFileName, + showLineNumbers, + loadingLines = DEFAULT_LOADING_LINES, + loadingLineLength = DEFAULT_LOADING_LINE_LENGTH, }: CodeBlockProps) => { const { colorScheme } = useColorScheme() const downloadFile = useCallback(() => { - if (!downloadable) { + if (!downloadable || loading) { return } @@ -107,6 +134,40 @@ export const CodeBlock = ({ element.click() }, [code, downloadable, downloadBlobType, downloadFileName]) + if (loading) { + return ( + + + {({ style, tokens, getLineProps }) => ( + + + {tokens.map((line, i) => + showLineNumbers ? ( + + + + {Array(loadingLineLength).fill(" ").join("")} + + + ) : ( +
+ {Array(loadingLineLength).fill(" ").join("")} +
+ ), + )} +
+
+ )} +
+
+ ) + } + return ( diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.module.css deleted file mode 100644 index 4d543325a49..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.module.css +++ /dev/null @@ -1,17 +0,0 @@ -.container { - padding: 10px 0 10px 0; -} - -.centerContent { - display: flex; - align-items: center; - justify-content: center; -} - -.singleContainer { - padding: 0 10px 0 25px; -} - -.commandContainer { - padding: 5px 0 5px 0; -} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.tsx index c6446286f34..ea9f51b0dff 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/ContainerDetails.tsx @@ -1,14 +1,29 @@ -import { useEffect, useMemo, useState } from "react" +import { useEffect, useMemo } from "react" -import { CircularProgress, Collapse, ListItemButton, Typography } from "@mui/material" +import { + Accordion, + AccordionDetails, + AccordionSummary, + Alert, + Paper, + Skeleton, + Stack, + styled, + Typography, +} from "@mui/material" -import styles from "./ContainerDetails.module.css" import { KeyValuePairTable } from "./KeyValuePairTable" +import { SidebarTabSubheading } from "./sidebarTabContentComponents" import { useCustomSnackbar } from "../../../hooks/useCustomSnackbar" import { Job } from "../../../models/lookoutV2Models" import { useGetJobSpec } from "../../../services/lookoutV2/useGetJobSpec" +import { SPACING } from "../../../styling/spacing" import { CodeBlock } from "../../CodeBlock" +const LoadingContainerPaper = styled(Paper)(({ theme }) => ({ + padding: theme.spacing(2), +})) + export interface ContainerData { name: string command: string @@ -73,17 +88,16 @@ export const ContainerDetails = ({ job }: ContainerDetailsProps) => { if (getJobSpecResult.status === "pending") { return ( -
- -
+ + + ) } if (containers.length === 0) { - return <>No containers found. + return No containers found. } return ( -
- Containers +
{containers.map((c, i) => ( ))} @@ -92,23 +106,19 @@ export const ContainerDetails = ({ job }: ContainerDetailsProps) => { } const SingleContainerDetails = ({ container, openByDefault }: { container: ContainerData; openByDefault: boolean }) => { - const [open, setOpen] = useState(openByDefault) const entrypoint = container.command + " " + container.args - - const handleClick = () => { - setOpen(!open) - } - const containerName = container.name !== "" ? container.name : "No name" return ( - <> - {containerName} - -
-
+ + + {containerName} + + + +
Command - +
Resources @@ -131,8 +141,8 @@ const SingleContainerDetails = ({ container, openByDefault }: { container: Conta ]} />
-
- - + + + ) } diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.module.css deleted file mode 100644 index b5cc510f169..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.module.css +++ /dev/null @@ -1,5 +0,0 @@ - -.cell { - width: 50%; - word-break: break-all; -} \ No newline at end of file diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.tsx index c677bdc3fdc..7c70fb44ff0 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/KeyValuePairTable.tsx @@ -1,9 +1,13 @@ -import { Table, TableBody, TableCell, TableRow, Link } from "@mui/material" +import { Table, TableBody, TableCell, TableRow, Link, styled } from "@mui/material" import validator from "validator" -import styles from "./KeyValuePairTable.module.css" import { ActionableValueOnHover } from "../../ActionableValueOnHover" +const StyledTableCell = styled(TableCell)({ + width: "50%", + wordBreak: "break-all", +}) + export interface KeyValuePairTable { data: { key: string @@ -35,12 +39,12 @@ export const KeyValuePairTable = ({ data }: KeyValuePairTable) => { ) return ( - {key} - + {key} + {nodeToDisplay} - + ) })} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/NoRunsAlert.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/NoRunsAlert.tsx new file mode 100644 index 00000000000..f76b1834653 --- /dev/null +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/NoRunsAlert.tsx @@ -0,0 +1,23 @@ +import { Alert } from "@mui/material" + +import { JobState } from "../../../models/lookoutV2Models" + +const jobStatusMayRunInFuture: Record = { + [JobState.Queued]: true, + [JobState.Leased]: true, + [JobState.Pending]: true, + [JobState.Running]: true, + [JobState.Succeeded]: false, + [JobState.Failed]: false, + [JobState.Cancelled]: false, + [JobState.Preempted]: false, + [JobState.Rejected]: false, +} + +export interface NoRunsAlertProps { + jobState: JobState +} + +export const NoRunsAlert = ({ jobState }: NoRunsAlertProps) => ( + {jobStatusMayRunInFuture[jobState] ? "This job has not run." : "This job did not run."} +) diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.module.css deleted file mode 100644 index 8dabdca7b3f..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.module.css +++ /dev/null @@ -1,70 +0,0 @@ -.sidebarContainer { - display: flex; - flex-direction: row; - height: 100%; - width: 100%; - justify-content: space-between; -} - -.resizer { - flex: 0 0 5px; - height: 100%; - width: 5px; - background: rgba(0, 0, 0, 0.5); - cursor: col-resize; - user-select: none; - touch-action: none; -} - -.resizer.isResizing { - background: blue; - opacity: 1; -} - -@media (hover: hover) { - .resizer { - opacity: 0; - } - - *:hover > .resizer { - opacity: 1; - } -} - -.sidebarContent { - flex: 1 0 1px; - display: flex; - flex-direction: column; - gap: 0.5em; - padding: 0.5em; - height: 100%; - overflow-y: auto; -} - -.sidebarHeader { - flex: 0 0 auto; - display: flex; - flex-direction: row; - gap: 1em; -} - -.sidebarTabContext { - width: 100%; - flex: 1 0 1px; - overflow: auto; - display: flex; - flex-direction: column; -} - -.sidebarTabs { - max-width: 100%; - flex: 0 0 auto; -} - -.sidebarTabPanel { - width: 100%; - flex: 1 0 1px; - overflow: auto; - padding-bottom: 5px !important; -} - diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.test.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.test.tsx index ef76f7dc60f..1459ec72b99 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.test.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.test.tsx @@ -103,6 +103,6 @@ describe("Sidebar", () => { // Switch to runs tab await userEvent.click(getByRole("tab", { name: /Result/ })) - getByText("This job has not run.") + getByText("This job did not run.") }) }) diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx index a8f0ce2b884..d74f777dac1 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx @@ -1,9 +1,9 @@ -import { memo, SyntheticEvent, useCallback, useEffect, useRef, useState } from "react" +import { HTMLProps, memo, SyntheticEvent, useCallback, useEffect, useRef, useState } from "react" -import { TabContext, TabPanel } from "@mui/lab" -import { Box, Divider, Drawer, Tab, Tabs } from "@mui/material" +import { TabContext, TabPanel, TabPanelProps } from "@mui/lab" +import { Divider, Drawer, DrawerProps, Stack, styled, Tab, Tabs } from "@mui/material" +import { grey } from "@mui/material/colors" -import styles from "./Sidebar.module.css" import { SidebarHeader } from "./SidebarHeader" import { SidebarTabJobCommands } from "./SidebarTabJobCommands" import { SidebarTabJobDetails } from "./SidebarTabJobDetails" @@ -14,6 +14,7 @@ import { Job, JobState } from "../../../models/lookoutV2Models" import { ICordonService } from "../../../services/lookoutV2/CordonService" import { IGetJobInfoService } from "../../../services/lookoutV2/GetJobInfoService" import { IGetRunInfoService } from "../../../services/lookoutV2/GetRunInfoService" +import { SPACING } from "../../../styling/spacing" import { CommandSpec } from "../../../utils" enum SidebarTab { @@ -24,6 +25,101 @@ enum SidebarTab { Commands = "Commands", } +const SidebarContainer = styled("div")({ + display: "flex", + flexDirection: "row", + height: "100%", + width: "100%", + justifyContent: "space-between", +}) + +const SidebarContent = styled("div")({ + flex: "1 0 1px", + display: "flex", + flexDirection: "column", + gap: "0.5em", + padding: "0.5em", + height: "100%", + overflowY: "auto", +}) + +const SidebarTabContextContainer = styled("div")({ + width: "100%", + flex: "1 0 1px", + overflow: "auto", + display: "flex", + flexDirection: "column", +}) + +const SidebarTabs = styled(Tabs)({ + maxWidth: "100%", + flex: "0 0 auto", +}) + +const StyledSidebarTab = styled(Tab)({ minWidth: 50 }) + +const Resizer = styled("div", { shouldForwardProp: (prop) => prop !== "isResizing" })< + HTMLProps<"div"> & { isResizing: boolean } +>(({ isResizing, theme }) => [ + { + flex: "0 0 5px", + height: "100%", + width: 5, + backgroundColor: isResizing ? theme.palette.primary.dark : grey[500], + cursor: "col-resize", + userSelect: "none", + touchAction: "none", + opacity: isResizing ? 1 : 0, + }, + theme.applyStyles("dark", { + backgroundColor: isResizing ? theme.palette.primary.light : grey[600], + }), +]) + +const StyledDrawer = styled(Drawer, { + shouldForwardProp: (prop) => prop !== "visibleHeightAboveElement" && prop !== "sidebarWidth", +})( + ({ visibleHeightAboveElement, sidebarWidth }) => ({ + position: "sticky", + top: 0, + height: `calc(100vh - ${visibleHeightAboveElement}px)`, + width: sidebarWidth, + minWidth: 350, + + "&:hover": { + // With @emotion/babel-plugin, we can use emotion styled components to be targeted as a CSS + // selector (https://emotion.sh/docs/styled#targeting-another-emotion-component), however, our + // TS Config does not currently resolve this + [Resizer as unknown as string]: { + opacity: 1, + }, + }, + }), +) + +const StyledSidebarTabPanelStack = styled(Stack)({ + width: "100%", + height: "100%", +}) + +const StyledSidebarTabPanel = styled(TabPanel)({ + width: "100%", + flex: "1 0 1px", + overflow: "auto", + paddingBottom: 5, +}) + +const TabsContainer = styled("div")(({ theme }) => ({ + borderBottom: "1px solid", + borderColor: theme.palette.divider, +})) + +export const SidebarTabPanel = ({ children, ...props }: TabPanelProps) => ( + + {children} + +) + type ResizeState = { isResizing: boolean startX: number @@ -129,21 +225,15 @@ export const Sidebar = memo( } }, []) - const resizerClasses = (resizeRef.current ? [styles.resizer, styles.isResizing] : [styles.resizer]).join(" ") return ( - -
-
handleMouseDown(e.clientX)} id="dragger" className={resizerClasses} /> - - + + handleMouseDown(e.clientX)} id="dragger" isResizing={resizeRef.current} /> + + -
+ - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - + - + - + - + -
-
-
- + + + + ) }, ) diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarHeader.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarHeader.tsx index 711bf03b736..16697cc0791 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarHeader.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarHeader.tsx @@ -1,66 +1,74 @@ import { memo, ReactNode } from "react" import { Close } from "@mui/icons-material" -import { Box, IconButton, Typography } from "@mui/material" +import { IconButton, styled, Typography } from "@mui/material" import { Job } from "../../../models/lookoutV2Models" import { formatTimeSince } from "../../../utils/jobsTableFormatters" import { CopyIconButton } from "../../CopyIconButton" import { JobStateChip } from "../JobStateChip" +const HeaderContainer = styled("div")({ + flex: "0 0 auto", + display: "flex", + flexDirection: "row", + gap: "1em", +}) + +const HeaderCloseButtonContainer = styled("div")({ + flexGrow: 1, + display: "flex", + alignItems: "center", + justifyContent: "end", +}) + +const JobIdContainer = styled("div")({ display: "flex", flexDirection: "row", gap: "1ch" }) + +const JobId = styled("div")({ wordBreak: "break-all" }) + export interface SidebarHeaderProps { job: Job onClose: () => void - className?: string } -export const SidebarHeader = memo(({ job, onClose, className }: SidebarHeaderProps) => { - return ( - - -
- {job.jobId} -
-
- -
+export const SidebarHeader = memo(({ job, onClose }: SidebarHeaderProps) => ( + + + {job.jobId} +
+
- } - /> - - for {formatTimeSince(job.lastTransitionTime)} - - } - /> - + + } + /> + + for {formatTimeSince(job.lastTransitionTime)} + + } + /> + + -
- ) -}) + + +)) interface HeaderSectionProps { title: string value: ReactNode } -const HeaderSection = ({ title, value }: HeaderSectionProps) => { - return ( -
- - {title} - - {value} -
- ) -} +const HeaderSection = ({ title, value }: HeaderSectionProps) => ( +
+ theme.typography.subtitle2.fontSize}> + {title} + + {value} +
+) diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobCommands.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobCommands.tsx index 03cc88ef075..938175564e2 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobCommands.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobCommands.tsx @@ -1,8 +1,11 @@ import { OpenInNew } from "@mui/icons-material" -import { Link, Stack, Typography } from "@mui/material" +import { Link, Stack } from "@mui/material" import { template, templateSettings } from "lodash" +import { Fragment } from "react/jsx-runtime" import validator from "validator" +import { NoRunsAlert } from "./NoRunsAlert" +import { SidebarTabHeading } from "./sidebarTabContentComponents" import { Job } from "../../../models/lookoutV2Models" import { SPACING } from "../../../styling/spacing" import { CommandSpec } from "../../../utils" @@ -26,19 +29,17 @@ function getCommandText(job: Job, commandSpec: CommandSpec): string { export const SidebarTabJobCommands = ({ job, commandSpecs }: SidebarTabJobCommandsProps) => { if ((job.runs ?? []).length === 0) { - return null + return } return ( - + <> {commandSpecs.map((commandSpec) => { const { name } = commandSpec const commandText = getCommandText(job, commandSpec) return ( -
- - {name} - + + {name} {validator.isURL(commandText) ? ( @@ -47,11 +48,17 @@ export const SidebarTabJobCommands = ({ job, commandSpecs }: SidebarTabJobComman ) : ( - + )} -
+ ) })} -
+ ) } diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobDetails.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobDetails.tsx index 5d5c6c925c6..c44c0824036 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobDetails.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobDetails.tsx @@ -1,7 +1,8 @@ -import { Typography } from "@mui/material" +import { Alert } from "@mui/material" import { ContainerDetails } from "./ContainerDetails" import { KeyValuePairTable } from "./KeyValuePairTable" +import { SidebarTabHeading } from "./sidebarTabContentComponents" import { Job } from "../../../models/lookoutV2Models" import { formatBytes, formatCpu } from "../../../utils/resourceUtils" @@ -21,9 +22,9 @@ export const SidebarTabJobDetails = ({ job }: SidebarTabJobDetailsProps) => { ] return ( <> - Info: + Info - Requests: + Requests { { key: "Ephemeral storage", value: formatBytes(job.ephemeralStorage) }, ]} /> - Annotations: + Annotations {Object.keys(job.annotations).length > 0 ? ( ({ @@ -43,8 +44,9 @@ export const SidebarTabJobDetails = ({ job }: SidebarTabJobDetailsProps) => { }))} /> ) : ( - " No annotations" + No annotations )} + Containers ) diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.module.css deleted file mode 100644 index f1aac7e7509..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.module.css +++ /dev/null @@ -1,34 +0,0 @@ -.logsHeader { - flex: 0 0 auto; - max-width: 100%; - display: flex; - flex-direction: row; - align-items: flex-start; - justify-content: center; -} - -.logOption { - flex: 1 1 30%; - padding: 0 5px 0 5px; -} - -.loading { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - margin: 0.5em 0 0.5em 0; -} - -.emptyLogView { - display: flex; - align-items: center; - justify-content: center; - margin: 10px 0 10px 0; -} - -.didNotRun { - display: flex; - align-items: center; - justify-content: center; -} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.tsx index 4b3d0025478..1479c48fefd 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobLogs.tsx @@ -5,7 +5,6 @@ import { Alert, alpha, Checkbox, - CircularProgress, FormControl, FormControlLabel, FormGroup, @@ -13,11 +12,11 @@ import { InputLabel, MenuItem, Select, - Stack, + Skeleton, styled, } from "@mui/material" -import styles from "./SidebarTabJobLogs.module.css" +import { NoRunsAlert } from "./NoRunsAlert" import { useCustomSnackbar } from "../../../hooks/useCustomSnackbar" import { Job, JobRun } from "../../../models/lookoutV2Models" import { LogLine } from "../../../services/lookoutV2/LogService" @@ -25,9 +24,17 @@ import { useGetJobSpec } from "../../../services/lookoutV2/useGetJobSpec" import { useGetLogs } from "../../../services/lookoutV2/useGetLogs" import { SPACING } from "../../../styling/spacing" -const Container = styled(Stack)({ - height: "100%", +const LogsHeader = styled("div")(({ theme }) => ({ maxWidth: "100%", + display: "flex", + flexDirection: "row", + alignItems: "center", + justifyContent: "start", + gap: theme.spacing(SPACING.lg), +})) + +const ContainerSelect = styled(Select)({ + width: "25ch", }) export interface SidebarTabJobLogsProps { @@ -127,18 +134,15 @@ export const SidebarTabJobLogs = ({ job }: SidebarTabJobLogsProps) => { }, [getLogsResult.fetchNextPage, getLogsResult.status, getLogsEnabled]) if (job.runs.length === 0) { - return
This job did not run.
+ return } return ( - -
-
+ <> + +
{ const index = e.target.value as number setRunIndex(index) }} - style={{ - maxWidth: "300px", - }} > {runsNewestFirst.map((run, i) => ( @@ -167,16 +168,13 @@ export const SidebarTabJobLogs = ({ job }: SidebarTabJobLogsProps) => {
-
+
Container - +
-
+
{ />
-
+
{ />
-
+ {getJobSpecResult.status === "pending" || (getLogsResult.status === "pending" && ( -
- -
+ + + + + + + ))} {getLogsResult.status === "success" && ( @@ -254,7 +253,7 @@ export const SidebarTabJobLogs = ({ job }: SidebarTabJobLogsProps) => {
)} - + ) } @@ -315,9 +314,9 @@ function LogView({ logLines, showTimestamps }: { logLines: LogLine[]; showTimest if (logLines.length === 0) { return ( -
+ No logs to display -
+ ) } diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.module.css deleted file mode 100644 index c7820321773..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.loading { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - margin-bottom: 0.5em; -} - -.markUnschedulableButton { - display: flex; - align-items: center; - justify-content: center; - margin: 10px 0 10px 0; -} - -.markUnschedulableDialog { - display: flex; - align-items: center !important; - justify-content: center !important; -} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.tsx index 9a0ac0433b6..86598881f21 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobResult.tsx @@ -6,27 +6,44 @@ import { AccordionDetails, AccordionSummary, Button, - CircularProgress, Dialog, DialogActions, DialogContent, DialogTitle, + Skeleton, + styled, Tooltip, Typography, } from "@mui/material" import { KeyValuePairTable } from "./KeyValuePairTable" -import styles from "./SidebarTabJobResult.module.css" +import { NoRunsAlert } from "./NoRunsAlert" +import { SidebarTabHeading, SidebarTabSubheading } from "./sidebarTabContentComponents" import { useCustomSnackbar } from "../../../hooks/useCustomSnackbar" import { Job, JobRun, JobState } from "../../../models/lookoutV2Models" import { getAccessToken, useUserManager } from "../../../oidc" import { ICordonService } from "../../../services/lookoutV2/CordonService" import { IGetJobInfoService } from "../../../services/lookoutV2/GetJobInfoService" import { IGetRunInfoService } from "../../../services/lookoutV2/GetRunInfoService" +import { SPACING } from "../../../styling/spacing" import { getErrorMessage } from "../../../utils" import { formatJobRunState, formatTimeSince, formatUtcDate } from "../../../utils/jobsTableFormatters" import { CodeBlock } from "../../CodeBlock" +const MarkNodeUnschedulableButtonContainer = styled("div")(({ theme }) => ({ + display: "flex", + justifyContent: "center", + padding: theme.spacing(SPACING.sm), +})) + +const loadingAccordion = ( + + + + + +) + export interface SidebarTabJobResultProps { job: Job runInfoService: IGetRunInfoService @@ -216,126 +233,132 @@ export const SidebarTabJobResult = ({ } } return ( -
+ <> {topLevelError !== "" ? ( <> - {topLevelErrorTitle}: - + {topLevelErrorTitle} + ) : null} - Runs: - {runsNewestFirst.map((run, i) => { - return ( - - } aria-controls="panel1a-content"> - - {formatUtcDate(getRunScheduledTime(run))} UTC ({formatJobRunState(run.jobRunState)}) - - - - pair.value !== "")} - /> - - {run.node !== undefined && run.node !== "" && ( - <> -
- - - - - Mark node as unschedulable - - - Are you sure you want to take node {run.node} out of the farm? - - - - - - - -
- - )} - {runErrorLoadingMap.has(run.runId) && runErrorLoadingMap.get(run.runId) === "Loading" && ( -
- -
- )} - {runErrorMap.has(run.runId) && runErrorMap.get(run.runId) !== "" && ( - - } aria-controls="panel1d-content" id="panel1d-header"> - Error - - - - - - )} - {runDebugMessageLoadingMap.has(run.runId) && runDebugMessageLoadingMap.get(run.runId) === "Loading" && ( -
- -
- )} - {runDebugMessageMap.has(run.runId) && runDebugMessageMap.get(run.runId) !== "" && ( - - } aria-controls="panel1d-content" id="panel1d-header"> - Debug - - - - - - )} -
- ) - })} - {runsNewestFirst.length === 0 && <>This job has not run.} -
+ {runsNewestFirst.length === 0 ? ( + + ) : ( + <> + Runs +
+ {runsNewestFirst.map((run, i) => { + const node = run.node || undefined // set to undefined if it is an empty string + const runErrorLoading = runErrorLoadingMap.get(run.runId) === "Loading" + const runError = runErrorMap.get(run.runId) || undefined // set to undefined if it is an empty string + const runDebugMessageLoading = runDebugMessageLoadingMap.get(run.runId) === "Loading" + const runDebugMessage = runDebugMessageMap.get(run.runId) || undefined // set to undefined if it is an empty string + return ( + + + + {formatUtcDate(getRunScheduledTime(run))} UTC ({formatJobRunState(run.jobRunState)}) + + + + pair.value !== "")} + /> + {node && ( + <> + + + + + + + Mark node as unschedulable + + + Are you sure you want to take node {node} out of the farm? + + + + + + + + + )} + + {runErrorLoading &&
{loadingAccordion}
} + {runError && ( + + Error + + + + + )} + {runDebugMessageLoading &&
{loadingAccordion}
} + {runDebugMessage && ( + + } aria-controls="panel1d-content" id="panel1d-header"> + Debug + + + + + + )} +
+ ) + })} +
+ + )} + ) } diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.module.css b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.module.css deleted file mode 100644 index 1597d0454a8..00000000000 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.module.css +++ /dev/null @@ -1,7 +0,0 @@ -.loading { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - margin-bottom: 0.5em; -} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.tsx index 39669e44fbb..874c68d92f5 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabJobYaml.tsx @@ -1,9 +1,7 @@ import { useEffect } from "react" -import { CircularProgress } from "@mui/material" import yaml from "js-yaml" -import styles from "./SidebarTabJobYaml.module.css" import { useCustomSnackbar } from "../../../hooks/useCustomSnackbar" import { Job } from "../../../models/lookoutV2Models" import { useGetJobSpec } from "../../../services/lookoutV2/useGetJobSpec" @@ -50,12 +48,8 @@ export const SidebarTabJobYaml = ({ job }: SidebarTabJobYamlProps) => { }, [getJobSpecResult.status, getJobSpecResult.error]) return ( -
- {getJobSpecResult.status === "pending" && ( -
- -
- )} + <> + {getJobSpecResult.status === "pending" && } {getJobSpecResult.status === "success" && ( { downloadable={getJobSpecResult.status === "success"} downloadBlobType="text/plain" downloadFileName={`${job.jobId}.yaml`} + loading={false} /> )} -
+ ) } diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx new file mode 100644 index 00000000000..63928d7cd38 --- /dev/null +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx @@ -0,0 +1,15 @@ +import { styled, Typography, TypographyProps } from "@mui/material" + +const StyledHeading = styled(Typography)(({ theme }) => ({ + fontSize: theme.typography.h6.fontSize, + fontWeight: theme.typography.fontWeightMedium, +})) + +export const SidebarTabHeading = (props: TypographyProps) => + +const StyledSubheading = styled(Typography)(({ theme }) => ({ + fontSize: theme.typography.subtitle1.fontSize, + fontWeight: theme.typography.fontWeightMedium, +})) + +export const SidebarTabSubheading = (props: TypographyProps) => diff --git a/internal/lookout/ui/src/theme/components/accordion.tsx b/internal/lookout/ui/src/theme/components/accordion.tsx new file mode 100644 index 00000000000..81e492a7924 --- /dev/null +++ b/internal/lookout/ui/src/theme/components/accordion.tsx @@ -0,0 +1,31 @@ +import { ExpandMore } from "@mui/icons-material" +import { Components, Theme } from "@mui/material" + +export const MuiAccordion: Components["MuiAccordion"] = { + defaultProps: { disableGutters: true, variant: "outlined" }, + styleOverrides: { + root: ({ theme }) => ({ + border: `1px solid ${theme.palette.divider}`, + + "&:not(:last-child)": { + borderBottom: 0, + }, + + "&::before": { + display: "none", + }, + }), + }, +} + +export const MuiAccordionSummary: Components["MuiAccordionSummary"] = { + defaultProps: { expandIcon: }, +} + +export const MuiAccordionDetails: Components["MuiAccordionDetails"] = { + styleOverrides: { + root: ({ theme }) => ({ + borderTop: `0.5px solid ${theme.palette.divider}`, + }), + }, +} diff --git a/internal/lookout/ui/src/theme/components/chip.ts b/internal/lookout/ui/src/theme/components/chip.ts index 718a52352f9..e63908d5d36 100644 --- a/internal/lookout/ui/src/theme/components/chip.ts +++ b/internal/lookout/ui/src/theme/components/chip.ts @@ -8,24 +8,6 @@ declare module "@mui/material/Chip" { type ChipColor = Exclude -const getShadedChipTextColor = (color: ChipColor, theme: Theme): string => { - switch (theme.palette.mode) { - case "light": - return color === "default" ? theme.palette.grey[400] : theme.palette[color].dark - case "dark": - return color === "default" ? theme.palette.grey[700] : theme.palette[color].light - } -} - -const getShadedChipBackgroundColor = (color: ChipColor, theme: Theme): string | undefined => { - switch (theme.palette.mode) { - case "light": - return color === "default" ? undefined : alpha(theme.palette[color].light, 0.12) - case "dark": - return color === "default" ? undefined : alpha(theme.palette[color].dark, 0.12) - } -} - const ChipColorClassesKeyMap: Record = { default: "colorDefault", primary: "colorPrimary", @@ -54,10 +36,16 @@ export const MuiChip: Components["MuiChip"] = { return { ...acc, - [`&.MuiChip-${chipClassesKey}`]: { - backgroundColor: getShadedChipBackgroundColor(color, theme), - color: getShadedChipTextColor(color, theme), - }, + [`&.MuiChip-${chipClassesKey}`]: [ + { + backgroundColor: color === "default" ? undefined : alpha(theme.palette[color].light, 0.12), + color: color === "default" ? theme.palette.grey[400] : theme.palette[color].dark, + }, + theme.applyStyles("dark", { + backgroundColor: color === "default" ? undefined : alpha(theme.palette[color].dark, 0.12), + color: color === "default" ? theme.palette.grey[700] : theme.palette[color].light, + }), + ], } }, {}), }, diff --git a/internal/lookout/ui/src/theme/theme.ts b/internal/lookout/ui/src/theme/theme.ts index 4eb8a250ed3..9b8639103b8 100644 --- a/internal/lookout/ui/src/theme/theme.ts +++ b/internal/lookout/ui/src/theme/theme.ts @@ -1,5 +1,6 @@ import { createTheme } from "@mui/material" +import { MuiAccordion, MuiAccordionDetails, MuiAccordionSummary } from "./components/accordion" import { MuiChip } from "./components/chip" import { MuiTooltip } from "./components/tooltip" import { darkModePalette, lightModePalette } from "./palette" @@ -7,6 +8,6 @@ import { typography } from "./typography" export const theme = createTheme({ colorSchemes: { dark: { palette: darkModePalette }, light: { palette: lightModePalette } }, - components: { MuiChip, MuiTooltip }, + components: { MuiAccordion, MuiAccordionDetails, MuiAccordionSummary, MuiChip, MuiTooltip }, typography, }) diff --git a/internal/lookout/ui/vite.config.mts b/internal/lookout/ui/vite.config.mts index b26dc139c63..c0d8e4559e6 100644 --- a/internal/lookout/ui/vite.config.mts +++ b/internal/lookout/ui/vite.config.mts @@ -2,7 +2,40 @@ import react from "@vitejs/plugin-react" import { defineConfig, ProxyOptions } from "vite" export default defineConfig({ - plugins: [react()], + plugins: [ + react({ + jsxImportSource: "@emotion/react", + babel: { + plugins: [ + [ + "@emotion/babel-plugin", + { + importMap: { + "@mui/system": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/system", "styled"], + }, + }, + "@mui/material/styles": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/material/styles", "styled"], + }, + }, + "@mui/material": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/material", "styled"], + }, + }, + }, + }, + ], + ], + }, + }), + ], server: { port: 3000, proxy: ["/api", "/config"].reduce>( diff --git a/internal/lookout/ui/vitest.config.mts b/internal/lookout/ui/vitest.config.mts index 69f7965f88e..6398518c16b 100644 --- a/internal/lookout/ui/vitest.config.mts +++ b/internal/lookout/ui/vitest.config.mts @@ -1,3 +1,4 @@ +import react from "@vitejs/plugin-react" import { defineConfig } from "vitest/config" export default defineConfig({ @@ -8,4 +9,38 @@ export default defineConfig({ setupFiles: ["./src/setupTests.ts"], outputFile: { junit: "./junit.xml" }, }, + plugins: [ + react({ + jsxImportSource: "@emotion/react", + babel: { + plugins: [ + [ + "@emotion/babel-plugin", + { + importMap: { + "@mui/system": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/system", "styled"], + }, + }, + "@mui/material/styles": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/material/styles", "styled"], + }, + }, + "@mui/material": { + styled: { + canonicalImport: ["@emotion/styled", "default"], + styledBaseImport: ["@mui/material", "styled"], + }, + }, + }, + }, + ], + ], + }, + }), + ], }) diff --git a/internal/lookout/ui/yarn.lock b/internal/lookout/ui/yarn.lock index f693a341de7..462a894822e 100644 --- a/internal/lookout/ui/yarn.lock +++ b/internal/lookout/ui/yarn.lock @@ -15,14 +15,18 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": +"@asamuzakjp/css-color@^2.8.2": + version "2.8.2" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-2.8.2.tgz#817e84b0cc9f426379f4b549836f32b670c43649" + integrity sha512-RtWv9jFN2/bLExuZgFFZ0I3pWWeezAHGgrmjqGGWclATl1aDe3yhCUaI0Ilkp6OCk9zX7+FjvDasEX8Q9Rxc5w== + dependencies: + "@csstools/css-calc" "^2.1.1" + "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + lru-cache "^11.0.2" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": version "7.26.2" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== @@ -79,14 +83,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-module-imports@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.25.9": +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== @@ -108,21 +105,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - "@babel/helper-string-parser@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== -"@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - "@babel/helper-validator-identifier@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" @@ -141,22 +128,7 @@ "@babel/template" "^7.25.9" "@babel/types" "^7.26.0" -"@babel/highlight@^7.18.6": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" - integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/parser@^7.1.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" - integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== - -"@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234" integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== @@ -177,21 +149,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" - integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.18.3": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.26.0": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== @@ -220,16 +178,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.3.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== @@ -237,6 +186,34 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@csstools/color-helpers@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.1.tgz#829f1c76f5800b79c51c709e2f36821b728e0e10" + integrity sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== + +"@csstools/css-calc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.1.tgz#a7dbc66627f5cf458d42aed14bda0d3860562383" + integrity sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag== + +"@csstools/css-color-parser@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz#442d61d58e54ad258d52c309a787fceb33906484" + integrity sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA== + dependencies: + "@csstools/color-helpers" "^5.0.1" + "@csstools/css-calc" "^2.1.1" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" + integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" + integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== + "@dnd-kit/accessibility@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz#3b4202bd6bb370a0730f6734867785919beac6af" @@ -293,10 +270,10 @@ source-map "^0.5.7" stylis "4.2.0" -"@emotion/cache@^11.13.5": - version "11.13.5" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.13.5.tgz#e78dad0489e1ed7572507ba8ed9d2130529e4266" - integrity sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g== +"@emotion/cache@^11.13.5", "@emotion/cache@^11.14.0": + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" + integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== dependencies: "@emotion/memoize" "^0.9.0" "@emotion/sheet" "^1.4.0" @@ -322,15 +299,15 @@ integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== "@emotion/react@^11.13.5": - version "11.13.5" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.13.5.tgz#fc818ff5b13424f86501ba4d0740f343ae20b8d9" - integrity sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ== + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d" + integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.13.5" - "@emotion/cache" "^11.13.5" + "@emotion/cache" "^11.14.0" "@emotion/serialize" "^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" "@emotion/utils" "^1.4.2" "@emotion/weak-memoize" "^0.4.0" hoist-non-react-statics "^3.3.1" @@ -352,15 +329,15 @@ integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== "@emotion/styled@^11.13.5": - version "11.13.5" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.13.5.tgz#0fa6602227414c5e42cf267506e3c35bae655df9" - integrity sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ== + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.14.0.tgz#f47ca7219b1a295186d7661583376fcea95f0ff3" + integrity sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.13.5" "@emotion/is-prop-valid" "^1.3.0" "@emotion/serialize" "^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" "@emotion/utils" "^1.4.2" "@emotion/unitless@^0.10.0": @@ -368,10 +345,10 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745" integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg== -"@emotion/use-insertion-effect-with-fallbacks@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf" - integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw== +"@emotion/use-insertion-effect-with-fallbacks@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz#8a8cb77b590e09affb960f4ff1e9a89e532738bf" + integrity sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg== "@emotion/utils@^1.4.2": version "1.4.2" @@ -383,249 +360,132 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/aix-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" - integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" - integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" - integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/android-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" - integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" - integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/darwin-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" - integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" - integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/freebsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" - integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" - integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" - integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" - integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-loong64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" - integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-mips64el@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" - integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" - integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-riscv64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" - integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-s390x@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" - integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/linux-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" - integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/netbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" - integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== - -"@esbuild/openbsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" - integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/openbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" - integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/sunos-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" - integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" - integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" - integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - -"@esbuild/win32-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" - integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/eslint-utils@^4.4.0": +"@esbuild/aix-ppc64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" + integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== + +"@esbuild/android-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" + integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== + +"@esbuild/android-arm@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" + integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== + +"@esbuild/android-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" + integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== + +"@esbuild/darwin-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" + integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== + +"@esbuild/darwin-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" + integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== + +"@esbuild/freebsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" + integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== + +"@esbuild/freebsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" + integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== + +"@esbuild/linux-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" + integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== + +"@esbuild/linux-arm@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" + integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== + +"@esbuild/linux-ia32@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" + integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== + +"@esbuild/linux-loong64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" + integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== + +"@esbuild/linux-mips64el@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" + integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== + +"@esbuild/linux-ppc64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" + integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== + +"@esbuild/linux-riscv64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" + integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== + +"@esbuild/linux-s390x@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" + integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== + +"@esbuild/linux-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f" + integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q== + +"@esbuild/netbsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" + integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== + +"@esbuild/netbsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40" + integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw== + +"@esbuild/openbsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" + integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== + +"@esbuild/openbsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" + integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== + +"@esbuild/sunos-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" + integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== + +"@esbuild/win32-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" + integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== + +"@esbuild/win32-ia32@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" + integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== + +"@esbuild/win32-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b" + integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.1" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== @@ -691,19 +551,19 @@ levn "^0.4.1" "@floating-ui/core@^1.6.0": - version "1.6.8" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12" - integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA== + version "1.6.9" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.9.tgz#64d1da251433019dafa091de9b2886ff35ec14e6" + integrity sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw== dependencies: - "@floating-ui/utils" "^0.2.8" + "@floating-ui/utils" "^0.2.9" "@floating-ui/dom@^1.0.0": - version "1.6.12" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" - integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w== + version "1.6.13" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.13.tgz#a8a938532aea27a95121ec16e667a7cbe8c59e34" + integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w== dependencies: "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.8" + "@floating-ui/utils" "^0.2.9" "@floating-ui/react-dom@^2.1.1": version "2.1.2" @@ -712,43 +572,43 @@ dependencies: "@floating-ui/dom" "^1.0.0" -"@floating-ui/utils@^0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62" - integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig== +"@floating-ui/utils@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429" + integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== -"@fortawesome/fontawesome-common-types@6.7.1", "@fortawesome/fontawesome-common-types@^6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz#6201640f39fdcf8e41cd9d1a92b2da3a96817fa4" - integrity sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ== +"@fortawesome/fontawesome-common-types@6.7.2", "@fortawesome/fontawesome-common-types@^6.7.1": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz#7123d74b0c1e726794aed1184795dbce12186470" + integrity sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg== "@fortawesome/fontawesome-svg-core@^6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz#1f8ebb6f35cf02f89c110198514e848de17ac99e" - integrity sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g== + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz#0ac6013724d5cc327c1eb81335b91300a4fce2f2" + integrity sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.1" + "@fortawesome/fontawesome-common-types" "6.7.2" "@fortawesome/free-brands-svg-icons@^6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz#1c1bbbac3ab897d02322b18fbbdf4d9b67ec1619" - integrity sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA== + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz#4ebee8098f31da5446dda81edc344025eb59b27e" + integrity sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.1" + "@fortawesome/fontawesome-common-types" "6.7.2" "@fortawesome/free-regular-svg-icons@^6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.1.tgz#d7ec06f896ee91116a388a5a234cd26420ccdfe4" - integrity sha512-e13cp+bAx716RZOTQ59DhqikAgETA9u1qTBHO3e3jMQQ+4H/N1NC1ZVeFYt1V0m+Th68BrEL1/X6XplISutbXg== + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz#f1651e55e6651a15589b0569516208f9c65f96db" + integrity sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.1" + "@fortawesome/fontawesome-common-types" "6.7.2" "@fortawesome/free-solid-svg-icons@^6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.1.tgz#c1f9a6c25562a12c283e87e284f9d82a5b0dbcc0" - integrity sha512-BTKc0b0mgjWZ2UDKVgmwaE0qt0cZs6ITcDgjrti5f/ki7aF5zs+N91V6hitGo3TItCFtnKg6cUVGdTmBFICFRg== + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz#fe25883b5eb8464a82918599950d283c465b57f6" + integrity sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA== dependencies: - "@fortawesome/fontawesome-common-types" "6.7.1" + "@fortawesome/fontawesome-common-types" "6.7.2" "@fortawesome/react-fontawesome@^0.2.2": version "0.2.2" @@ -811,15 +671,6 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/gen-mapping@^0.3.5": version "0.3.8" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" @@ -829,57 +680,29 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.5.0": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" @@ -888,75 +711,75 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@mui/base@5.0.0-beta.64": - version "5.0.0-beta.64" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.64.tgz#694992e79d28beaf66205187022c9e68afb3cc12" - integrity sha512-nu663PoZs/Pee0fkPYkjUADfT+AAi2QWvvHghDhLeSx8sa3i+GGaOoUsFmB4CPlyYqWfq9hRGA7H1T3d6VrGgw== +"@mui/base@5.0.0-beta.68": + version "5.0.0-beta.68" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.68.tgz#a651d0f490dcf9495ce297a2f7403cfa6fd94841" + integrity sha512-F1JMNeLS9Qhjj3wN86JUQYBtJoXyQvknxlzwNl6eS0ZABo1MiohMONj3/WQzYPSXIKC2bS/ZbyBzdHhi2GnEpA== dependencies: "@babel/runtime" "^7.26.0" "@floating-ui/react-dom" "^2.1.1" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.1.10" + "@mui/types" "^7.2.20" + "@mui/utils" "^6.3.0" "@popperjs/core" "^2.11.8" clsx "^2.1.1" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.1.10.tgz#871b5a4876cfd0beac6672fe50d57e0c0a53db36" - integrity sha512-LY5wdiLCBDY7u+Od8UmFINZFGN/5ZU90fhAslf/ZtfP+5RhuY45f679pqYIxe0y54l6Gkv9PFOc8Cs10LDTBYg== +"@mui/core-downloads-tracker@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.3.1.tgz#e954cd6be58d92f3acc255089413357b6c4e08c6" + integrity sha512-2OmnEyoHpj5//dJJpMuxOeLItCCHdf99pjMFfUFdBteCunAK9jW+PwEo4mtdGcLs7P+IgZ+85ypd52eY4AigoQ== "@mui/icons-material@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.1.10.tgz#9ed27fc750ab4811da94c1a1252253d9d1e86cc2" - integrity sha512-G6P1BCSt6EQDcKca47KwvKjlqgOXFbp2I3oWiOlFgKYTANBH89yk7ttMQ5ysqNxSYAB+4TdM37MlPYp4+FkVrQ== + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.3.1.tgz#f28b5ecc3a4d8e8be389f9e9e5738759c7a98240" + integrity sha512-nJmWj1PBlwS3t1PnoqcixIsftE+7xrW3Su7f0yrjPw4tVjYrgkhU0hrRp+OlURfZ3ptdSkoBkalee9Bhf1Erfw== dependencies: "@babel/runtime" "^7.26.0" "@mui/lab@^6.0.0-beta.18": - version "6.0.0-beta.18" - resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-6.0.0-beta.18.tgz#f0e853d04188b1c0a77b844238904626dc370a93" - integrity sha512-O7jNn36Jb0530NOZeFLj33RGB57x3kfyiYOaj5sL/j/Pmq9T0tonKMkoW/AUCucmBa7RuEzEYMyqBpfqminebA== + version "6.0.0-beta.22" + resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-6.0.0-beta.22.tgz#25e85e4f5600de426d12d87b5466e1f77ac31870" + integrity sha512-9nwUfBj+UzoQJOCbqV+JcCSJ74T+gGWrM1FMlXzkahtYUcMN+5Zmh2ArlttW3zv2dZyCzp7K5askcnKF0WzFQg== dependencies: "@babel/runtime" "^7.26.0" - "@mui/base" "5.0.0-beta.64" - "@mui/system" "^6.1.10" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.1.10" + "@mui/base" "5.0.0-beta.68" + "@mui/system" "^6.3.1" + "@mui/types" "^7.2.21" + "@mui/utils" "^6.3.1" clsx "^2.1.1" prop-types "^15.8.1" "@mui/material@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.1.10.tgz#eab2a9df24c68548d0df2b5b25c0410311313ff9" - integrity sha512-txnwYObY4N9ugv5T2n5h1KcbISegZ6l65w1/7tpSU5OB6MQCU94YkP8n/3slDw2KcEfRk4+4D8EUGfhSPMODEQ== + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.3.1.tgz#75c51a4f4fefa9879fb197e8fae11dc6891a9d0b" + integrity sha512-ynG9ayhxgCsHJ/dtDcT1v78/r2GwQyP3E0hPz3GdPRl0uFJz/uUTtI5KFYwadXmbC+Uv3bfB8laZ6+Cpzh03gA== dependencies: "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.1.10" - "@mui/system" "^6.1.10" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.1.10" + "@mui/core-downloads-tracker" "^6.3.1" + "@mui/system" "^6.3.1" + "@mui/types" "^7.2.21" + "@mui/utils" "^6.3.1" "@popperjs/core" "^2.11.8" - "@types/react-transition-group" "^4.4.11" + "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" - react-is "^18.3.1" + react-is "^19.0.0" react-transition-group "^4.4.5" -"@mui/private-theming@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.1.10.tgz#cfe8f70c30351208e8ca5c2b16c6992ce0288559" - integrity sha512-DqgsH0XFEweeG3rQfVkqTkeXcj/E76PGYWag8flbPdV8IYdMo+DfVdFlZK8JEjsaIVD2Eu1kJg972XnH5pfnBQ== +"@mui/private-theming@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.3.1.tgz#7069e2471a9e456c2784a7df1f8103bf264e72eb" + integrity sha512-g0u7hIUkmXmmrmmf5gdDYv9zdAig0KoxhIQn1JN8IVqApzf/AyRhH3uDGx5mSvs8+a1zb4+0W6LC260SyTTtdQ== dependencies: "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.1.10" + "@mui/utils" "^6.3.1" prop-types "^15.8.1" -"@mui/styled-engine@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.1.10.tgz#0f093defd35934b6accff156011c9deac22356be" - integrity sha512-+NV9adKZYhslJ270iPjf2yzdVJwav7CIaXcMlPSi1Xy1S/zRe5xFgZ6BEoMdmGRpr34lIahE8H1acXP2myrvRw== +"@mui/styled-engine@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.3.1.tgz#eed2b1cc6e99c2079eed981facab687b0fe6667a" + integrity sha512-/7CC0d2fIeiUxN5kCCwYu4AWUDd9cCTxWCyo0v/Rnv6s8uk6hWgJC3VLZBoDENBHf/KjqDZuYJ2CR+7hD6QYww== dependencies: "@babel/runtime" "^7.26.0" "@emotion/cache" "^11.13.5" @@ -965,36 +788,36 @@ csstype "^3.1.3" prop-types "^15.8.1" -"@mui/system@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.1.10.tgz#d8a6f9099883880182cfafc08fc8ab8099647c01" - integrity sha512-5YNIqxETR23SIkyP7MY2fFnXmplX/M4wNi2R+10AVRd3Ub+NLctWY/Vs5vq1oAMF0eSDLhRTGUjaUe+IGSfWqg== +"@mui/system@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.3.1.tgz#7e51745c9d56423173a0dba7ea2b9bcb6232a90f" + integrity sha512-AwqQ3EAIT2np85ki+N15fF0lFXX1iFPqenCzVOSl3QXKy2eifZeGd9dGtt7pGMoFw5dzW4dRGGzRpLAq9rkl7A== dependencies: "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.1.10" - "@mui/styled-engine" "^6.1.10" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.1.10" + "@mui/private-theming" "^6.3.1" + "@mui/styled-engine" "^6.3.1" + "@mui/types" "^7.2.21" + "@mui/utils" "^6.3.1" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/types@^7.2.19": - version "7.2.19" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.19.tgz#c941954dd24393fdce5f07830d44440cf4ab6c80" - integrity sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA== +"@mui/types@^7.2.20", "@mui/types@^7.2.21": + version "7.2.21" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.21.tgz#63f50874eda8e4a021a69aaa8ba9597369befda2" + integrity sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww== -"@mui/utils@^6.1.10": - version "6.1.10" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.1.10.tgz#edf8c5c9cf930a8290b5347550ece15f5800b1c3" - integrity sha512-1ETuwswGjUiAf2dP9TkBy8p49qrw2wXa+RuAjNTRE5+91vtXJ1HKrs7H9s8CZd1zDlQVzUcUAPm9lpQwF5ogTw== +"@mui/utils@^6.3.0", "@mui/utils@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.3.1.tgz#0ec705d4a0bbcb69fca8da5225f9c52f8ac49905" + integrity sha512-sjGjXAngoio6lniQZKJ5zGfjm+LD2wvLwco7FbKe1fu8A7VIFmz2SwkLb+MDPLNX1lE7IscvNNyh1pobtZg2tw== dependencies: "@babel/runtime" "^7.26.0" - "@mui/types" "^7.2.19" - "@types/prop-types" "^15.7.13" + "@mui/types" "^7.2.21" + "@types/prop-types" "^15.7.14" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^18.3.1" + react-is "^19.0.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1032,100 +855,100 @@ resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== -"@rollup/rollup-android-arm-eabi@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz#7f4c4d8cd5ccab6e95d6750dbe00321c1f30791e" - integrity sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ== - -"@rollup/rollup-android-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz#17ea71695fb1518c2c324badbe431a0bd1879f2d" - integrity sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA== - -"@rollup/rollup-darwin-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz#dac0f0d0cfa73e7d5225ae6d303c13c8979e7999" - integrity sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ== - -"@rollup/rollup-darwin-x64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz#8f63baa1d31784904a380d2e293fa1ddf53dd4a2" - integrity sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ== - -"@rollup/rollup-freebsd-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz#30ed247e0df6e8858cdc6ae4090e12dbeb8ce946" - integrity sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA== - -"@rollup/rollup-freebsd-x64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz#57846f382fddbb508412ae07855b8a04c8f56282" - integrity sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz#378ca666c9dae5e6f94d1d351e7497c176e9b6df" - integrity sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA== - -"@rollup/rollup-linux-arm-musleabihf@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz#a692eff3bab330d5c33a5d5813a090c15374cddb" - integrity sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg== - -"@rollup/rollup-linux-arm64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz#6b1719b76088da5ac1ae1feccf48c5926b9e3db9" - integrity sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA== - -"@rollup/rollup-linux-arm64-musl@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz#865baf5b6f5ff67acb32e5a359508828e8dc5788" - integrity sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A== - -"@rollup/rollup-linux-loongarch64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz#23c6609ba0f7fa7a7f2038b6b6a08555a5055a87" - integrity sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz#652ef0d9334a9f25b9daf85731242801cb0fc41c" - integrity sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A== - -"@rollup/rollup-linux-riscv64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz#1eb6651839ee6ebca64d6cc64febbd299e95e6bd" - integrity sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA== - -"@rollup/rollup-linux-s390x-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz#015c52293afb3ff2a293cf0936b1d43975c1e9cd" - integrity sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg== - -"@rollup/rollup-linux-x64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz#b83001b5abed2bcb5e2dbeec6a7e69b194235c1e" - integrity sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw== - -"@rollup/rollup-linux-x64-musl@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz#6cc7c84cd4563737f8593e66f33b57d8e228805b" - integrity sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g== - -"@rollup/rollup-win32-arm64-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz#631ffeee094d71279fcd1fe8072bdcf25311bc11" - integrity sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A== - -"@rollup/rollup-win32-ia32-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz#06d1d60d5b9f718e8a6c4a43f82e3f9e3254587f" - integrity sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA== - -"@rollup/rollup-win32-x64-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz#4dff5c4259ebe6c5b4a8f2c5bc3829b7a8447ff0" - integrity sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA== +"@rollup/rollup-android-arm-eabi@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz#14c737dc19603a096568044eadaa60395eefb809" + integrity sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q== + +"@rollup/rollup-android-arm64@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz#9d81ea54fc5650eb4ebbc0a7d84cee331bfa30ad" + integrity sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w== + +"@rollup/rollup-darwin-arm64@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz#29448cb1370cf678b50743d2e392be18470abc23" + integrity sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q== + +"@rollup/rollup-darwin-x64@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz#0ca99741c3ed096700557a43bb03359450c7857d" + integrity sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA== + +"@rollup/rollup-freebsd-arm64@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz#233f8e4c2f54ad9b719cd9645887dcbd12b38003" + integrity sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ== + +"@rollup/rollup-freebsd-x64@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz#dfba762a023063dc901610722995286df4a48360" + integrity sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw== + +"@rollup/rollup-linux-arm-gnueabihf@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz#b9da54171726266c5ef4237f462a85b3c3cf6ac9" + integrity sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg== + +"@rollup/rollup-linux-arm-musleabihf@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz#b9db69b3f85f5529eb992936d8f411ee6d04297b" + integrity sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug== + +"@rollup/rollup-linux-arm64-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz#2550cf9bb4d47d917fd1ab4af756d7bbc3ee1528" + integrity sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw== + +"@rollup/rollup-linux-arm64-musl@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz#9d06b26d286c7dded6336961a2f83e48330e0c80" + integrity sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA== + +"@rollup/rollup-linux-loongarch64-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz#e957bb8fee0c8021329a34ca8dfa825826ee0e2e" + integrity sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz#e8585075ddfb389222c5aada39ea62d6d2511ccc" + integrity sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw== + +"@rollup/rollup-linux-riscv64-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz#7d0d40cee7946ccaa5a4e19a35c6925444696a9e" + integrity sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw== + +"@rollup/rollup-linux-s390x-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz#c2dcd8a4b08b2f2778eceb7a5a5dfde6240ebdea" + integrity sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA== + +"@rollup/rollup-linux-x64-gnu@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz#183637d91456877cb83d0a0315eb4788573aa588" + integrity sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg== + +"@rollup/rollup-linux-x64-musl@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz#036a4c860662519f1f9453807547fd2a11d5bb01" + integrity sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow== + +"@rollup/rollup-win32-arm64-msvc@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz#51cad812456e616bfe4db5238fb9c7497e042a52" + integrity sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw== + +"@rollup/rollup-win32-ia32-msvc@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz#661c8b3e4cd60f51deaa39d153aac4566e748e5e" + integrity sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw== + +"@rollup/rollup-win32-x64-msvc@4.30.1": + version "4.30.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz#73bf1885ff052b82fbb0f82f8671f73c36e9137c" + integrity sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -1138,35 +961,35 @@ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@tanstack/eslint-plugin-query@^5.62.1": - version "5.62.1" - resolved "https://registry.yarnpkg.com/@tanstack/eslint-plugin-query/-/eslint-plugin-query-5.62.1.tgz#5a5a504f3ba0d999468d404fc4d6e9fb58c4cdff" - integrity sha512-1886D5U+re1TW0wSH4/kUGG36yIoW5Wkz4twVEzlk3ZWmjF3XkRSWgB+Sc7n+Lyzt8usNV8ZqkZE6DA7IC47fQ== + version "5.62.16" + resolved "https://registry.yarnpkg.com/@tanstack/eslint-plugin-query/-/eslint-plugin-query-5.62.16.tgz#b0111dcb3e664c8c3af2e504265dbe0dc925fb66" + integrity sha512-VhnHSQ/hc62olLzGhlLJ4BJGWynwjs3cDMsByasKJ3zjW1YZ+6raxOv0gHHISm+VEnAY42pkMowmSWrXfL4NTw== dependencies: - "@typescript-eslint/utils" "^8.15.0" + "@typescript-eslint/utils" "^8.18.1" -"@tanstack/query-core@5.62.3": - version "5.62.3" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.62.3.tgz#7cfde68f7d78807faebee2a2bb1e31b81067f46b" - integrity sha512-Jp/nYoz8cnO7kqhOlSv8ke/0MJRJVGuZ0P/JO9KQ+f45mpN90hrerzavyTKeSoT/pOzeoOUkv1Xd0wPsxAWXfg== +"@tanstack/query-core@5.62.16": + version "5.62.16" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.62.16.tgz#f7efc92b1562a054748bc00c7f8d9d833407503b" + integrity sha512-9Sgft7Qavcd+sN0V25xVyo0nfmcZXBuODy3FVG7BMWTg1HMLm8wwG5tNlLlmSic1u7l1v786oavn+STiFaPH2g== "@tanstack/react-query@^5.62.3": - version "5.62.3" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.62.3.tgz#c6766b1764dcf924f6ed5fd88daf8d246e2f5c14" - integrity sha512-y2zDNKuhgiuMgsKkqd4AcsLIBiCfEO8U11AdrtAUihmLbRNztPrlcZqx2lH1GacZsx+y1qRRbCcJLYTtF1vKsw== + version "5.63.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.63.0.tgz#18e00e24a485f707cfd41f4b30679f70e6ca6016" + integrity sha512-QWizLzSiog8xqIRYmuJRok9VELlXVBAwtINgVCgW1SNvamQwWDO5R0XFSkjoBEj53x9Of1KAthLRBUC5xmtVLQ== dependencies: - "@tanstack/query-core" "5.62.3" + "@tanstack/query-core" "5.62.16" "@tanstack/react-table@^8.7.0": - version "8.9.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.9.1.tgz#bfe1d286f549b9743d99bfbeb531f2582f9d698b" - integrity sha512-yHs2m6lk5J5RNcu2dNtsDGux66wNXZjEgzxos6MRCX8gL+nqxeW3ZglqP6eANN0bGElPnjvqiUHGQvdACOr3Cw== + version "8.20.6" + resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.20.6.tgz#a1f3103327aa59aa621931f4087a7604a21054d0" + integrity sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ== dependencies: - "@tanstack/table-core" "8.9.1" + "@tanstack/table-core" "8.20.5" -"@tanstack/table-core@8.9.1": - version "8.9.1" - resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.9.1.tgz#869410ca1748c45d4e19ccfd4db7e36452611674" - integrity sha512-2+R83n8vMZND0q3W1lSiF7co9nFbeWbjAErFf27xwbeA9E0wtUu5ZDfgj+TZ6JzdAEQAgfxkk/QNFAKiS8E4MA== +"@tanstack/table-core@8.20.5": + version "8.20.5" + resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.20.5.tgz#3974f0b090bed11243d4107283824167a395cf1d" + integrity sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg== "@testing-library/dom@^10.4.0": version "10.4.0" @@ -1224,49 +1047,44 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" - integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": +"@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== @@ -1304,16 +1122,11 @@ pretty-format "^29.0.0" "@types/js-yaml@^4.0.0": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== -"@types/json-schema@*", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json-schema@^7.0.15": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -1324,43 +1137,31 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb" - integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg== - -"@types/node@*": - version "22.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.1.tgz#41ffeee127b8975a05f8c4f83fb89bcb2987d766" - integrity sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ== - dependencies: - undici-types "~6.20.0" + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.14.tgz#bafc053533f4cdc5fcc9635af46a963c1f3deaff" + integrity sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A== -"@types/node@^22.10.2": - version "22.10.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.2.tgz#a485426e6d1fdafc7b0d4c7b24e2c78182ddabb9" - integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ== +"@types/node@*", "@types/node@^22.10.2": + version "22.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b" + integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== dependencies: undici-types "~6.20.0" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prismjs@^1.26.0": version "1.26.5" resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.5.tgz#72499abbb4c4ec9982446509d2f14fb8483869d6" integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ== -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/prop-types@^15.7.13": - version "15.7.13" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" - integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== +"@types/prop-types@*", "@types/prop-types@^15.7.14": + version "15.7.14" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2" + integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== "@types/qs@^6.9.17": version "6.9.17" @@ -1368,23 +1169,19 @@ integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ== "@types/react-dom@^18": - version "18.3.2" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.2.tgz#b58a9520f5f317a00bbda0271502889b71c345f0" - integrity sha512-Fqp+rcvem9wEnGr3RY8dYNvSQ8PoLqjZ9HLgaPUOjJJD120uDyOxOjc/39M4Kddp9JQCxpGQbnhVQF0C0ncYVg== - dependencies: - "@types/react" "^18" + version "18.3.5" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.5.tgz#45f9f87398c5dcea085b715c58ddcf1faf65f716" + integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q== -"@types/react-transition-group@^4.4.11": - version "4.4.11" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.11.tgz#d963253a611d757de01ebb241143b1017d5d63d5" - integrity sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA== - dependencies: - "@types/react" "*" +"@types/react-transition-group@^4.4.12": + version "4.4.12" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" + integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== -"@types/react@*", "@types/react@^18": - version "18.3.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.14.tgz#7ce43bbca0e15e1c4f67ad33ea3f83d75aa6756b" - integrity sha512-NzahNKvjNhVjuPBQ+2G7WlxstQ+47kXZNHlUvFakDViuIEfGY926GqhMueQFZ7woG+sPiQKlF36XfrIUVSUfFg== +"@types/react@^18": + version "18.3.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.18.tgz#9b382c4cd32e13e463f97df07c2ee3bbcd26904b" + integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -1400,9 +1197,9 @@ integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== "@types/validator@^13.7.3": - version "13.7.7" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.7.tgz#e87cf34dd08522d21acf30130fd8941f433b81b5" - integrity sha512-jiEw2kTUJ8Jsh4A1K4b5Pkjj9Xz6FktLLOQ36ZVLRkmxFbpTvAV2VRoKMojz8UlZxNg/2dZqzpigH4JYn1bkQg== + version "13.12.2" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.2.tgz#760329e756e18a4aab82fc502b51ebdfebbe49f5" + integrity sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA== "@types/yargs-parser@*": version "21.0.3" @@ -1417,129 +1214,84 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz#0901933326aea4443b81df3f740ca7dfc45c7bea" - integrity sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw== + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz#5f26c0a833b27bcb1aa402b82e76d3b8dda0b247" + integrity sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/type-utils" "8.18.0" - "@typescript-eslint/utils" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/scope-manager" "8.19.1" + "@typescript-eslint/type-utils" "8.19.1" + "@typescript-eslint/utils" "8.19.1" + "@typescript-eslint/visitor-keys" "8.19.1" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" - ts-api-utils "^1.3.0" + ts-api-utils "^2.0.0" "@typescript-eslint/parser@^8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.0.tgz#a1c9456cbb6a089730bf1d3fc47946c5fb5fe67b" - integrity sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q== - dependencies: - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/typescript-estree" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.19.1.tgz#b836fcfe7a704c8c65f5a50e5b0ff8acfca5c21b" + integrity sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw== + dependencies: + "@typescript-eslint/scope-manager" "8.19.1" + "@typescript-eslint/types" "8.19.1" + "@typescript-eslint/typescript-estree" "8.19.1" + "@typescript-eslint/visitor-keys" "8.19.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz#a3f49bf3d4d27ff8d6b2ea099ba465ef4dbcaa3a" - integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg== - dependencies: - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - -"@typescript-eslint/scope-manager@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz#30b040cb4557804a7e2bcc65cf8fdb630c96546f" - integrity sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw== +"@typescript-eslint/scope-manager@8.19.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz#794cfc8add4f373b9cd6fa32e367e7565a0e231b" + integrity sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q== dependencies: - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/types" "8.19.1" + "@typescript-eslint/visitor-keys" "8.19.1" -"@typescript-eslint/type-utils@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz#6f0d12cf923b6fd95ae4d877708c0adaad93c471" - integrity sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow== +"@typescript-eslint/type-utils@8.19.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz#23710ab52643c19f74601b3f4a076c98f4e159aa" + integrity sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw== dependencies: - "@typescript-eslint/typescript-estree" "8.18.0" - "@typescript-eslint/utils" "8.18.0" + "@typescript-eslint/typescript-estree" "8.19.1" + "@typescript-eslint/utils" "8.19.1" debug "^4.3.4" - ts-api-utils "^1.3.0" - -"@typescript-eslint/types@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.17.0.tgz#ef84c709ef8324e766878834970bea9a7e3b72cf" - integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA== + ts-api-utils "^2.0.0" -"@typescript-eslint/types@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.0.tgz#3afcd30def8756bc78541268ea819a043221d5f3" - integrity sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA== - -"@typescript-eslint/typescript-estree@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz#40b5903bc929b1e8dd9c77db3cb52cfb199a2a34" - integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw== - dependencies: - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^1.3.0" +"@typescript-eslint/types@8.19.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.19.1.tgz#015a991281754ed986f2e549263a1188d6ed0a8c" + integrity sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA== -"@typescript-eslint/typescript-estree@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz#d8ca785799fbb9c700cdff1a79c046c3e633c7f9" - integrity sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg== +"@typescript-eslint/typescript-estree@8.19.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz#c1094bb00bc251ac76cf215569ca27236435036b" + integrity sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q== dependencies: - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/types" "8.19.1" + "@typescript-eslint/visitor-keys" "8.19.1" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" - ts-api-utils "^1.3.0" + ts-api-utils "^2.0.0" -"@typescript-eslint/utils@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.0.tgz#48f67205d42b65d895797bb7349d1be5c39a62f7" - integrity sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg== +"@typescript-eslint/utils@8.19.1", "@typescript-eslint/utils@^8.18.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.19.1.tgz#dd8eabd46b92bf61e573286e1c0ba6bd243a185b" + integrity sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/typescript-estree" "8.18.0" + "@typescript-eslint/scope-manager" "8.19.1" + "@typescript-eslint/types" "8.19.1" + "@typescript-eslint/typescript-estree" "8.19.1" -"@typescript-eslint/utils@^8.15.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.17.0.tgz#41c05105a2b6ab7592f513d2eeb2c2c0236d8908" - integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w== +"@typescript-eslint/visitor-keys@8.19.1": + version "8.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz#fce54d7cfa5351a92387d6c0c5be598caee072e0" + integrity sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q== dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.17.0" - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/typescript-estree" "8.17.0" - -"@typescript-eslint/visitor-keys@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz#4dbcd0e28b9bf951f4293805bf34f98df45e1aa8" - integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg== - dependencies: - "@typescript-eslint/types" "8.17.0" - eslint-visitor-keys "^4.2.0" - -"@typescript-eslint/visitor-keys@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz#7b6d33534fa808e33a19951907231ad2ea5c36dd" - integrity sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw== - dependencies: - "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/types" "8.19.1" eslint-visitor-keys "^4.2.0" "@vitejs/plugin-react@^4.3.4": @@ -1553,62 +1305,62 @@ "@types/babel__core" "^7.20.5" react-refresh "^0.14.2" -"@vitest/expect@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.8.tgz#13fad0e8d5a0bf0feb675dcf1d1f1a36a1773bc1" - integrity sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw== +"@vitest/expect@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.0.0-beta.4.tgz#9d742566d2c4485577a60fa0a262a71feda4b733" + integrity sha512-wBBhMoM1z5M8exSDA8IkCjy4a83T10qwLmFHYjGiLQ3rV8OlexjGNOm28rRokcG+oYgR2+zcH3GU6sl/IKf/3g== dependencies: - "@vitest/spy" "2.1.8" - "@vitest/utils" "2.1.8" + "@vitest/spy" "3.0.0-beta.4" + "@vitest/utils" "3.0.0-beta.4" chai "^5.1.2" tinyrainbow "^1.2.0" -"@vitest/mocker@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.8.tgz#51dec42ac244e949d20009249e033e274e323f73" - integrity sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA== +"@vitest/mocker@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.0.0-beta.4.tgz#1ecdef279ca0102b554572ac9c4485e4bf6e6c8d" + integrity sha512-VjQu8F5N57SvSvD7xOfl6r2R78/qOtj7ySHaG9OQLTc6O6jb+AYBGsDE+N6spFf25BuIwZIcUFlk+wvXMNEHEQ== dependencies: - "@vitest/spy" "2.1.8" + "@vitest/spy" "3.0.0-beta.4" estree-walker "^3.0.3" - magic-string "^0.30.12" + magic-string "^0.30.17" -"@vitest/pretty-format@2.1.8", "@vitest/pretty-format@^2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.8.tgz#88f47726e5d0cf4ba873d50c135b02e4395e2bca" - integrity sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ== +"@vitest/pretty-format@3.0.0-beta.4", "@vitest/pretty-format@^3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.0.0-beta.4.tgz#481677f0b3993d46ce1536ac5d55cec6db07180a" + integrity sha512-uwgWpsHabr96/YnrzNY+NQUgnza8rFq6wYW/yR1FrgRfQtVTS1loOPQSydRkUDk307bUzMVyyh7aVRwtLgHkDg== dependencies: tinyrainbow "^1.2.0" -"@vitest/runner@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.8.tgz#b0e2dd29ca49c25e9323ea2a45a5125d8729759f" - integrity sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg== +"@vitest/runner@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.0.0-beta.4.tgz#288cdd9dffbf31fbd3767d65f0dbf184895f7ed5" + integrity sha512-+tTASu585TT23AeO+bOBSQ/2nin66nPqOznDCB1HQJ8+Mb3gtOw9faJwQEZ9uPRNhi/mLNau4k9Zig1p/AnntQ== dependencies: - "@vitest/utils" "2.1.8" - pathe "^1.1.2" + "@vitest/utils" "3.0.0-beta.4" + pathe "^2.0.0" -"@vitest/snapshot@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.8.tgz#d5dc204f4b95dc8b5e468b455dfc99000047d2de" - integrity sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg== +"@vitest/snapshot@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.0.0-beta.4.tgz#06456397159df3328f20760cae87b4431d2a48db" + integrity sha512-z8WLahOEDpRkPf6OvOYhjK6Mhl3Z4U4m536kAxUeFD5If0o1e2rdvSzD6oNPfs25rKs+UT7dla+4MSFU1JVjPA== dependencies: - "@vitest/pretty-format" "2.1.8" - magic-string "^0.30.12" - pathe "^1.1.2" + "@vitest/pretty-format" "3.0.0-beta.4" + magic-string "^0.30.17" + pathe "^2.0.0" -"@vitest/spy@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.8.tgz#bc41af3e1e6a41ae3b67e51f09724136b88fa447" - integrity sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg== +"@vitest/spy@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.0.0-beta.4.tgz#d082e38316416cd56cba94661d64f8f6310c8e9f" + integrity sha512-3Re3ofS3cYq0rCgyiwk51gOzAZyQQ15caJHkuqjcF7dzK7zMGKZpjwQFDaMZq0eAq+AZg+Qo39qrDI8S1dIYSg== dependencies: tinyspy "^3.0.2" -"@vitest/utils@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.8.tgz#f8ef85525f3362ebd37fd25d268745108d6ae388" - integrity sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA== +"@vitest/utils@3.0.0-beta.4": + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.0.0-beta.4.tgz#fae725ef24e36e3abdb672e560500d7b05b5a555" + integrity sha512-ea90t+ajEQd5+jA60nuE5SemTlogk49T2Ttiq2ct2ZJpsSj4a7QEQBPsvWaqhKtE3+eVIhT4Qp/Mml2qqIMGEg== dependencies: - "@vitest/pretty-format" "2.1.8" + "@vitest/pretty-format" "3.0.0-beta.4" loupe "^3.1.2" tinyrainbow "^1.2.0" @@ -1744,40 +1496,44 @@ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.14.0: +acorn@^8.14.0, acorn@^8.7.1, acorn@^8.8.2: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== -acorn@^8.5.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -acorn@^8.7.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1788,18 +1544,21 @@ ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -1829,26 +1588,15 @@ aria-query@^5.0.0: resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" - is-string "^1.0.7" + call-bound "^1.0.3" + is-array-buffer "^3.0.5" -array-includes@^3.1.8: +array-includes@^3.1.6, array-includes@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== @@ -1884,7 +1632,7 @@ array.prototype.findlastindex@^1.2.5: es-object-atoms "^1.0.0" es-shim-unscopables "^1.0.2" -array.prototype.flat@^1.3.2: +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== @@ -1894,7 +1642,7 @@ array.prototype.flat@^1.3.2: es-abstract "^1.23.5" es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.2: +array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== @@ -1981,20 +1729,10 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.14.5: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -browserslist@^4.24.0: - version "4.24.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2" - integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== +browserslist@^4.14.5, browserslist@^4.24.0: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== dependencies: caniuse-lite "^1.0.30001688" electron-to-chromium "^1.5.73" @@ -2019,15 +1757,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: es-errors "^1.3.0" function-bind "^1.1.2" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7, call-bind@^1.0.8: +call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== @@ -2050,15 +1780,10 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001400: - version "1.0.30001419" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz#3542722d57d567c8210d5e4d0f9f17336b776457" - integrity sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw== - caniuse-lite@^1.0.30001688: - version "1.0.30001689" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz#67ca960dd5f443903e19949aeacc9d28f6e10910" - integrity sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g== + version "1.0.30001692" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz#4585729d95e6b95be5b439da6ab55250cd125bf9" + integrity sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A== chai@^5.1.2: version "5.1.2" @@ -2071,15 +1796,6 @@ chai@^5.1.2: loupe "^3.1.0" pathval "^2.0.0" -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -2102,9 +1818,9 @@ check-error@^2.1.1: integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== ci-info@^3.2.0: version "3.9.0" @@ -2121,13 +1837,6 @@ clsx@^2.0.0, clsx@^2.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -2135,11 +1844,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -2173,9 +1877,9 @@ convert-source-map@^2.0.0: integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -2192,7 +1896,7 @@ cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" -crypto-js@^4.1.1: +crypto-js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== @@ -2203,18 +1907,14 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssstyle@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.1.0.tgz#161faee382af1bafadb6d3867a92a19bcb4aea70" - integrity sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.2.1.tgz#5142782410fea95db66fb68147714a652a7c2381" + integrity sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw== dependencies: - rrweb-cssom "^0.7.1" + "@asamuzakjp/css-color" "^2.8.2" + rrweb-cssom "^0.8.0" -csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== - -csstype@^3.1.3: +csstype@^3.0.2, csstype@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== @@ -2227,44 +1927,46 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" is-data-view "^1.0.1" date-fns-tz@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.7.tgz#e8e9d2aaceba5f1cc0e677631563081fdcb0e69a" - integrity sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g== + version "1.3.8" + resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.8.tgz#083e3a4e1f19b7857fa0c18deea6c2bc46ded7b9" + integrity sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ== date-fns@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" -debug@4, debug@^4.3.1, debug@^4.3.7: +debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== @@ -2278,13 +1980,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -2314,15 +2009,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -2371,29 +2058,24 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dunder-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" - integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: - call-bind-apply-helpers "^1.0.0" + call-bind-apply-helpers "^1.0.1" es-errors "^1.3.0" gopd "^1.2.0" -electron-to-chromium@^1.4.251: - version "1.4.283" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.283.tgz#d4f263f5df402fd799c0a06255d580dcf8aa9a8e" - integrity sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA== - electron-to-chromium@^1.5.73: - version "1.5.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz#f32956ce40947fa3c8606726a96cd8fb5bb5f720" - integrity sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg== + version "1.5.79" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.79.tgz#4424f23f319db7a653cf9ee76102e4ac283e6b3e" + integrity sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA== enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + version "5.18.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" + integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2410,27 +2092,28 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5: - version "1.23.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.6.tgz#55f0e1ce7128995cc04ace0a57d7dca348345108" - integrity sha512-Ifco6n3yj2tMZDWNLyloZrytt9lqqlwvS83P3HtaETR0NUOYnIULGGHpktqYGObGy+8wc1okO25p8TjemhImvA== +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== dependencies: - array-buffer-byte-length "^1.0.1" + array-buffer-byte-length "^1.0.2" arraybuffer.prototype.slice "^1.0.4" available-typed-arrays "^1.0.7" call-bind "^1.0.8" call-bound "^1.0.3" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" es-define-property "^1.0.1" es-errors "^1.3.0" es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" + es-set-tostringtag "^2.1.0" es-to-primitive "^1.3.0" - function.prototype.name "^1.1.7" - get-intrinsic "^1.2.6" - get-symbol-description "^1.0.2" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" globalthis "^1.0.4" gopd "^1.2.0" has-property-descriptors "^1.0.2" @@ -2438,61 +2121,33 @@ es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23 has-symbols "^1.1.0" hasown "^2.0.2" internal-slot "^1.1.0" - is-array-buffer "^3.0.4" + is-array-buffer "^3.0.5" is-callable "^1.2.7" is-data-view "^1.0.2" - is-negative-zero "^2.0.3" is-regex "^1.2.1" - is-shared-array-buffer "^1.0.3" + is-shared-array-buffer "^1.0.4" is-string "^1.1.1" - is-typed-array "^1.1.13" + is-typed-array "^1.1.15" is-weakref "^1.1.0" - math-intrinsics "^1.0.0" + math-intrinsics "^1.1.0" object-inspect "^1.13.3" object-keys "^1.1.1" - object.assign "^4.1.5" + object.assign "^4.1.7" + own-keys "^1.0.1" regexp.prototype.flags "^1.5.3" safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" safe-regex-test "^1.1.0" + set-proto "^1.0.0" string.prototype.trim "^1.2.10" string.prototype.trimend "^1.0.9" string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.3" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" typed-array-length "^1.0.7" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.16" - -es-abstract@^1.19.0, es-abstract@^1.19.5: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" @@ -2504,26 +2159,27 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-iterator-helpers@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz#2f1a3ab998b30cb2d10b195b587c6d9ebdebf152" - integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q== +es-iterator-helpers@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz#d1dd0f58129054c0ad922e6a9a1e65eef435fe75" + integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - es-abstract "^1.23.3" + es-abstract "^1.23.6" es-errors "^1.3.0" es-set-tostringtag "^2.0.3" function-bind "^1.1.2" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" globalthis "^1.0.4" - gopd "^1.0.1" + gopd "^1.2.0" has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - iterator.prototype "^1.1.3" - safe-array-concat "^1.1.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + iterator.prototype "^1.1.4" + safe-array-concat "^1.1.3" es-module-lexer@^0.9.0: version "0.9.3" @@ -2531,9 +2187,9 @@ es-module-lexer@^0.9.0: integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-module-lexer@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" - integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== es-object-atoms@^1.0.0: version "1.0.0" @@ -2542,14 +2198,15 @@ es-object-atoms@^1.0.0: dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - get-intrinsic "^1.2.4" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" has-tostringtag "^1.0.2" - hasown "^2.0.1" + hasown "^2.0.2" es-shim-unscopables@^1.0.2: version "1.0.2" @@ -2558,15 +2215,6 @@ es-shim-unscopables@^1.0.2: dependencies: hasown "^2.0.0" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - es-to-primitive@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" @@ -2576,80 +2224,42 @@ es-to-primitive@^1.3.0: is-date-object "^1.0.5" is-symbol "^1.0.4" -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -esbuild@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" - integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== +esbuild@^0.24.2: + version "0.24.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d" + integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== optionalDependencies: - "@esbuild/aix-ppc64" "0.24.0" - "@esbuild/android-arm" "0.24.0" - "@esbuild/android-arm64" "0.24.0" - "@esbuild/android-x64" "0.24.0" - "@esbuild/darwin-arm64" "0.24.0" - "@esbuild/darwin-x64" "0.24.0" - "@esbuild/freebsd-arm64" "0.24.0" - "@esbuild/freebsd-x64" "0.24.0" - "@esbuild/linux-arm" "0.24.0" - "@esbuild/linux-arm64" "0.24.0" - "@esbuild/linux-ia32" "0.24.0" - "@esbuild/linux-loong64" "0.24.0" - "@esbuild/linux-mips64el" "0.24.0" - "@esbuild/linux-ppc64" "0.24.0" - "@esbuild/linux-riscv64" "0.24.0" - "@esbuild/linux-s390x" "0.24.0" - "@esbuild/linux-x64" "0.24.0" - "@esbuild/netbsd-x64" "0.24.0" - "@esbuild/openbsd-arm64" "0.24.0" - "@esbuild/openbsd-x64" "0.24.0" - "@esbuild/sunos-x64" "0.24.0" - "@esbuild/win32-arm64" "0.24.0" - "@esbuild/win32-ia32" "0.24.0" - "@esbuild/win32-x64" "0.24.0" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + "@esbuild/aix-ppc64" "0.24.2" + "@esbuild/android-arm" "0.24.2" + "@esbuild/android-arm64" "0.24.2" + "@esbuild/android-x64" "0.24.2" + "@esbuild/darwin-arm64" "0.24.2" + "@esbuild/darwin-x64" "0.24.2" + "@esbuild/freebsd-arm64" "0.24.2" + "@esbuild/freebsd-x64" "0.24.2" + "@esbuild/linux-arm" "0.24.2" + "@esbuild/linux-arm64" "0.24.2" + "@esbuild/linux-ia32" "0.24.2" + "@esbuild/linux-loong64" "0.24.2" + "@esbuild/linux-mips64el" "0.24.2" + "@esbuild/linux-ppc64" "0.24.2" + "@esbuild/linux-riscv64" "0.24.2" + "@esbuild/linux-s390x" "0.24.2" + "@esbuild/linux-x64" "0.24.2" + "@esbuild/netbsd-arm64" "0.24.2" + "@esbuild/netbsd-x64" "0.24.2" + "@esbuild/openbsd-arm64" "0.24.2" + "@esbuild/openbsd-x64" "0.24.2" + "@esbuild/sunos-x64" "0.24.2" + "@esbuild/win32-arm64" "0.24.2" + "@esbuild/win32-ia32" "0.24.2" + "@esbuild/win32-x64" "0.24.2" escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" @@ -2715,27 +2325,27 @@ eslint-plugin-prettier@^5.2.1: synckit "^0.9.1" eslint-plugin-react@^7.37.2: - version "7.37.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" - integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== + version "7.37.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz#567549e9251533975c4ea9706f986c3a64832031" + integrity sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" - array.prototype.flatmap "^1.3.2" + array.prototype.flatmap "^1.3.3" array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.1.0" + es-iterator-helpers "^1.2.1" estraverse "^5.3.0" hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" object.entries "^1.1.8" object.fromentries "^2.0.8" - object.values "^1.2.0" + object.values "^1.2.1" prop-types "^15.8.1" resolve "^2.0.0-next.5" semver "^6.3.1" - string.prototype.matchall "^4.0.11" + string.prototype.matchall "^4.0.12" string.prototype.repeat "^1.0.0" eslint-scope@5.1.1: @@ -2754,11 +2364,6 @@ eslint-scope@^8.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -2881,20 +2486,20 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -2906,10 +2511,15 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-uri@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.5.tgz#19f5f9691d0dab9b85861a7bb5d98fca961da9cd" + integrity sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q== + fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.18.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.18.0.tgz#d631d7e25faffea81887fe5ea8c9010e1b36fee0" + integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== dependencies: reusify "^1.0.4" @@ -2974,48 +2584,29 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -function.prototype.name@^1.1.6, function.prototype.name@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.7.tgz#9df48ea5f746bf577d7e15b5da89df8952a98e7b" - integrity sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" functions-have-names "^1.2.3" hasown "^2.0.2" is-callable "^1.2.7" -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -3025,57 +2616,38 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" - integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" + integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== dependencies: call-bind-apply-helpers "^1.0.1" - dunder-proto "^1.0.0" es-define-property "^1.0.1" es-errors "^1.3.0" es-object-atoms "^1.0.0" function-bind "^1.1.2" + get-proto "^1.0.0" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" - math-intrinsics "^1.0.0" + math-intrinsics "^1.1.0" -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.5" + call-bound "^1.0.3" es-errors "^1.3.0" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" glob-parent@^5.1.2: version "5.1.2" @@ -3119,24 +2691,12 @@ goober@^2.0.33: resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.16.tgz#7d548eb9b83ff0988d102be71f271ca8f9c82a95" integrity sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g== -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -gopd@^1.2.0: +gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.1.2, graceful-fs@^4.2.4: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3146,64 +2706,35 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-proto@^1.0.3, has-proto@^1.2.0: +has-proto@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== dependencies: dunder-proto "^1.0.0" -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-symbols@^1.1.0: +has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" @@ -3211,14 +2742,7 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +hasown@^2.0.0, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -3262,12 +2786,7 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -ignore@^5.3.1: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -3290,16 +2809,7 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -internal-slot@^1.0.7, internal-slot@^1.1.0: +internal-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== @@ -3308,13 +2818,14 @@ internal-slot@^1.0.7, internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-arrayish@^0.2.1: version "0.2.1" @@ -3322,18 +2833,14 @@ is-arrayish@^0.2.1: integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== - dependencies: - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.0.tgz#1d1080612c493608e93168fc4458c245074c06a6" + integrity sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ== dependencies: - has-bigints "^1.0.1" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" is-bigint@^1.1.0: version "1.1.0" @@ -3342,14 +2849,6 @@ is-bigint@^1.1.0: dependencies: has-bigints "^1.0.2" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-boolean-object@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz#c20d0c654be05da4fbc23c562635c019e93daf89" @@ -3358,32 +2857,18 @@ is-boolean-object@^1.2.1: call-bound "^1.0.2" has-tostringtag "^1.0.2" -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.15.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.0.tgz#6c01ffdd5e33c49c1d2abfa93334a85cb56bd81c" - integrity sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g== +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - is-data-view@^1.0.1, is-data-view@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" @@ -3393,14 +2878,7 @@ is-data-view@^1.0.1, is-data-view@^1.0.2: get-intrinsic "^1.2.6" is-typed-array "^1.1.13" -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-date-object@^1.1.0: +is-date-object@^1.0.5, is-date-object@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== @@ -3414,18 +2892,21 @@ is-extglob@^2.1.1: integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" - integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" @@ -3439,23 +2920,6 @@ is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number-object@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" @@ -3474,14 +2938,6 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-regex@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" @@ -3497,28 +2953,14 @@ is-set@^2.0.3: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" -is-string@^1.1.1: +is-string@^1.0.7, is-string@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== @@ -3526,13 +2968,6 @@ is-string@^1.1.1: call-bound "^1.0.3" has-tostringtag "^1.0.2" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - is-symbol@^1.0.4, is-symbol@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" @@ -3542,26 +2977,19 @@ is-symbol@^1.0.4, is-symbol@^1.1.1: has-symbols "^1.1.0" safe-regex-test "^1.1.0" -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-weakmap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakref@^1.1.0: +is-weakref@^1.0.2, is-weakref@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.0.tgz#47e3472ae95a63fa9cf25660bcf0c181c39770ef" integrity sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q== @@ -3569,12 +2997,12 @@ is-weakref@^1.1.0: call-bound "^1.0.2" is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" isarray@^2.0.5: version "2.0.5" @@ -3586,16 +3014,16 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -iterator.prototype@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.4.tgz#4ae6cf98b97fdc717b7e159d79dc25f8fc9482f1" - integrity sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA== +iterator.prototype@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" + integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== dependencies: define-data-property "^1.1.4" es-object-atoms "^1.0.0" get-intrinsic "^1.2.6" + get-proto "^1.0.0" has-symbols "^1.1.0" - reflect.getprototypeof "^1.0.8" set-function-name "^2.0.2" jest-diff@^29.7.0: @@ -3718,6 +3146,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -3736,12 +3169,14 @@ json5@^2.2.3: integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" jwt-decode@^3.1.2: version "3.1.2" @@ -3802,6 +3237,11 @@ loupe@^3.1.0, loupe@^3.1.2: resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240" integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== +lru-cache@^11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" + integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3814,17 +3254,17 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@^0.30.12: +magic-string@^0.30.17: version "0.30.17" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" -math-intrinsics@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" - integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== merge-stream@^2.0.0: version "2.0.0" @@ -3836,7 +3276,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: +micromatch@^4.0.4, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -3876,14 +3316,9 @@ minimatch@^9.0.4: brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== ms@^2.1.1, ms@^2.1.3: version "2.1.3" @@ -3910,11 +3345,6 @@ node-releases@^2.0.19: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - notistack@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/notistack/-/notistack-3.0.1.tgz#daf59888ab7e2c30a1fa8f71f9cba2978773236e" @@ -3933,11 +3363,6 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - object-inspect@^1.13.3: version "1.13.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" @@ -3948,24 +3373,16 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.3, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== +object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - has-symbols "^1.0.3" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" object.entries@^1.1.8: @@ -3996,21 +3413,22 @@ object.groupby@^1.0.3: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== +object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" es-object-atoms "^1.0.0" oidc-client-ts@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/oidc-client-ts/-/oidc-client-ts-2.3.0.tgz#43c90f1f0cc3be2e4ede38b8c68642ba00bfa8f6" - integrity sha512-7RUKU+TJFQo+4X9R50IGJAIDF18uRBaFXyZn4VVCfwmwbSUhKcdDnw4zgeut3uEXkiD3NqURq+d88sDPxjf1FA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/oidc-client-ts/-/oidc-client-ts-2.4.1.tgz#5441cb90188bc07580bcab2b49ed2fd1fe1889d0" + integrity sha512-IxlGMsbkZPsHJGCliWT3LxjUcYzmiN21656n/Zt2jDncZlBFc//cd8WqFF0Lt681UT3AImM57E6d4N53ziTCYA== dependencies: - crypto-js "^4.1.1" + crypto-js "^4.2.0" jwt-decode "^3.1.2" optionator@^0.9.3: @@ -4025,6 +3443,15 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -4083,22 +3510,17 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +pathe@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.1.tgz#ee1e6965c5ccfc98dc5a4b366a6ba6dd624a33d6" + integrity sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw== pathval@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picocolors@^1.1.0, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -4113,7 +3535,7 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postcss@^8.4.43, postcss@^8.4.49: +postcss@^8.4.49: version "8.4.49" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== @@ -4180,26 +3602,23 @@ prop-types@^15.6.2, prop-types@^15.8.1: react-is "^16.13.1" psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "1.15.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" -punycode@^2.3.1: +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qs@^6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + version "6.13.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e" + integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" query-string@^6.13.7: version "6.14.1" @@ -4246,11 +3665,16 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^18.0.0, react-is@^18.3.1: +react-is@^18.0.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== +react-is@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.0.0.tgz#d6669fd389ff022a9684f708cf6fa4962d1fea7a" + integrity sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g== + react-refresh@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" @@ -4301,49 +3725,42 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz#c58afb17a4007b4d1118c07b92c23fca422c5d82" - integrity sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ== +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== dependencies: call-bind "^1.0.8" define-properties "^1.2.1" - dunder-proto "^1.0.0" - es-abstract "^1.23.5" + es-abstract "^1.23.9" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - gopd "^1.2.0" - which-builtin-type "^1.2.0" - -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.4: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regexp.prototype.flags@^1.5.2, regexp.prototype.flags@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== +regexp.prototype.flags@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" define-properties "^1.2.1" es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" set-function-name "^2.0.2" +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -4354,21 +3771,12 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.19.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== +resolve@^1.19.0, resolve@^1.22.4: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -4386,32 +3794,32 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rollup@^4.20.0, rollup@^4.23.0: - version "4.28.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.28.1.tgz#7718ba34d62b449dfc49adbfd2f312b4fe0df4de" - integrity sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg== +rollup@^4.23.0: + version "4.30.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.30.1.tgz#d5c3d066055259366cdc3eb6f1d051c5d6afaf74" + integrity sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w== dependencies: "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.28.1" - "@rollup/rollup-android-arm64" "4.28.1" - "@rollup/rollup-darwin-arm64" "4.28.1" - "@rollup/rollup-darwin-x64" "4.28.1" - "@rollup/rollup-freebsd-arm64" "4.28.1" - "@rollup/rollup-freebsd-x64" "4.28.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.28.1" - "@rollup/rollup-linux-arm-musleabihf" "4.28.1" - "@rollup/rollup-linux-arm64-gnu" "4.28.1" - "@rollup/rollup-linux-arm64-musl" "4.28.1" - "@rollup/rollup-linux-loongarch64-gnu" "4.28.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.28.1" - "@rollup/rollup-linux-riscv64-gnu" "4.28.1" - "@rollup/rollup-linux-s390x-gnu" "4.28.1" - "@rollup/rollup-linux-x64-gnu" "4.28.1" - "@rollup/rollup-linux-x64-musl" "4.28.1" - "@rollup/rollup-win32-arm64-msvc" "4.28.1" - "@rollup/rollup-win32-ia32-msvc" "4.28.1" - "@rollup/rollup-win32-x64-msvc" "4.28.1" + "@rollup/rollup-android-arm-eabi" "4.30.1" + "@rollup/rollup-android-arm64" "4.30.1" + "@rollup/rollup-darwin-arm64" "4.30.1" + "@rollup/rollup-darwin-x64" "4.30.1" + "@rollup/rollup-freebsd-arm64" "4.30.1" + "@rollup/rollup-freebsd-x64" "4.30.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.30.1" + "@rollup/rollup-linux-arm-musleabihf" "4.30.1" + "@rollup/rollup-linux-arm64-gnu" "4.30.1" + "@rollup/rollup-linux-arm64-musl" "4.30.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.30.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.30.1" + "@rollup/rollup-linux-riscv64-gnu" "4.30.1" + "@rollup/rollup-linux-s390x-gnu" "4.30.1" + "@rollup/rollup-linux-x64-gnu" "4.30.1" + "@rollup/rollup-linux-x64-musl" "4.30.1" + "@rollup/rollup-win32-arm64-msvc" "4.30.1" + "@rollup/rollup-win32-ia32-msvc" "4.30.1" + "@rollup/rollup-win32-x64-msvc" "4.30.1" fsevents "~2.3.2" rrweb-cssom@^0.7.1: @@ -4419,6 +3827,11 @@ rrweb-cssom@^0.7.1: resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== +rrweb-cssom@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" + integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4426,7 +3839,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-array-concat@^1.1.2, safe-array-concat@^1.1.3: +safe-array-concat@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== @@ -4442,14 +3855,13 @@ safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: +safe-push-apply@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" + es-errors "^1.3.0" + isarray "^2.0.5" safe-regex-test@^1.1.0: version "1.1.0" @@ -4479,15 +3891,25 @@ scheduler@^0.23.2: dependencies: loose-envify "^1.1.0" -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + semver@6.3.1, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -4498,10 +3920,10 @@ semver@^7.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -4527,6 +3949,15 @@ set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -4568,15 +3999,6 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - side-channel@^1.0.6, side-channel@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" @@ -4648,23 +4070,24 @@ strict-uri-encode@^2.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string.prototype.matchall@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" - integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== +string.prototype.matchall@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - es-abstract "^1.23.2" + es-abstract "^1.23.6" es-errors "^1.3.0" es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - regexp.prototype.flags "^1.5.2" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" set-function-name "^2.0.2" - side-channel "^1.0.6" + side-channel "^1.1.0" string.prototype.repeat@^1.0.0: version "1.0.0" @@ -4687,15 +4110,6 @@ string.prototype.trim@^1.2.10: es-object-atoms "^1.0.0" has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" @@ -4706,15 +4120,6 @@ string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - string.prototype.trimstart@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" @@ -4746,13 +4151,6 @@ stylis@4.2.0: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -4791,23 +4189,23 @@ tapable@^2.1.1, tapable@^2.2.0: integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + version "5.3.11" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" + integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.14" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser@^5.14.1: - version "5.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" - integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== +terser@^5.31.1: + version "5.37.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -4816,12 +4214,12 @@ tinybench@^2.9.0: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== -tinyexec@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== -tinypool@^1.0.1: +tinypool@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA== @@ -4836,22 +4234,17 @@ tinyspy@^3.0.2: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== -tldts-core@^6.1.68: - version "6.1.68" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.68.tgz#65f683a1100b3de9385184572ad68c6b8c337442" - integrity sha512-85TdlS/DLW/gVdf2oyyzqp3ocS30WxjaL4la85EArl9cHUR/nizifKAJPziWewSZjDZS71U517/i6ciUeqtB5Q== +tldts-core@^6.1.71: + version "6.1.71" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.71.tgz#04069cbdcf75b7fcb68fb4c1e00591cd3a2d4a5c" + integrity sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg== tldts@^6.1.32: - version "6.1.68" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.68.tgz#38e82b7ce9673c464c16c7952f007c3d7ab52b94" - integrity sha512-JKF17jROiYkjJPT73hUTEiTp2OBCf+kAlB+1novk8i6Q6dWjHsgEjw9VLiipV4KTJavazXhY1QUXyQFSem2T7w== + version "6.1.71" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.71.tgz#e0db0853dd533628729d6a97a211450205fa21e4" + integrity sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw== dependencies: - tldts-core "^6.1.68" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + tldts-core "^6.1.71" to-regex-range@^5.0.1: version "5.0.1" @@ -4861,9 +4254,9 @@ to-regex-range@^5.0.1: is-number "^7.0.0" tough-cookie@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -4884,10 +4277,10 @@ tr46@^5.0.0: dependencies: punycode "^2.3.1" -ts-api-utils@^1.3.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" - integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== +ts-api-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.0.0.tgz#b9d7d5f7ec9f736f4d0f09758b8607979044a900" + integrity sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ== tsconfig-paths@^3.15.0: version "3.15.0" @@ -4911,38 +4304,38 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-typed-array "^1.1.13" + is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz#3fa9f22567700cc86aaf86a1e7176f74b59600f2" - integrity sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw== +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - reflect.getprototypeof "^1.0.6" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" typed-array-length@^1.0.7: version "1.0.7" @@ -4957,19 +4350,19 @@ typed-array-length@^1.0.7: reflect.getprototypeof "^1.0.6" typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" undici-types@~6.20.0: version "6.20.0" @@ -4981,21 +4374,13 @@ universalify@^0.2.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" + integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== dependencies: escalade "^3.2.0" - picocolors "^1.1.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" @@ -5013,9 +4398,9 @@ url-parse@^1.5.3: requires-port "^1.0.0" use-debounce@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.0.tgz#5091b18d6c16292605f588bae3c0d2cfae756ff2" - integrity sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A== + version "10.0.4" + resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.4.tgz#2135be498ad855416c4495cfd8e0e130bd33bb24" + integrity sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw== uuid@^8.3.2: version "8.3.2" @@ -5023,67 +4408,56 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + version "13.12.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== -vite-node@2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.8.tgz#9495ca17652f6f7f95ca7c4b568a235e0c8dbac5" - integrity sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg== +vite-node@3.0.0-beta.4: + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.0.0-beta.4.tgz#600d2d6f360f793c5bd96ac47965c1296ef30b00" + integrity sha512-dzWen17ftEjmJWCsY7iMZ3lz4npzDsMYKEqkCnIiyABHiQCp9usrFnyzqNJJDIVZYZsG+UXgizOwjrV2cl2QYw== dependencies: cac "^6.7.14" - debug "^4.3.7" + debug "^4.4.0" es-module-lexer "^1.5.4" - pathe "^1.1.2" - vite "^5.0.0" - -vite@^5.0.0: - version "5.4.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5" - integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" + pathe "^2.0.0" + vite "^5.0.0 || ^6.0.0" -vite@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.3.tgz#cc01f403e326a9fc1e064235df8a6de084c8a491" - integrity sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw== +"vite@^5.0.0 || ^6.0.0", vite@^6.0.3: + version "6.0.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.7.tgz#f0f8c120733b04af52b4a1e3e7cb54eb851a799b" + integrity sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ== dependencies: - esbuild "^0.24.0" + esbuild "^0.24.2" postcss "^8.4.49" rollup "^4.23.0" optionalDependencies: fsevents "~2.3.3" -vitest@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.8.tgz#2e6a00bc24833574d535c96d6602fb64163092fa" - integrity sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ== - dependencies: - "@vitest/expect" "2.1.8" - "@vitest/mocker" "2.1.8" - "@vitest/pretty-format" "^2.1.8" - "@vitest/runner" "2.1.8" - "@vitest/snapshot" "2.1.8" - "@vitest/spy" "2.1.8" - "@vitest/utils" "2.1.8" +vitest@^3.0.0-beta.4: + version "3.0.0-beta.4" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.0.0-beta.4.tgz#ff849c239f760a4b0286fe430077eb6d66215771" + integrity sha512-lGRvQzzv4AOifGc7lhQ+s+1Bm0CtzLOZBwRIQiU6u9a968YTjxK5IGQLGJieI5OFh6V/Z+apsvCrm7CB29DkPw== + dependencies: + "@vitest/expect" "3.0.0-beta.4" + "@vitest/mocker" "3.0.0-beta.4" + "@vitest/pretty-format" "^3.0.0-beta.4" + "@vitest/runner" "3.0.0-beta.4" + "@vitest/snapshot" "3.0.0-beta.4" + "@vitest/spy" "3.0.0-beta.4" + "@vitest/utils" "3.0.0-beta.4" chai "^5.1.2" - debug "^4.3.7" + debug "^4.4.0" expect-type "^1.1.0" - magic-string "^0.30.12" - pathe "^1.1.2" + magic-string "^0.30.17" + pathe "^2.0.0" std-env "^3.8.0" tinybench "^2.9.0" - tinyexec "^0.3.1" - tinypool "^1.0.1" + tinyexec "^0.3.2" + tinypool "^1.0.2" tinyrainbow "^1.2.0" - vite "^5.0.0" - vite-node "2.1.8" + vite "^5.0.0 || ^6.0.0" + vite-node "3.0.0-beta.4" why-is-node-running "^2.3.0" w3c-xmlserializer@^5.0.0: @@ -5094,9 +4468,9 @@ w3c-xmlserializer@^5.0.0: xml-name-validator "^5.0.0" watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -5166,18 +4540,7 @@ whatwg-url@^14.0.0: tr46 "^5.0.0" webidl-conversions "^7.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-boxed-primitive@^1.1.0: +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== @@ -5188,7 +4551,7 @@ which-boxed-primitive@^1.1.0: is-string "^1.1.1" is-symbol "^1.1.1" -which-builtin-type@^1.2.0: +which-builtin-type@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== @@ -5217,15 +4580,16 @@ which-collection@^1.0.2: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.14, which-typed-array@^1.1.16: - version "1.1.16" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" - integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.18" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" for-each "^0.3.3" - gopd "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" which@^2.0.1: From 7e6ca31c6a009d60b7f3c9b1060a3fee8fc83733 Mon Sep 17 00:00:00 2001 From: Maurice Yap Date: Tue, 14 Jan 2025 22:22:14 +0000 Subject: [PATCH 5/7] Add localhost:4173 to allowed CORS origins (#4141) This origin is used for serving the lookout UI's production bundle locally. --- .run/LookoutV2.run.xml | 2 +- .run/Server.run.xml | 2 +- .run/lookoutv2PostgresMigration.run.xml | 2 +- developer/env/docker/binoculars.env | 2 +- developer/env/docker/lookoutv2.env | 2 +- developer/env/docker/server.env | 2 +- developer/env/local/binoculars.env | 2 +- developer/env/local/lookoutv2.env | 2 +- developer/env/local/server.env | 2 +- internal/lookout/ui/README.md | 7 +++++++ 10 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.run/LookoutV2.run.xml b/.run/LookoutV2.run.xml index c01ec8f5b09..06b5dd3c543 100644 --- a/.run/LookoutV2.run.xml +++ b/.run/LookoutV2.run.xml @@ -3,7 +3,7 @@ - + diff --git a/.run/Server.run.xml b/.run/Server.run.xml index 1f6327d2bdc..e773635dc2c 100644 --- a/.run/Server.run.xml +++ b/.run/Server.run.xml @@ -4,7 +4,7 @@ - + diff --git a/.run/lookoutv2PostgresMigration.run.xml b/.run/lookoutv2PostgresMigration.run.xml index be782ff2ecc..1ce1eea1d08 100644 --- a/.run/lookoutv2PostgresMigration.run.xml +++ b/.run/lookoutv2PostgresMigration.run.xml @@ -4,7 +4,7 @@ - + diff --git a/developer/env/docker/binoculars.env b/developer/env/docker/binoculars.env index 8c1711cb81d..1ab65270497 100644 --- a/developer/env/docker/binoculars.env +++ b/developer/env/docker/binoculars.env @@ -1,2 +1,2 @@ -ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:10000,http://example.com:10000" +ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:4173,http://localhost:10000,http://example.com:10000" ARMADA_HTTP_PORT=8082 diff --git a/developer/env/docker/lookoutv2.env b/developer/env/docker/lookoutv2.env index 1c0d8110f29..7ed97a55864 100644 --- a/developer/env/docker/lookoutv2.env +++ b/developer/env/docker/lookoutv2.env @@ -1,4 +1,4 @@ ARMADA_POSTGRES_CONNECTION_PORT=5432 -ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:10000,http://localhost:8082,http://example.com:10000" +ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:4173,http://localhost:10000,http://localhost:8082,http://example.com:10000" ARMADA_UICONFIG_ARMADAAPIBASEURL="http://localhost:8080" ARMADA_UICONFIG_BINOCULARSBASEURLPATTERN="http://localhost:8082" diff --git a/developer/env/docker/server.env b/developer/env/docker/server.env index a5b4496abe4..f871de68d7b 100644 --- a/developer/env/docker/server.env +++ b/developer/env/docker/server.env @@ -1,3 +1,3 @@ ARMADA_QUEUECACHEREFRESHPERIOD="1s" -ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:10000,http://example.com:10000" +ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:4173,http://localhost:10000,http://example.com:10000" ARMADA_QUERYAPI_POSTGRES_CONNECTION_HOST=postgres diff --git a/developer/env/local/binoculars.env b/developer/env/local/binoculars.env index 9e83157cc27..609a1f7d0ed 100644 --- a/developer/env/local/binoculars.env +++ b/developer/env/local/binoculars.env @@ -1 +1 @@ - ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:8089,http://example.com:8089" + ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:4173,http://localhost:8089,http://example.com:8089" diff --git a/developer/env/local/lookoutv2.env b/developer/env/local/lookoutv2.env index 564f1027d69..5397dd7e8d2 100644 --- a/developer/env/local/lookoutv2.env +++ b/developer/env/local/lookoutv2.env @@ -1,4 +1,4 @@ ARMADA_POSTGRES_CONNECTION_HOST="localhost" ARMADA_POSTGRES_CONNECTION_DBNAME=postgres ARMADA_POSTGRES_CONNECTION_PORT=5432 -ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:8089,http://localhost:10000,http://example.com:10000,http://example.com:8089" +ARMADA_CORSALLOWEDORIGINS="http://localhost:3000,http://localhost:4173,http://localhost:8089,http://localhost:10000,http://example.com:10000,http://example.com:8089" diff --git a/developer/env/local/server.env b/developer/env/local/server.env index 1daa14496d8..509b98e6927 100644 --- a/developer/env/local/server.env +++ b/developer/env/local/server.env @@ -1,5 +1,5 @@ EXECUTOR_UPDATE_INTERVAL="1s" -ARMADA_CORSALLOWEDORIGINS=="http://localhost:3000,http://localhost:8089,http://localhost:10000,http://example.com:10000,http://example.com:8089" +ARMADA_CORSALLOWEDORIGINS=="http://localhost:3000,http://localhost:4173,http://localhost:8089,http://localhost:10000,http://example.com:10000,http://example.com:8089" ARMADA_EVENTSAPIREDIS_ADDRS=localhost:6379 ARMADA_POSTGRES_CONNECTION_HOST=localhost ARMADA_PULSAR_URL=pulsar://localhost:6650 diff --git a/internal/lookout/ui/README.md b/internal/lookout/ui/README.md index 8fabf5d5ac9..2cb8547c6f1 100644 --- a/internal/lookout/ui/README.md +++ b/internal/lookout/ui/README.md @@ -76,3 +76,10 @@ yarn build This builds the app for production to the `build` folder. It correctly bundles React in production mode and optimizes the build for the best performance. + +You can then run a server to serve this production bundle locally on +[http://localhost:4173](http://localhost:4173): + +```bash +yarn serve +``` From f89883c3b8890a738ee15add0570cd66be2e09bd Mon Sep 17 00:00:00 2001 From: Martynas Asipauskas Date: Wed, 15 Jan 2025 12:08:28 +0000 Subject: [PATCH 6/7] Airflow operator extra links support regex extraction from container logs (#4145) Co-authored-by: Martynas Asipauskas --- docs/python_airflow_operator.md | 70 +-------------- third_party/airflow/armada/__init__.py | 4 +- third_party/airflow/armada/links.py | 86 +++++++++++++++++++ third_party/airflow/armada/log_manager.py | 29 +++++-- .../airflow/armada/operators/armada.py | 42 +++------ .../test/unit/operators/test_armada.py | 3 +- 6 files changed, 125 insertions(+), 109 deletions(-) create mode 100644 third_party/airflow/armada/links.py diff --git a/docs/python_airflow_operator.md b/docs/python_airflow_operator.md index 86b928230ab..be46d19238a 100644 --- a/docs/python_airflow_operator.md +++ b/docs/python_airflow_operator.md @@ -63,7 +63,7 @@ and handles job cancellation if the Airflow task is killed. * **reattach_policy** (*Optional**[**str**] **| **Callable**[**[**JobState**, **str**]**, **bool**]*) – - * **extra_links** (*Optional**[**Dict**[**str**, **str**]**]*) – + * **extra_links** (*Optional**[**Dict**[**str**, **Union**[**str**, **re.Pattern**]**]**]*) – @@ -199,74 +199,10 @@ acknowledged by Armada. :param reattach_policy: Operator reattach policy to use (defaults to: never) :type reattach_policy: Optional[str] | Callable[[JobState, str], bool] :param kwargs: Additional keyword arguments to pass to the BaseOperator. -:param extra_links: Extra links to be shown in addition to Lookout URL. -:type extra_links: Optional[Dict[str, str]] +:param extra_links: Extra links to be shown in addition to Lookout URL. Regex patterns will be extracted from container logs (taking first match). +:type extra_links: Optional[Dict[str, Union[str, re.Pattern]]] :param kwargs: Additional keyword arguments to pass to the BaseOperator. - -### _class_ armada.operators.armada.DynamicLink(name) -Bases: `BaseOperatorLink`, `LoggingMixin` - - -* **Parameters** - - **name** (*str*) – - - - -#### get_link(operator, \*, ti_key) -Link to external system. - -Note: The old signature of this function was `(self, operator, dttm: datetime)`. That is still -supported at runtime but is deprecated. - - -* **Parameters** - - - * **operator** (*BaseOperator*) – The Airflow operator object this link is associated to. - - - * **ti_key** (*TaskInstanceKey*) – TaskInstance ID to return link for. - - - -* **Returns** - - link to external system - - - -#### name(_: st_ ) - -### _class_ armada.operators.armada.LookoutLink() -Bases: `BaseOperatorLink` - - -#### get_link(operator, \*, ti_key) -Link to external system. - -Note: The old signature of this function was `(self, operator, dttm: datetime)`. That is still -supported at runtime but is deprecated. - - -* **Parameters** - - - * **operator** (*BaseOperator*) – The Airflow operator object this link is associated to. - - - * **ti_key** (*TaskInstanceKey*) – TaskInstance ID to return link for. - - - -* **Returns** - - link to external system - - - -#### name(_ = 'Lookout_ ) ## armada.triggers.armada module ## armada.auth module diff --git a/third_party/airflow/armada/__init__.py b/third_party/airflow/armada/__init__.py index 8190451aae1..fbb216e9259 100644 --- a/third_party/airflow/armada/__init__.py +++ b/third_party/airflow/armada/__init__.py @@ -10,8 +10,8 @@ def get_provider_info(): "name": "Armada Airflow Operator", "description": "Armada Airflow Operator.", "extra-links": [ - "armada.operators.armada.LookoutLink", - "armada.operators.armada.DynamicLink", + "armada.links.LookoutLink", + "armada.links.DynamicLink", ], "versions": ["1.0.0"], } diff --git a/third_party/airflow/armada/links.py b/third_party/airflow/armada/links.py new file mode 100644 index 00000000000..84d634aa2c3 --- /dev/null +++ b/third_party/airflow/armada/links.py @@ -0,0 +1,86 @@ +from __future__ import annotations + +import re +import attrs + +from typing import Dict, Optional, Union +from airflow.models import XCom +from airflow.utils.log.logging_mixin import LoggingMixin +from airflow.models import BaseOperator, BaseOperatorLink +from airflow.models.taskinstancekey import TaskInstanceKey + + +def get_link_value(ti_key: TaskInstanceKey, name: str) -> Optional[str]: + return XCom.get_value(ti_key=ti_key, key=f"armada_{name.lower()}_url") + + +def persist_link_value(ti_key: TaskInstanceKey, name: str, value: str): + XCom.set( + key=f"armada_{name.lower()}_url", + value=value, + dag_id=ti_key.dag_id, + task_id=ti_key.task_id, + run_id=ti_key.run_id, + map_index=ti_key.map_index, + ) + + +class LookoutLink(BaseOperatorLink): + name = "Lookout" + + def get_link(self, operator: BaseOperator, *, ti_key: TaskInstanceKey): + task_state = XCom.get_value(ti_key=ti_key, key="job_context") + if not task_state: + return "" + + return task_state.get("armada_lookout_url", "") + + +@attrs.define(init=True) +class DynamicLink(BaseOperatorLink, LoggingMixin): + name: str + + def get_link(self, operator: BaseOperator, *, ti_key: TaskInstanceKey): + url = get_link_value(ti_key, self.name) + if not url: + return "" + return url + + +class UrlFromLogsExtractor: + """Extracts and persists URLs from log messages based on regex patterns.""" + + def __init__(self, extra_links: Dict[str, re.Pattern], ti_key: TaskInstanceKey): + """ + :param extra_links: Dictionary of link names to regex patterns for URLs + :param ti_key: TaskInstanceKey for XCom + """ + self._extra_links = extra_links + self._ti_key = ti_key + + @staticmethod + def create( + extra_links: Dict[str, Union[str, re.Pattern]], ti_key: TaskInstanceKey + ) -> UrlFromLogsExtractor: + valid_links = { + name: pattern + for name, pattern in extra_links.items() + if isinstance(pattern, re.Pattern) and not get_link_value(ti_key, name) + } + return UrlFromLogsExtractor(valid_links, ti_key) + + def extract_and_persist_urls(self, message: str): + if not self._extra_links: + return + + matches = [] + for name in self._extra_links: + pattern = self._extra_links[name] + match = re.search(pattern, message) + if match: + url = match.group(0) + persist_link_value(self._ti_key, name, url) + matches.append(name) + + for m in matches: + del self._extra_links[m] diff --git a/third_party/airflow/armada/log_manager.py b/third_party/airflow/armada/log_manager.py index 2e64e306718..fc9175a419f 100644 --- a/third_party/airflow/armada/log_manager.py +++ b/third_party/airflow/armada/log_manager.py @@ -7,12 +7,14 @@ import pendulum import tenacity from airflow.utils.log.logging_mixin import LoggingMixin -from armada.auth import TokenRetriever from kubernetes import client, config from pendulum import DateTime from pendulum.parsing.exceptions import ParserError from urllib3.exceptions import HTTPError +from .auth import TokenRetriever +from .links import UrlFromLogsExtractor + class KubernetesPodLogManager(LoggingMixin): """Monitor logs of Kubernetes pods asynchronously.""" @@ -54,6 +56,7 @@ def fetch_container_logs( pod: str, container: str, since_time: Optional[DateTime], + link_extractor: UrlFromLogsExtractor, ) -> Optional[DateTime]: """ Fetches container logs, do not follow container logs. @@ -81,10 +84,14 @@ def fetch_container_logs( self.log.exception(f"There was an error reading the kubernetes API: {e}.") raise - return self._stream_logs(container, since_time, logs) + return self._stream_logs(container, since_time, logs, link_extractor) def _stream_logs( - self, container: str, since_time: Optional[DateTime], logs: HTTPResponse + self, + container: str, + since_time: Optional[DateTime], + logs: HTTPResponse, + link_extractor: UrlFromLogsExtractor, ) -> Optional[DateTime]: messages: List[str] = [] message_timestamp = None @@ -97,8 +104,7 @@ def _stream_logs( if line_timestamp: # detect new log-line (starts with timestamp) if since_time and line_timestamp <= since_time: continue - self._log_container_message(container, messages) - messages.clear() + self._log_container_message(container, messages, link_extractor) message_timestamp = line_timestamp messages.append(message) except HTTPError as e: @@ -106,12 +112,17 @@ def _stream_logs( f"Reading of logs interrupted for container {container} with error {e}." ) - self._log_container_message(container, messages) + self._log_container_message(container, messages, link_extractor) return message_timestamp - def _log_container_message(self, container: str, messages: List[str]): - if messages: - self.log.info("[%s] %s", container, "\n".join(messages)) + def _log_container_message( + self, container: str, messages: List[str], link_extractor: UrlFromLogsExtractor + ): + message = "\n".join(messages) + if message: + link_extractor.extract_and_persist_urls(message) + self.log.info("[%s] %s", container, message) + messages.clear() def _parse_log_line(self, line: bytes) -> Tuple[DateTime | None, str]: """ diff --git a/third_party/airflow/armada/operators/armada.py b/third_party/airflow/armada/operators/armada.py index 5f6152a2588..094850c91e8 100644 --- a/third_party/airflow/armada/operators/armada.py +++ b/third_party/airflow/armada/operators/armada.py @@ -17,12 +17,11 @@ # under the License. from __future__ import annotations -import attrs import dataclasses import datetime import os import time -from typing import Any, Callable, Dict, Optional, Sequence, Tuple +from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Union import jinja2 import tenacity @@ -30,9 +29,8 @@ from airflow.configuration import conf from airflow.exceptions import AirflowFailException -from airflow.models import BaseOperator, BaseOperatorLink, XCom +from airflow.models import BaseOperator from airflow.models.taskinstance import TaskInstance -from airflow.models.taskinstancekey import TaskInstanceKey from airflow.serialization.serde import deserialize from airflow.utils.context import Context from airflow.utils.log.logging_mixin import LoggingMixin @@ -50,26 +48,7 @@ from ..policies.reattach import external_job_uri, policy from ..triggers import ArmadaPollJobTrigger from ..utils import log_exceptions, xcom_pull_for_ti, resolve_parameter_value - - -class LookoutLink(BaseOperatorLink): - name = "Lookout" - - def get_link(self, operator: BaseOperator, *, ti_key: TaskInstanceKey): - task_state = XCom.get_value(ti_key=ti_key, key="job_context") - if not task_state: - return "" - - return task_state.get("armada_lookout_url", "") - - -@attrs.define(init=True) -class DynamicLink(BaseOperatorLink, LoggingMixin): - name: str - - def get_link(self, operator: BaseOperator, *, ti_key: TaskInstanceKey): - url = XCom.get_value(ti_key=ti_key, key=f"armada_{self.name.lower()}_url") - return url +from ..links import LookoutLink, DynamicLink, persist_link_value, UrlFromLogsExtractor class ArmadaOperator(BaseOperator, LoggingMixin): @@ -118,8 +97,9 @@ class ArmadaOperator(BaseOperator, LoggingMixin): :param reattach_policy: Operator reattach policy to use (defaults to: never) :type reattach_policy: Optional[str] | Callable[[JobState, str], bool] :param kwargs: Additional keyword arguments to pass to the BaseOperator. -:param extra_links: Extra links to be shown in addition to Lookout URL. -:type extra_links: Optional[Dict[str, str]] +:param extra_links: Extra links to be shown in addition to Lookout URL. \ +Regex patterns will be extracted from container logs (taking first match). +:type extra_links: Optional[Dict[str, Union[str, re.Pattern]]] :param kwargs: Additional keyword arguments to pass to the BaseOperator. """ @@ -149,7 +129,7 @@ def __init__( "armada_operator", "default_dry_run", fallback=False ), reattach_policy: Optional[str] | Callable[[JobState, str], bool] = None, - extra_links: Optional[Dict[str, str]] = None, + extra_links: Optional[Dict[str, Union[str, re.Pattern]]] = None, **kwargs, ) -> None: super().__init__(**kwargs) @@ -326,9 +306,7 @@ def render_extra_links_urls( continue try: rendered_url = jinja_env.from_string(url).render(context) - self._xcom_push( - context, key=f"armada_{name.lower()}_url", value=rendered_url - ) + persist_link_value(context["ti"].key, name, rendered_url) except jinja2.TemplateError as e: self.log.error(f"Error rendering template for {name} ({url}): {e}") @@ -485,12 +463,16 @@ def _check_job_status_and_fetch_logs(self, context) -> None: if self._should_have_a_pod_in_k8s() and self.container_logs: try: + link_extractor = UrlFromLogsExtractor.create( + self.extra_links, context["ti"].key + ) last_log_time = self.pod_manager.fetch_container_logs( k8s_context=self.job_context.cluster, namespace=self.job_request.namespace, pod=f"armada-{self.job_context.job_id}-0", container=self.container_logs, since_time=self.job_context.last_log_time, + link_extractor=link_extractor, ) if last_log_time: self.job_context = dataclasses.replace( diff --git a/third_party/airflow/test/unit/operators/test_armada.py b/third_party/airflow/test/unit/operators/test_armada.py index 3706276455c..539f7c9635c 100644 --- a/third_party/airflow/test/unit/operators/test_armada.py +++ b/third_party/airflow/test/unit/operators/test_armada.py @@ -1,7 +1,7 @@ import dataclasses from datetime import timedelta from typing import Optional -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock, patch, ANY import pytest from airflow.exceptions import TaskDeferred @@ -226,6 +226,7 @@ def test_polls_for_logs(context): pod="armada-test_job-0", container="alpine", since_time=None, + link_extractor=ANY, ) From d146bb2aee4976c6e12b7037ec74afc5a09385ca Mon Sep 17 00:00:00 2001 From: Maurice Yap Date: Wed, 15 Jan 2025 13:54:39 +0000 Subject: [PATCH 7/7] Add scheduling reports to Lookout UI (#4144) Add scheduling reports to a new sidebar tab for jobs which in a queuing state. This tab displays the time the job has spent in the queue, scheduling reports for the job (reports for the queue and overall are also available, but initially hidden), and parameters which are significant in the context of scheduling - the priority and resource requests. --- .gitignore | 4 + .goreleaser.yml | 3 + .run/LookoutV2.run.xml | 2 + build/bundles/full/Dockerfile | 1 + build/lookoutv2/Dockerfile | 1 + cmd/server/main.go | 2 + internal/armadactl/scheduling.go | 2 +- internal/lookout/ui/openapi.sh | 4 + .../lookout/ui/src/components/CodeBlock.tsx | 20 +- .../ui/src/components/VerbositySelector.tsx | 70 ++++ .../components/lookoutV2/sidebar/Sidebar.tsx | 16 + .../sidebar/SidebarTabScheduling.tsx | 257 ++++++++++++ .../sidebar/sidebarTabContentComponents.tsx | 42 +- .../lookoutV2/useGetJobSchedulingReport.ts | 27 ++ .../lookoutV2/useGetQueueSchedulingReport.ts | 27 ++ .../lookoutV2/useGetSchedulingReport.ts | 27 ++ .../src/services/lookoutV2/useGetUiConfig.ts | 81 ++++ internal/lookout/ui/src/utils.tsx | 2 +- internal/lookoutv2/gen/models/filter.go | 2 +- internal/lookoutv2/gen/models/job.go | 7 +- internal/lookoutv2/gen/models/order.go | 2 +- internal/lookoutv2/gen/models/run.go | 2 +- .../operations/get_job_error_parameters.go | 3 +- .../get_job_run_debug_message_parameters.go | 3 +- .../get_job_run_error_parameters.go | 3 +- .../operations/get_job_spec_parameters.go | 3 +- .../gen/restapi/operations/get_jobs.go | 11 + .../restapi/operations/get_jobs_parameters.go | 3 +- .../gen/restapi/operations/group_jobs.go | 12 + .../operations/group_jobs_parameters.go | 3 +- .../gen/restapi/operations/lookout_api.go | 2 +- internal/lookoutv2/gen/restapi/server.go | 5 +- .../reports/leader_proxying_reports_server.go | 2 +- .../leader_proxying_reports_server_test.go | 2 +- .../reports/proxying_reports_server.go | 2 +- .../reports/proxying_reports_server_test.go | 2 +- internal/scheduler/reports/server.go | 2 +- internal/scheduler/schedulerapp.go | 6 +- internal/server/server.go | 2 +- magefiles/proto.go | 19 +- pkg/api/schedulerobjects/api.swagger.go | 196 +++++++++ pkg/api/schedulerobjects/api.swagger.json | 183 ++++++++ .../scheduler_reporting.pb.go | 282 +++++++------ .../scheduler_reporting.pb.gw.go | 391 ++++++++++++++++++ .../scheduler_reporting.proto | 28 +- pkg/client/with_connection.go | 2 +- scripts/build-python-client.sh | 2 +- 47 files changed, 1591 insertions(+), 179 deletions(-) create mode 100644 internal/lookout/ui/src/components/VerbositySelector.tsx create mode 100644 internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabScheduling.tsx create mode 100644 internal/lookout/ui/src/services/lookoutV2/useGetJobSchedulingReport.ts create mode 100644 internal/lookout/ui/src/services/lookoutV2/useGetQueueSchedulingReport.ts create mode 100644 internal/lookout/ui/src/services/lookoutV2/useGetSchedulingReport.ts create mode 100644 internal/lookout/ui/src/services/lookoutV2/useGetUiConfig.ts create mode 100644 pkg/api/schedulerobjects/api.swagger.go create mode 100644 pkg/api/schedulerobjects/api.swagger.json rename internal/scheduler/schedulerobjects/reporting.pb.go => pkg/api/schedulerobjects/scheduler_reporting.pb.go (82%) create mode 100644 pkg/api/schedulerobjects/scheduler_reporting.pb.gw.go rename internal/scheduler/schedulerobjects/reporting.proto => pkg/api/schedulerobjects/scheduler_reporting.proto (53%) diff --git a/.gitignore b/.gitignore index 73c5e2d5452..9bcaaea3a38 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,10 @@ junit.xml docker-compose.dev.yaml delve +# VS Code debugging +__debug_bin +**/__debug_bin* + # Build artifacts dist .goreleaser-minimal.yml diff --git a/.goreleaser.yml b/.goreleaser.yml index 9172b64c6b0..c55622020d4 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -222,6 +222,7 @@ dockers: - internal/lookout/ui - pkg/api/api.swagger.json - pkg/api/binoculars/api.swagger.json + - pkg/api/schedulerobjects/api.swagger.json dockerfile: ./build/bundles/lookout/Dockerfile - id: full-bundle @@ -255,6 +256,7 @@ dockers: - internal/lookout/ui - pkg/api/api.swagger.json - pkg/api/binoculars/api.swagger.json + - pkg/api/schedulerobjects/api.swagger.json dockerfile: ./build/bundles/full/Dockerfile - id: server @@ -352,6 +354,7 @@ dockers: - internal/lookout/ui - pkg/api/api.swagger.json - pkg/api/binoculars/api.swagger.json + - pkg/api/schedulerobjects/api.swagger.json - config/lookoutv2/config.yaml - config/lookoutingesterv2/config.yaml dockerfile: ./build/lookoutv2/Dockerfile diff --git a/.run/LookoutV2.run.xml b/.run/LookoutV2.run.xml index 06b5dd3c543..d15d0832d3a 100644 --- a/.run/LookoutV2.run.xml +++ b/.run/LookoutV2.run.xml @@ -6,6 +6,8 @@ + + diff --git a/build/bundles/full/Dockerfile b/build/bundles/full/Dockerfile index 5199e21239b..a55303fbbb8 100644 --- a/build/bundles/full/Dockerfile +++ b/build/bundles/full/Dockerfile @@ -9,6 +9,7 @@ LABEL org.opencontainers.image.url=https://hub.docker.com/r/gresearch/armada-ful COPY internal/lookout/ui /project/internal/lookout/ui COPY pkg/api/*.swagger.json /project/pkg/api/ COPY pkg/api/binoculars/*.swagger.json /project/pkg/api/binoculars/ +COPY pkg/api/schedulerobjects/*.swagger.json /project/pkg/api/schedulerobjects/ RUN ./project/internal/lookout/ui/openapi.sh FROM ${NODE_BUILD_IMAGE} AS NODE diff --git a/build/lookoutv2/Dockerfile b/build/lookoutv2/Dockerfile index 79b259acc98..6f374c3bebe 100644 --- a/build/lookoutv2/Dockerfile +++ b/build/lookoutv2/Dockerfile @@ -7,6 +7,7 @@ FROM ${OPENAPI_BUILD_IMAGE} AS OPENAPI COPY internal/lookout/ui /project/internal/lookout/ui COPY pkg/api/*.swagger.json /project/pkg/api/ COPY pkg/api/binoculars/*.swagger.json /project/pkg/api/binoculars/ +COPY pkg/api/schedulerobjects/*.swagger.json /project/pkg/api/schedulerobjects/ RUN ./project/internal/lookout/ui/openapi.sh FROM ${NODE_BUILD_IMAGE} AS NODE diff --git a/cmd/server/main.go b/cmd/server/main.go index c7318dcecc0..96e51f293e1 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -21,6 +21,7 @@ import ( "github.com/armadaproject/armada/internal/server" "github.com/armadaproject/armada/internal/server/configuration" "github.com/armadaproject/armada/pkg/api" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) const CustomConfigLocation string = "config" @@ -92,6 +93,7 @@ func main() { api.RegisterSubmitHandler, api.RegisterEventHandler, api.RegisterJobsHandler, + schedulerobjects.RegisterSchedulerReportingHandler, ) defer shutdownGateway() diff --git a/internal/armadactl/scheduling.go b/internal/armadactl/scheduling.go index fa804cb31ec..fb4591a5a24 100644 --- a/internal/armadactl/scheduling.go +++ b/internal/armadactl/scheduling.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/armadaproject/armada/internal/common" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" "github.com/armadaproject/armada/pkg/client" ) diff --git a/internal/lookout/ui/openapi.sh b/internal/lookout/ui/openapi.sh index 0c1f57dd464..dae1c1e6322 100755 --- a/internal/lookout/ui/openapi.sh +++ b/internal/lookout/ui/openapi.sh @@ -6,3 +6,7 @@ -g typescript-fetch \ -i /project/pkg/api/binoculars/api.swagger.json \ -o /project/internal/lookout/ui/src/openapi/binoculars +/usr/local/bin/docker-entrypoint.sh generate \ + -g typescript-fetch \ + -i /project/pkg/api/schedulerobjects/api.swagger.json \ + -o /project/internal/lookout/ui/src/openapi/schedulerobjects diff --git a/internal/lookout/ui/src/components/CodeBlock.tsx b/internal/lookout/ui/src/components/CodeBlock.tsx index 28bd2671f7b..dcae404ef16 100644 --- a/internal/lookout/ui/src/components/CodeBlock.tsx +++ b/internal/lookout/ui/src/components/CodeBlock.tsx @@ -1,4 +1,4 @@ -import { useCallback } from "react" +import { ReactNode, useCallback } from "react" import { Download } from "@mui/icons-material" import { IconButton, Skeleton, styled, useColorScheme } from "@mui/material" @@ -45,6 +45,7 @@ const StyledPre = styled("pre")(({ theme }) => ({ minHeight: 50, display: "flex", alignItems: "center", + margin: 0, })) const Code = styled("code")({ @@ -72,6 +73,12 @@ const CodeLineNumber = styled("span")({ }, }) +interface CodeBlockActionProps { + title: string + onClick: () => void + icon: ReactNode +} + interface CodeBlockLoadingProps { loading: true code?: undefined | string @@ -96,13 +103,14 @@ interface CodeBlockNonDownloadbaleProps { downloadFileName?: undefined | string } -interface CodeBlockbaseProps { +interface CodeBlockBaseProps { showLineNumbers: boolean loadingLines?: number loadingLineLength?: number + additionalActions?: CodeBlockActionProps[] } -export type CodeBlockProps = CodeBlockbaseProps & +export type CodeBlockProps = CodeBlockBaseProps & (CodeBlockLoadedProps | CodeBlockLoadingProps) & (CodeBlockDownloadbaleProps | CodeBlockNonDownloadbaleProps) @@ -116,6 +124,7 @@ export const CodeBlock = ({ showLineNumbers, loadingLines = DEFAULT_LOADING_LINES, loadingLineLength = DEFAULT_LOADING_LINE_LENGTH, + additionalActions = [], }: CodeBlockProps) => { const { colorScheme } = useColorScheme() @@ -177,6 +186,11 @@ export const CodeBlock = ({ )} + {additionalActions.map(({ title, onClick, icon }) => ( + + {icon} + + ))} ({ + display: "flex", + flexDirection: "column", + gap: theme.spacing(SPACING.xs), +})) + +const RatingAndLabelContainer = styled("div")(({ theme }) => ({ + display: "flex", + alignItems: "center", + gap: theme.spacing(SPACING.sm), +})) + +const StyledRating = styled(Rating)(({ theme }) => ({ + "& .MuiRating-iconFilled": { + color: theme.palette.secondary.light, + }, + "& .MuiRating-iconHover": { + color: theme.palette.secondary.main, + }, +})) + +export interface VerbositySelectorProps { + name: string + legendLabel: string + max: number + verbosity: number + onChange: (verbosity: number) => void + disabled?: boolean +} + +export const VerbositySelector = ({ + name, + legendLabel, + max, + verbosity, + onChange, + disabled, +}: VerbositySelectorProps) => { + const [hoverValue, setHoverValue] = useState(-1) + return ( + + + {legendLabel} + + + { + setHoverValue(value) + }} + onChange={(_, value) => onChange(value ?? 0)} + max={max} + getLabelText={(value) => value.toString()} + icon={} + emptyIcon={} + disabled={disabled} + /> + Level {hoverValue !== -1 ? hoverValue.toString() : verbosity.toString()} + + + ) +} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx index d74f777dac1..34834140305 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/Sidebar.tsx @@ -10,6 +10,7 @@ import { SidebarTabJobDetails } from "./SidebarTabJobDetails" import { SidebarTabJobLogs } from "./SidebarTabJobLogs" import { SidebarTabJobResult } from "./SidebarTabJobResult" import { SidebarTabJobYaml } from "./SidebarTabJobYaml" +import { SidebarTabScheduling } from "./SidebarTabScheduling" import { Job, JobState } from "../../../models/lookoutV2Models" import { ICordonService } from "../../../services/lookoutV2/CordonService" import { IGetJobInfoService } from "../../../services/lookoutV2/GetJobInfoService" @@ -20,6 +21,7 @@ import { CommandSpec } from "../../../utils" enum SidebarTab { JobDetails = "JobDetails", JobResult = "JobResult", + Scheduling = "Scheduling", Yaml = "Yaml", Logs = "Logs", Commands = "Commands", @@ -149,6 +151,11 @@ export const Sidebar = memo( commandSpecs, }: SidebarProps) => { const [openTab, setOpenTab] = useState(SidebarTab.JobDetails) + useEffect(() => { + if (openTab === SidebarTab.Scheduling && job.state !== JobState.Queued) { + setOpenTab(SidebarTab.JobDetails) + } + }, [openTab, job.state]) const handleTabChange = useCallback((_: SyntheticEvent, newValue: SidebarTab) => { setOpenTab(newValue) @@ -254,6 +261,9 @@ export const Sidebar = memo( + {job.state === JobState.Queued && ( + + )} + {job.state === JobState.Queued && ( + + + + )} + diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabScheduling.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabScheduling.tsx new file mode 100644 index 00000000000..efae2533185 --- /dev/null +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/SidebarTabScheduling.tsx @@ -0,0 +1,257 @@ +import { useState } from "react" + +import { Refresh } from "@mui/icons-material" +import { + Accordion, + AccordionDetails, + AccordionSummary, + Alert, + AlertTitle, + Button, + Stack, + Typography, +} from "@mui/material" + +import { KeyValuePairTable } from "./KeyValuePairTable" +import { SidebarTabHeading, SidebarTabProminentValueCard, SidebarTabSubheading } from "./sidebarTabContentComponents" +import { Job, JobState } from "../../../models/lookoutV2Models" +import { useGetJobSchedulingReport } from "../../../services/lookoutV2/useGetJobSchedulingReport" +import { useGetQueueSchedulingReport } from "../../../services/lookoutV2/useGetQueueSchedulingReport" +import { useGetSchedulingReport } from "../../../services/lookoutV2/useGetSchedulingReport" +import { SPACING } from "../../../styling/spacing" +import { formatTimeSince } from "../../../utils/jobsTableFormatters" +import { formatCpu, formatBytes } from "../../../utils/resourceUtils" +import { CodeBlock } from "../../CodeBlock" +import { VerbositySelector } from "../../VerbositySelector" + +export interface SidebarTabSchedulingProps { + job: Job +} + +export const SidebarTabScheduling = ({ job }: SidebarTabSchedulingProps) => { + const [showAdvancedReports, setShowAdvancedReports] = useState(false) + const [queueReportVerbosity, setQueueReportVerbosity] = useState(0) + const [schedulingReportVerbosity, setSchedulingReportVerbosity] = useState(0) + + const getJobSchedulingReportResult = useGetJobSchedulingReport(job.jobId, Boolean(job.jobId)) + const getQueueSchedulingReportResult = useGetQueueSchedulingReport( + job.queue, + queueReportVerbosity, + showAdvancedReports && Boolean(job.queue), + ) + const getSchedulingReportResult = useGetSchedulingReport(schedulingReportVerbosity, showAdvancedReports) + + return ( + <> + + {job.state === JobState.Queued && ( + + )} + + Scheduling report + This is the scheduling report for this job from the latest scheduling round. + {getJobSchedulingReportResult.status === "error" && ( + getJobSchedulingReportResult.refetch()}> + Retry + + } + > + Failed to get the scheduling report for this job. + {getJobSchedulingReportResult.error} + + )} + {(getJobSchedulingReportResult.status === "pending" || getJobSchedulingReportResult.isFetching) && ( + + )} + {getJobSchedulingReportResult.status === "success" && + !getJobSchedulingReportResult.isFetching && + (getJobSchedulingReportResult.data.report ? ( + getJobSchedulingReportResult.refetch(), icon: }, + ]} + /> + ) : ( + getJobSchedulingReportResult.refetch()}> + Retry + + } + > + No scheduling report is available for this job. + + ))} +
+ setShowAdvancedReports(expanded)}> + + Advanced reports + + + + Report for this job's queue ({job.queue}) + + setQueueReportVerbosity(verbosity)} + disabled={ + getQueueSchedulingReportResult.status === "pending" || getQueueSchedulingReportResult.isFetching + } + /> + {getQueueSchedulingReportResult.status === "error" && ( + getQueueSchedulingReportResult.refetch()}> + Retry + + } + > + Failed to get the scheduling report for this queue. + {getQueueSchedulingReportResult.error} + + )} + {(getQueueSchedulingReportResult.status === "pending" || getQueueSchedulingReportResult.isFetching) && ( + + )} + {getQueueSchedulingReportResult.status === "success" && + !getQueueSchedulingReportResult.isFetching && + (getQueueSchedulingReportResult.data.report ? ( + getQueueSchedulingReportResult.refetch(), + icon: , + }, + ]} + /> + ) : ( + getQueueSchedulingReportResult.refetch()}> + Retry + + } + > + No scheduling report is available for this queue. + + ))} + + Overall scheduling report + + setSchedulingReportVerbosity(verbosity)} + disabled={getSchedulingReportResult.status === "pending" || getSchedulingReportResult.isFetching} + /> + {getSchedulingReportResult.status === "error" && ( + getSchedulingReportResult.refetch()}> + Retry + + } + > + Failed to get the overall scheduling report. + {getSchedulingReportResult.error} + + )} + {(getSchedulingReportResult.status === "pending" || getSchedulingReportResult.isFetching) && ( + + )} + {getSchedulingReportResult.status === "success" && + !getSchedulingReportResult.isFetching && + (getSchedulingReportResult.data.report ? ( + getSchedulingReportResult.refetch(), icon: }, + ]} + /> + ) : ( + getSchedulingReportResult.refetch()}> + Retry + + } + > + No scheduling report is available. + + ))} + + + + +
+ Scheduling parameters + + These job details are used by Armada's scheduler when determining which jobs to execute on the cluster. + + + + + Resource requests + + + ) +} diff --git a/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx b/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx index 63928d7cd38..6f0c7174cf1 100644 --- a/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx +++ b/internal/lookout/ui/src/components/lookoutV2/sidebar/sidebarTabContentComponents.tsx @@ -1,4 +1,6 @@ -import { styled, Typography, TypographyProps } from "@mui/material" +import { Card, styled, Typography, TypographyProps } from "@mui/material" + +import { SPACING } from "../../../styling/spacing" const StyledHeading = styled(Typography)(({ theme }) => ({ fontSize: theme.typography.h6.fontSize, @@ -13,3 +15,41 @@ const StyledSubheading = styled(Typography)(({ theme }) => ({ })) export const SidebarTabSubheading = (props: TypographyProps) => + +const StyledCard = styled(Card)(({ theme }) => ({ + display: "flex", + flexDirection: "column", + rowGap: theme.spacing(SPACING.sm), + alignItems: "flex-start", + padding: theme.spacing(SPACING.md), +})) + +const CardLabel = styled(Typography)(({ theme }) => ({ + fontSize: theme.typography.h6.fontSize, + color: theme.palette.text.secondary, + lineHeight: 1, +})) + +const CardValue = styled(Typography)(({ theme }) => ({ + fontSize: theme.typography.h4.fontSize, + fontWeight: theme.typography.fontWeightMedium, + lineHeight: 1, +})) + +export interface SidebarTabProminentValueCardProps { + label: string + value: string +} + +export const SidebarTabProminentValueCard = ({ label, value }: SidebarTabProminentValueCardProps) => ( +
+ +
+ {label} +
+
+ {value} +
+
+
+) diff --git a/internal/lookout/ui/src/services/lookoutV2/useGetJobSchedulingReport.ts b/internal/lookout/ui/src/services/lookoutV2/useGetJobSchedulingReport.ts new file mode 100644 index 00000000000..f1de0ff73d3 --- /dev/null +++ b/internal/lookout/ui/src/services/lookoutV2/useGetJobSchedulingReport.ts @@ -0,0 +1,27 @@ +import { useQuery } from "@tanstack/react-query" + +import { useGetUiConfig } from "./useGetUiConfig" +import { SchedulerReportingApi, Configuration, SchedulerobjectsJobReport } from "../../openapi/schedulerobjects" +import { getErrorMessage } from "../../utils" + +export const useGetJobSchedulingReport = (jobId: string, enabled = true) => { + const { data: uiConfig } = useGetUiConfig(enabled) + const armadaApiBaseUrl = uiConfig?.armadaApiBaseUrl + + const schedulerReportingApiConfiguration: Configuration = new Configuration({ basePath: armadaApiBaseUrl }) + const schedulerReportingApi = new SchedulerReportingApi(schedulerReportingApiConfiguration) + + return useQuery({ + queryKey: ["getJobSchedulingReport", jobId], + queryFn: async ({ signal }) => { + try { + return await schedulerReportingApi.getJobReport({ jobId }, { signal }) + } catch (e) { + throw await getErrorMessage(e) + } + }, + enabled: Boolean(enabled && armadaApiBaseUrl), + refetchOnMount: false, + staleTime: 30_000, + }) +} diff --git a/internal/lookout/ui/src/services/lookoutV2/useGetQueueSchedulingReport.ts b/internal/lookout/ui/src/services/lookoutV2/useGetQueueSchedulingReport.ts new file mode 100644 index 00000000000..3612c03189e --- /dev/null +++ b/internal/lookout/ui/src/services/lookoutV2/useGetQueueSchedulingReport.ts @@ -0,0 +1,27 @@ +import { useQuery } from "@tanstack/react-query" + +import { useGetUiConfig } from "./useGetUiConfig" +import { SchedulerReportingApi, Configuration, SchedulerobjectsQueueReport } from "../../openapi/schedulerobjects" +import { getErrorMessage } from "../../utils" + +export const useGetQueueSchedulingReport = (queueName: string, verbosity: number, enabled = true) => { + const { data: uiConfig } = useGetUiConfig(enabled) + const armadaApiBaseUrl = uiConfig?.armadaApiBaseUrl + + const schedulerReportingApiConfiguration: Configuration = new Configuration({ basePath: armadaApiBaseUrl }) + const schedulerReportingApi = new SchedulerReportingApi(schedulerReportingApiConfiguration) + + return useQuery({ + queryKey: ["getQueueSchedulingReport", queueName, verbosity], + queryFn: async ({ signal }) => { + try { + return await schedulerReportingApi.getQueueReport({ queueName, verbosity }, { signal }) + } catch (e) { + throw await getErrorMessage(e) + } + }, + enabled: Boolean(enabled && armadaApiBaseUrl), + refetchOnMount: false, + staleTime: 30_000, + }) +} diff --git a/internal/lookout/ui/src/services/lookoutV2/useGetSchedulingReport.ts b/internal/lookout/ui/src/services/lookoutV2/useGetSchedulingReport.ts new file mode 100644 index 00000000000..c9c46caa868 --- /dev/null +++ b/internal/lookout/ui/src/services/lookoutV2/useGetSchedulingReport.ts @@ -0,0 +1,27 @@ +import { useQuery } from "@tanstack/react-query" + +import { useGetUiConfig } from "./useGetUiConfig" +import { SchedulerReportingApi, Configuration, SchedulerobjectsSchedulingReport } from "../../openapi/schedulerobjects" +import { getErrorMessage } from "../../utils" + +export const useGetSchedulingReport = (verbosity: number, enabled = true) => { + const { data: uiConfig } = useGetUiConfig(enabled) + const armadaApiBaseUrl = uiConfig?.armadaApiBaseUrl + + const schedulerReportingApiConfiguration: Configuration = new Configuration({ basePath: armadaApiBaseUrl }) + const schedulerReportingApi = new SchedulerReportingApi(schedulerReportingApiConfiguration) + + return useQuery({ + queryKey: ["getSchedulingReport", verbosity], + queryFn: async ({ signal }) => { + try { + return await schedulerReportingApi.getSchedulingReport({ verbosity }, { signal }) + } catch (e) { + throw await getErrorMessage(e) + } + }, + enabled: Boolean(enabled && armadaApiBaseUrl), + refetchOnMount: false, + staleTime: 30_000, + }) +} diff --git a/internal/lookout/ui/src/services/lookoutV2/useGetUiConfig.ts b/internal/lookout/ui/src/services/lookoutV2/useGetUiConfig.ts new file mode 100644 index 00000000000..683c41b3062 --- /dev/null +++ b/internal/lookout/ui/src/services/lookoutV2/useGetUiConfig.ts @@ -0,0 +1,81 @@ +import { useQuery } from "@tanstack/react-query" + +import { getErrorMessage, OidcConfig, UIConfig } from "../../utils" + +const DEFAULT_OIDC_CONFIG: OidcConfig = { + authority: "", + clientId: "", + scope: "", +} + +const DEFAULT_UI_CONFIG: UIConfig = { + armadaApiBaseUrl: "", + userAnnotationPrefix: "", + binocularsBaseUrlPattern: "", + jobSetsAutoRefreshMs: undefined, + jobsAutoRefreshMs: undefined, + debugEnabled: false, + fakeDataEnabled: false, + customTitle: "", + oidcEnabled: false, + oidc: undefined, + commandSpecs: [], + backend: undefined, +} + +export const useGetUiConfig = (enabled = true) => { + const searchParams = new URLSearchParams(window.location.search) + + const config = { + ...DEFAULT_UI_CONFIG, + debugEnabled: searchParams.has("debug"), + fakeDataEnabled: searchParams.has("fakeData"), + } + + return useQuery({ + queryKey: ["useGetUiConfig"], + queryFn: async ({ signal }) => { + try { + const response = await fetch("/config", { signal }) + const json = await response.json() + + if (json.ArmadaApiBaseUrl) config.armadaApiBaseUrl = json.ArmadaApiBaseUrl + if (json.UserAnnotationPrefix) config.userAnnotationPrefix = json.UserAnnotationPrefix + if (json.BinocularsBaseUrlPattern) config.binocularsBaseUrlPattern = json.BinocularsBaseUrlPattern + if (json.JobSetsAutoRefreshMs) config.jobSetsAutoRefreshMs = json.JobSetsAutoRefreshMs + if (json.JobsAutoRefreshMs) config.jobsAutoRefreshMs = json.JobsAutoRefreshMs + if (json.CustomTitle) config.customTitle = json.CustomTitle + if (json.OidcEnabled) config.oidcEnabled = json.OidcEnabled + + if (json.Oidc) { + config.oidc = DEFAULT_OIDC_CONFIG + if (json.Oidc.Authority) config.oidc.authority = json.Oidc.Authority + if (json.Oidc.ClientId) config.oidc.clientId = json.Oidc.ClientId + if (json.Oidc.Scope) config.oidc.scope = json.Oidc.Scope + } + + if (json.CommandSpecs) { + config.commandSpecs = json.CommandSpecs.map(({ Name, Template }: { Name: string; Template: string }) => ({ + name: Name, + template: Template, + })) + } + + if (json.Backend) config.backend = json.Backend + } catch (e) { + throw await getErrorMessage(e) + } + + config.oidcEnabled = + searchParams.get("oidcEnabled") === JSON.stringify(true) || window.location.pathname === "/oidc" + + const backend = searchParams.get("backend") + if (backend) config.backend = backend + + return config + }, + enabled, + refetchOnMount: false, + staleTime: Infinity, + }) +} diff --git a/internal/lookout/ui/src/utils.tsx b/internal/lookout/ui/src/utils.tsx index eefeedae5d4..3c4caf410d7 100644 --- a/internal/lookout/ui/src/utils.tsx +++ b/internal/lookout/ui/src/utils.tsx @@ -14,7 +14,7 @@ export interface CommandSpec { template: string } -interface UIConfig { +export interface UIConfig { armadaApiBaseUrl: string userAnnotationPrefix: string binocularsBaseUrlPattern: string diff --git a/internal/lookoutv2/gen/models/filter.go b/internal/lookoutv2/gen/models/filter.go index 79f30ae8841..92d01a29f86 100644 --- a/internal/lookoutv2/gen/models/filter.go +++ b/internal/lookoutv2/gen/models/filter.go @@ -30,7 +30,7 @@ type Filter struct { // match // Required: true - // Enum: [exact anyOf startsWith contains greaterThan lessThan greaterThanOrEqualTo lessThanOrEqualTo exists] + // Enum: ["exact","anyOf","startsWith","contains","greaterThan","lessThan","greaterThanOrEqualTo","lessThanOrEqualTo","exists"] Match string `json:"match"` // value diff --git a/internal/lookoutv2/gen/models/job.go b/internal/lookoutv2/gen/models/job.go index 5a1ee2afbc6..203beaf9af5 100644 --- a/internal/lookoutv2/gen/models/job.go +++ b/internal/lookoutv2/gen/models/job.go @@ -111,7 +111,7 @@ type Job struct { // state // Required: true - // Enum: [QUEUED PENDING RUNNING SUCCEEDED FAILED CANCELLED PREEMPTED LEASED REJECTED] + // Enum: ["QUEUED","PENDING","RUNNING","SUCCEEDED","FAILED","CANCELLED","PREEMPTED","LEASED","REJECTED"] State string `json:"state"` // submitted @@ -492,6 +492,11 @@ func (m *Job) contextValidateRuns(ctx context.Context, formats strfmt.Registry) for i := 0; i < len(m.Runs); i++ { if m.Runs[i] != nil { + + if swag.IsZero(m.Runs[i]) { // not required + return nil + } + if err := m.Runs[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("runs" + "." + strconv.Itoa(i)) diff --git a/internal/lookoutv2/gen/models/order.go b/internal/lookoutv2/gen/models/order.go index 1be5c6c6084..a40eac27592 100644 --- a/internal/lookoutv2/gen/models/order.go +++ b/internal/lookoutv2/gen/models/order.go @@ -22,7 +22,7 @@ type Order struct { // direction // Required: true - // Enum: [ASC DESC] + // Enum: ["ASC","DESC"] Direction string `json:"direction"` // field diff --git a/internal/lookoutv2/gen/models/run.go b/internal/lookoutv2/gen/models/run.go index c2e46a61319..59df7e4bb1e 100644 --- a/internal/lookoutv2/gen/models/run.go +++ b/internal/lookoutv2/gen/models/run.go @@ -34,7 +34,7 @@ type Run struct { // job run state // Required: true - // Enum: [RUN_PENDING RUN_RUNNING RUN_SUCCEEDED RUN_FAILED RUN_TERMINATED RUN_PREEMPTED RUN_UNABLE_TO_SCHEDULE RUN_LEASE_RETURNED RUN_LEASE_EXPIRED RUN_MAX_RUNS_EXCEEDED RUN_LEASED RUN_CANCELLED] + // Enum: ["RUN_PENDING","RUN_RUNNING","RUN_SUCCEEDED","RUN_FAILED","RUN_TERMINATED","RUN_PREEMPTED","RUN_UNABLE_TO_SCHEDULE","RUN_LEASE_RETURNED","RUN_LEASE_EXPIRED","RUN_MAX_RUNS_EXCEEDED","RUN_LEASED","RUN_CANCELLED"] JobRunState string `json:"jobRunState"` // leased diff --git a/internal/lookoutv2/gen/restapi/operations/get_job_error_parameters.go b/internal/lookoutv2/gen/restapi/operations/get_job_error_parameters.go index 865ee37d4e2..54580325790 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_job_error_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/get_job_error_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -64,7 +63,7 @@ func (o *GetJobErrorParams) BindRequest(r *http.Request, route *middleware.Match res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/get_job_run_debug_message_parameters.go b/internal/lookoutv2/gen/restapi/operations/get_job_run_debug_message_parameters.go index 78281bd4bef..1c47c4e9ac4 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_job_run_debug_message_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/get_job_run_debug_message_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -64,7 +63,7 @@ func (o *GetJobRunDebugMessageParams) BindRequest(r *http.Request, route *middle res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/get_job_run_error_parameters.go b/internal/lookoutv2/gen/restapi/operations/get_job_run_error_parameters.go index 103623d3fcf..6ac94c9acae 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_job_run_error_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/get_job_run_error_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -64,7 +63,7 @@ func (o *GetJobRunErrorParams) BindRequest(r *http.Request, route *middleware.Ma res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/get_job_spec_parameters.go b/internal/lookoutv2/gen/restapi/operations/get_job_spec_parameters.go index e0defe162b8..7c0a2322f29 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_job_spec_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/get_job_spec_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -64,7 +63,7 @@ func (o *GetJobSpecParams) BindRequest(r *http.Request, route *middleware.Matche res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/get_jobs.go b/internal/lookoutv2/gen/restapi/operations/get_jobs.go index 308570bd5b4..1cb9fc27916 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_jobs.go +++ b/internal/lookoutv2/gen/restapi/operations/get_jobs.go @@ -174,6 +174,11 @@ func (o *GetJobsBody) contextValidateFilters(ctx context.Context, formats strfmt for i := 0; i < len(o.Filters); i++ { if o.Filters[i] != nil { + + if swag.IsZero(o.Filters[i]) { // not required + return nil + } + if err := o.Filters[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("getJobsRequest" + "." + "filters" + "." + strconv.Itoa(i)) @@ -192,6 +197,7 @@ func (o *GetJobsBody) contextValidateFilters(ctx context.Context, formats strfmt func (o *GetJobsBody) contextValidateOrder(ctx context.Context, formats strfmt.Registry) error { if o.Order != nil { + if err := o.Order.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("getJobsRequest" + "." + "order") @@ -291,6 +297,11 @@ func (o *GetJobsOKBody) contextValidateJobs(ctx context.Context, formats strfmt. for i := 0; i < len(o.Jobs); i++ { if o.Jobs[i] != nil { + + if swag.IsZero(o.Jobs[i]) { // not required + return nil + } + if err := o.Jobs[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("getJobsOK" + "." + "jobs" + "." + strconv.Itoa(i)) diff --git a/internal/lookoutv2/gen/restapi/operations/get_jobs_parameters.go b/internal/lookoutv2/gen/restapi/operations/get_jobs_parameters.go index 3085016524a..501ac5de4c3 100644 --- a/internal/lookoutv2/gen/restapi/operations/get_jobs_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/get_jobs_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -76,7 +75,7 @@ func (o *GetJobsParams) BindRequest(r *http.Request, route *middleware.MatchedRo res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/group_jobs.go b/internal/lookoutv2/gen/restapi/operations/group_jobs.go index 89f808f197d..1f1ff8cbc26 100644 --- a/internal/lookoutv2/gen/restapi/operations/group_jobs.go +++ b/internal/lookoutv2/gen/restapi/operations/group_jobs.go @@ -223,6 +223,11 @@ func (o *GroupJobsBody) contextValidateFilters(ctx context.Context, formats strf for i := 0; i < len(o.Filters); i++ { if o.Filters[i] != nil { + + if swag.IsZero(o.Filters[i]) { // not required + return nil + } + if err := o.Filters[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("groupJobsRequest" + "." + "filters" + "." + strconv.Itoa(i)) @@ -241,6 +246,7 @@ func (o *GroupJobsBody) contextValidateFilters(ctx context.Context, formats strf func (o *GroupJobsBody) contextValidateGroupedField(ctx context.Context, formats strfmt.Registry) error { if o.GroupedField != nil { + if err := o.GroupedField.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("groupJobsRequest" + "." + "groupedField") @@ -257,6 +263,7 @@ func (o *GroupJobsBody) contextValidateGroupedField(ctx context.Context, formats func (o *GroupJobsBody) contextValidateOrder(ctx context.Context, formats strfmt.Registry) error { if o.Order != nil { + if err := o.Order.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("groupJobsRequest" + "." + "order") @@ -358,6 +365,11 @@ func (o *GroupJobsOKBody) contextValidateGroups(ctx context.Context, formats str for i := 0; i < len(o.Groups); i++ { if o.Groups[i] != nil { + + if swag.IsZero(o.Groups[i]) { // not required + return nil + } + if err := o.Groups[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("groupJobsOK" + "." + "groups" + "." + strconv.Itoa(i)) diff --git a/internal/lookoutv2/gen/restapi/operations/group_jobs_parameters.go b/internal/lookoutv2/gen/restapi/operations/group_jobs_parameters.go index 6df300eeabb..3a315cc5c84 100644 --- a/internal/lookoutv2/gen/restapi/operations/group_jobs_parameters.go +++ b/internal/lookoutv2/gen/restapi/operations/group_jobs_parameters.go @@ -6,7 +6,6 @@ package operations // Editing this file might prove futile when you re-run the swagger generate command import ( - "context" "io" "net/http" @@ -76,7 +75,7 @@ func (o *GroupJobsParams) BindRequest(r *http.Request, route *middleware.Matched res = append(res, err) } - ctx := validate.WithOperationRequest(context.Background()) + ctx := validate.WithOperationRequest(r.Context()) if err := body.ContextValidate(ctx, route.Formats); err != nil { res = append(res, err) } diff --git a/internal/lookoutv2/gen/restapi/operations/lookout_api.go b/internal/lookoutv2/gen/restapi/operations/lookout_api.go index f4d99c99ee4..664c3777bd9 100644 --- a/internal/lookoutv2/gen/restapi/operations/lookout_api.go +++ b/internal/lookoutv2/gen/restapi/operations/lookout_api.go @@ -377,6 +377,6 @@ func (o *LookoutAPI) AddMiddlewareFor(method, path string, builder middleware.Bu } o.Init() if h, ok := o.handlers[um][path]; ok { - o.handlers[method][path] = builder(h) + o.handlers[um][path] = builder(h) } } diff --git a/internal/lookoutv2/gen/restapi/server.go b/internal/lookoutv2/gen/restapi/server.go index 4af6552d17e..97cf93cee70 100644 --- a/internal/lookoutv2/gen/restapi/server.go +++ b/internal/lookoutv2/gen/restapi/server.go @@ -8,7 +8,6 @@ import ( "crypto/x509" "errors" "fmt" - "io/ioutil" "log" "net" "net/http" @@ -81,7 +80,7 @@ type Server struct { ListenLimit int `long:"listen-limit" description:"limit the number of outstanding requests"` KeepAlive time.Duration `long:"keep-alive" description:"sets the TCP keep-alive timeouts on accepted connections. It prunes dead TCP connections ( e.g. closing laptop mid-download)" default:"3m"` ReadTimeout time.Duration `long:"read-timeout" description:"maximum duration before timing out read of the request" default:"30s"` - WriteTimeout time.Duration `long:"write-timeout" description:"maximum duration before timing out write of the response" default:"60s"` + WriteTimeout time.Duration `long:"write-timeout" description:"maximum duration before timing out write of the response" default:"30s"` httpServerL net.Listener TLSHost string `long:"tls-host" description:"the IP to listen on for tls, when not specified it's the same as --host" env:"TLS_HOST"` @@ -274,7 +273,7 @@ func (s *Server) Serve() (err error) { if s.TLSCACertificate != "" { // include specified CA certificate - caCert, caCertErr := ioutil.ReadFile(string(s.TLSCACertificate)) + caCert, caCertErr := os.ReadFile(string(s.TLSCACertificate)) if caCertErr != nil { return caCertErr } diff --git a/internal/scheduler/reports/leader_proxying_reports_server.go b/internal/scheduler/reports/leader_proxying_reports_server.go index 9275db3fef9..ebc795dd714 100644 --- a/internal/scheduler/reports/leader_proxying_reports_server.go +++ b/internal/scheduler/reports/leader_proxying_reports_server.go @@ -6,7 +6,7 @@ import ( "google.golang.org/grpc" "github.com/armadaproject/armada/internal/scheduler/leader" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) type LeaderProxyingSchedulingReportsServer struct { diff --git a/internal/scheduler/reports/leader_proxying_reports_server_test.go b/internal/scheduler/reports/leader_proxying_reports_server_test.go index 14adacf3812..ace96e7bb00 100644 --- a/internal/scheduler/reports/leader_proxying_reports_server_test.go +++ b/internal/scheduler/reports/leader_proxying_reports_server_test.go @@ -10,7 +10,7 @@ import ( "google.golang.org/grpc" "github.com/armadaproject/armada/internal/common/armadacontext" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) func TestLeaderProxyingSchedulingReportsServer_GetJobReports(t *testing.T) { diff --git a/internal/scheduler/reports/proxying_reports_server.go b/internal/scheduler/reports/proxying_reports_server.go index 12794f7a951..f52ffc3944b 100644 --- a/internal/scheduler/reports/proxying_reports_server.go +++ b/internal/scheduler/reports/proxying_reports_server.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) type ProxyingSchedulingReportsServer struct { diff --git a/internal/scheduler/reports/proxying_reports_server_test.go b/internal/scheduler/reports/proxying_reports_server_test.go index 896734e07fb..585735860c9 100644 --- a/internal/scheduler/reports/proxying_reports_server_test.go +++ b/internal/scheduler/reports/proxying_reports_server_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/armadaproject/armada/internal/common/armadacontext" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) func TestProxyingSchedulingReportsServer_GetJobReports(t *testing.T) { diff --git a/internal/scheduler/reports/server.go b/internal/scheduler/reports/server.go index da8bcf49b47..6c9653ffdab 100644 --- a/internal/scheduler/reports/server.go +++ b/internal/scheduler/reports/server.go @@ -11,7 +11,7 @@ import ( "github.com/openconfig/goyang/pkg/indent" "google.golang.org/grpc/codes" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) type Server struct { diff --git a/internal/scheduler/schedulerapp.go b/internal/scheduler/schedulerapp.go index 9bbd0a01b53..70c6067117b 100644 --- a/internal/scheduler/schedulerapp.go +++ b/internal/scheduler/schedulerapp.go @@ -42,9 +42,9 @@ import ( "github.com/armadaproject/armada/internal/scheduler/metrics" "github.com/armadaproject/armada/internal/scheduler/queue" "github.com/armadaproject/armada/internal/scheduler/reports" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" "github.com/armadaproject/armada/internal/scheduler/scheduling" "github.com/armadaproject/armada/pkg/api" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/client" "github.com/armadaproject/armada/pkg/executorapi" @@ -226,8 +226,8 @@ func Run(config schedulerconfig.Configuration) error { reportServer := reports.NewServer(schedulingContextRepository) leaderClientConnectionProvider := leader.NewLeaderConnectionProvider(leaderController, config.Leader) - schedulingReportServer := reports.NewLeaderProxyingSchedulingReportsServer(reportServer, leaderClientConnectionProvider) - schedulerobjects.RegisterSchedulerReportingServer(grpcServer, schedulingReportServer) + schedulingSchedulerReportingServer := reports.NewLeaderProxyingSchedulingReportsServer(reportServer, leaderClientConnectionProvider) + schedulerobjects.RegisterSchedulerReportingServer(grpcServer, schedulingSchedulerReportingServer) // //////////////////////////////////////////////////////////////////////// // Scheduling diff --git a/internal/server/server.go b/internal/server/server.go index badcc5689f8..514176e37fb 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -25,7 +25,6 @@ import ( controlplaneeventspulsarutils "github.com/armadaproject/armada/internal/common/pulsarutils/controlplaneevents" "github.com/armadaproject/armada/internal/common/pulsarutils/jobsetevents" "github.com/armadaproject/armada/internal/scheduler/reports" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" "github.com/armadaproject/armada/internal/server/configuration" "github.com/armadaproject/armada/internal/server/event" "github.com/armadaproject/armada/internal/server/executor" @@ -33,6 +32,7 @@ import ( "github.com/armadaproject/armada/internal/server/queue" "github.com/armadaproject/armada/internal/server/submit" "github.com/armadaproject/armada/pkg/api" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/client" "github.com/armadaproject/armada/pkg/controlplaneevents" diff --git a/magefiles/proto.go b/magefiles/proto.go index 8e50be208d1..40e6ceb917d 100644 --- a/magefiles/proto.go +++ b/magefiles/proto.go @@ -99,6 +99,7 @@ func protoGenerate() error { "internal/scheduler/schedulerobjects/*.proto", "internal/scheduler/simulator/*.proto", "pkg/api/binoculars/*.proto", + "pkg/api/schedulerobjects/*.proto", "pkg/executorapi/*.proto", } for _, pattern := range patterns { @@ -122,6 +123,11 @@ func protoGenerate() error { return err } + err = protoProtocRun(false, true, "./pkg/api/schedulerobjects/api", "pkg/api/schedulerobjects/scheduler_reporting.proto") + if err != nil { + return err + } + err = sh.Run( "swagger", "generate", "spec", "-m", "-o", "pkg/api/api.swagger.definitions.json", @@ -145,6 +151,13 @@ func protoGenerate() error { return err } } + if s, err := goOutput("run", "./scripts/merge_swagger/merge_swagger.go", "schedulerobjects/api.swagger.json"); err != nil { + return err + } else { + if err := os.WriteFile("pkg/api/schedulerobjects/api.swagger.json", []byte(s), 0o755); err != nil { + return err + } + } if err := os.Remove("pkg/api/api.swagger.definitions.json"); err != nil { return err } @@ -157,8 +170,12 @@ func protoGenerate() error { if err != nil { return err } + err = sh.Run("templify", "-e", "-p=schedulerobjects", "-f=SwaggerJson", "pkg/api/schedulerobjects/api.swagger.json") + if err != nil { + return err + } - err = sh.Run("goimports", "-w", "-local", "github.com/armadaproject/armada", "./pkg/api/", "./pkg/armadaevents/", "./pkg/controlplaneevents/", "./internal/scheduler/schedulerobjects/", "./pkg/executorapi/") + err = sh.Run("goimports", "-w", "-local", "github.com/armadaproject/armada", "./pkg/api/", "./pkg/armadaevents/", "./pkg/controlplaneevents/", "./internal/scheduler/schedulerobjects/", "./pkg/executorapi/", "./pkg/api/schedulerobjects/") if err != nil { return err } diff --git a/pkg/api/schedulerobjects/api.swagger.go b/pkg/api/schedulerobjects/api.swagger.go new file mode 100644 index 00000000000..9f9dc8f7cfc --- /dev/null +++ b/pkg/api/schedulerobjects/api.swagger.go @@ -0,0 +1,196 @@ +/* + * CODE GENERATED AUTOMATICALLY WITH + * github.com/wlbr/templify + * THIS FILE SHOULD NOT BE EDITED BY HAND + */ + +package schedulerobjects + +// SwaggerJsonTemplate is a generated function returning the template as a string. +// That string should be parsed by the functions of the golang's template package. +func SwaggerJsonTemplate() string { + var tmpl = "{\n" + + " \"consumes\": [\n" + + " \"application/json\"\n" + + " ],\n" + + " \"produces\": [\n" + + " \"application/json\"\n" + + " ],\n" + + " \"swagger\": \"2.0\",\n" + + " \"info\": {\n" + + " \"title\": \"pkg/api/schedulerobjects/scheduler_reporting.proto\",\n" + + " \"version\": \"version not set\"\n" + + " },\n" + + " \"paths\": {\n" + + " \"/v1/job/{jobId}/scheduler-report\": {\n" + + " \"get\": {\n" + + " \"tags\": [\n" + + " \"SchedulerReporting\"\n" + + " ],\n" + + " \"summary\": \"Return the most recent scheduling report for each executor for the given job.\",\n" + + " \"operationId\": \"GetJobReport\",\n" + + " \"parameters\": [\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"name\": \"jobId\",\n" + + " \"in\": \"path\",\n" + + " \"required\": true\n" + + " }\n" + + " ],\n" + + " \"responses\": {\n" + + " \"200\": {\n" + + " \"description\": \"A successful response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/schedulerobjectsJobReport\"\n" + + " }\n" + + " },\n" + + " \"default\": {\n" + + " \"description\": \"An unexpected error response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/runtimeError\"\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " },\n" + + " \"/v1/queue/{queueName}/scheduler-report\": {\n" + + " \"get\": {\n" + + " \"tags\": [\n" + + " \"SchedulerReporting\"\n" + + " ],\n" + + " \"summary\": \"Return the most recent report scheduling for each executor for the given queue.\",\n" + + " \"operationId\": \"GetQueueReport\",\n" + + " \"parameters\": [\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"name\": \"queueName\",\n" + + " \"in\": \"path\",\n" + + " \"required\": true\n" + + " },\n" + + " {\n" + + " \"type\": \"integer\",\n" + + " \"format\": \"int32\",\n" + + " \"name\": \"verbosity\",\n" + + " \"in\": \"query\"\n" + + " }\n" + + " ],\n" + + " \"responses\": {\n" + + " \"200\": {\n" + + " \"description\": \"A successful response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/schedulerobjectsQueueReport\"\n" + + " }\n" + + " },\n" + + " \"default\": {\n" + + " \"description\": \"An unexpected error response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/runtimeError\"\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " },\n" + + " \"/v1/scheduling-report\": {\n" + + " \"get\": {\n" + + " \"tags\": [\n" + + " \"SchedulerReporting\"\n" + + " ],\n" + + " \"summary\": \"Return the most recent scheduling report for each executor.\",\n" + + " \"operationId\": \"GetSchedulingReport\",\n" + + " \"parameters\": [\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"name\": \"mostRecentForQueue.queueName\",\n" + + " \"in\": \"query\"\n" + + " },\n" + + " {\n" + + " \"type\": \"string\",\n" + + " \"name\": \"mostRecentForJob.jobId\",\n" + + " \"in\": \"query\"\n" + + " },\n" + + " {\n" + + " \"type\": \"integer\",\n" + + " \"format\": \"int32\",\n" + + " \"name\": \"verbosity\",\n" + + " \"in\": \"query\"\n" + + " }\n" + + " ],\n" + + " \"responses\": {\n" + + " \"200\": {\n" + + " \"description\": \"A successful response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/schedulerobjectsSchedulingReport\"\n" + + " }\n" + + " },\n" + + " \"default\": {\n" + + " \"description\": \"An unexpected error response.\",\n" + + " \"schema\": {\n" + + " \"$ref\": \"#/definitions/runtimeError\"\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " },\n" + + " \"definitions\": {\n" + + " \"protobufAny\": {\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"typeUrl\": {\n" + + " \"type\": \"string\"\n" + + " },\n" + + " \"value\": {\n" + + " \"type\": \"string\",\n" + + " \"format\": \"byte\"\n" + + " }\n" + + " }\n" + + " },\n" + + " \"runtimeError\": {\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"code\": {\n" + + " \"type\": \"integer\",\n" + + " \"format\": \"int32\"\n" + + " },\n" + + " \"details\": {\n" + + " \"type\": \"array\",\n" + + " \"items\": {\n" + + " \"$ref\": \"#/definitions/protobufAny\"\n" + + " }\n" + + " },\n" + + " \"error\": {\n" + + " \"type\": \"string\"\n" + + " },\n" + + " \"message\": {\n" + + " \"type\": \"string\"\n" + + " }\n" + + " }\n" + + " },\n" + + " \"schedulerobjectsJobReport\": {\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"report\": {\n" + + " \"type\": \"string\"\n" + + " }\n" + + " }\n" + + " },\n" + + " \"schedulerobjectsQueueReport\": {\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"report\": {\n" + + " \"type\": \"string\"\n" + + " }\n" + + " }\n" + + " },\n" + + " \"schedulerobjectsSchedulingReport\": {\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"report\": {\n" + + " \"type\": \"string\"\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + "}" + return tmpl +} diff --git a/pkg/api/schedulerobjects/api.swagger.json b/pkg/api/schedulerobjects/api.swagger.json new file mode 100644 index 00000000000..b305900d220 --- /dev/null +++ b/pkg/api/schedulerobjects/api.swagger.json @@ -0,0 +1,183 @@ +{ + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "swagger": "2.0", + "info": { + "title": "pkg/api/schedulerobjects/scheduler_reporting.proto", + "version": "version not set" + }, + "paths": { + "/v1/job/{jobId}/scheduler-report": { + "get": { + "tags": [ + "SchedulerReporting" + ], + "summary": "Return the most recent scheduling report for each executor for the given job.", + "operationId": "GetJobReport", + "parameters": [ + { + "type": "string", + "name": "jobId", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/schedulerobjectsJobReport" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + } + } + }, + "/v1/queue/{queueName}/scheduler-report": { + "get": { + "tags": [ + "SchedulerReporting" + ], + "summary": "Return the most recent report scheduling for each executor for the given queue.", + "operationId": "GetQueueReport", + "parameters": [ + { + "type": "string", + "name": "queueName", + "in": "path", + "required": true + }, + { + "type": "integer", + "format": "int32", + "name": "verbosity", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/schedulerobjectsQueueReport" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + } + } + }, + "/v1/scheduling-report": { + "get": { + "tags": [ + "SchedulerReporting" + ], + "summary": "Return the most recent scheduling report for each executor.", + "operationId": "GetSchedulingReport", + "parameters": [ + { + "type": "string", + "name": "mostRecentForQueue.queueName", + "in": "query" + }, + { + "type": "string", + "name": "mostRecentForJob.jobId", + "in": "query" + }, + { + "type": "integer", + "format": "int32", + "name": "verbosity", + "in": "query" + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/schedulerobjectsSchedulingReport" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + } + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "typeUrl": { + "type": "string" + }, + "value": { + "type": "string", + "format": "byte" + } + } + }, + "runtimeError": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "schedulerobjectsJobReport": { + "type": "object", + "properties": { + "report": { + "type": "string" + } + } + }, + "schedulerobjectsQueueReport": { + "type": "object", + "properties": { + "report": { + "type": "string" + } + } + }, + "schedulerobjectsSchedulingReport": { + "type": "object", + "properties": { + "report": { + "type": "string" + } + } + } + } +} \ No newline at end of file diff --git a/internal/scheduler/schedulerobjects/reporting.pb.go b/pkg/api/schedulerobjects/scheduler_reporting.pb.go similarity index 82% rename from internal/scheduler/schedulerobjects/reporting.pb.go rename to pkg/api/schedulerobjects/scheduler_reporting.pb.go index 18239dcae8c..7b4c11a6bb1 100644 --- a/internal/scheduler/schedulerobjects/reporting.pb.go +++ b/pkg/api/schedulerobjects/scheduler_reporting.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: internal/scheduler/schedulerobjects/reporting.proto +// source: pkg/api/schedulerobjects/scheduler_reporting.proto package schedulerobjects @@ -11,6 +11,7 @@ import ( math_bits "math/bits" proto "github.com/gogo/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -27,6 +28,7 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +// Deprecated. This will be removed in a future release. Please use GetQueueReport instead. type MostRecentForQueue struct { QueueName string `protobuf:"bytes,1,opt,name=queue_name,json=queueName,proto3" json:"queueName,omitempty"` } @@ -35,7 +37,7 @@ func (m *MostRecentForQueue) Reset() { *m = MostRecentForQueue{} } func (m *MostRecentForQueue) String() string { return proto.CompactTextString(m) } func (*MostRecentForQueue) ProtoMessage() {} func (*MostRecentForQueue) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{0} + return fileDescriptor_c6edb75717835892, []int{0} } func (m *MostRecentForQueue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -71,6 +73,7 @@ func (m *MostRecentForQueue) GetQueueName() string { return "" } +// Deprecated. This will be removed in a future release. Please use GetJobReport instead. type MostRecentForJob struct { JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` } @@ -79,7 +82,7 @@ func (m *MostRecentForJob) Reset() { *m = MostRecentForJob{} } func (m *MostRecentForJob) String() string { return proto.CompactTextString(m) } func (*MostRecentForJob) ProtoMessage() {} func (*MostRecentForJob) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{1} + return fileDescriptor_c6edb75717835892, []int{1} } func (m *MostRecentForJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -128,7 +131,7 @@ func (m *SchedulingReportRequest) Reset() { *m = SchedulingReportRequest func (m *SchedulingReportRequest) String() string { return proto.CompactTextString(m) } func (*SchedulingReportRequest) ProtoMessage() {} func (*SchedulingReportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{2} + return fileDescriptor_c6edb75717835892, []int{2} } func (m *SchedulingReportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -217,7 +220,7 @@ func (m *SchedulingReport) Reset() { *m = SchedulingReport{} } func (m *SchedulingReport) String() string { return proto.CompactTextString(m) } func (*SchedulingReport) ProtoMessage() {} func (*SchedulingReport) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{3} + return fileDescriptor_c6edb75717835892, []int{3} } func (m *SchedulingReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -262,7 +265,7 @@ func (m *QueueReportRequest) Reset() { *m = QueueReportRequest{} } func (m *QueueReportRequest) String() string { return proto.CompactTextString(m) } func (*QueueReportRequest) ProtoMessage() {} func (*QueueReportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{4} + return fileDescriptor_c6edb75717835892, []int{4} } func (m *QueueReportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -313,7 +316,7 @@ func (m *QueueReport) Reset() { *m = QueueReport{} } func (m *QueueReport) String() string { return proto.CompactTextString(m) } func (*QueueReport) ProtoMessage() {} func (*QueueReport) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{5} + return fileDescriptor_c6edb75717835892, []int{5} } func (m *QueueReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -357,7 +360,7 @@ func (m *JobReportRequest) Reset() { *m = JobReportRequest{} } func (m *JobReportRequest) String() string { return proto.CompactTextString(m) } func (*JobReportRequest) ProtoMessage() {} func (*JobReportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{6} + return fileDescriptor_c6edb75717835892, []int{6} } func (m *JobReportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -401,7 +404,7 @@ func (m *JobReport) Reset() { *m = JobReport{} } func (m *JobReport) String() string { return proto.CompactTextString(m) } func (*JobReport) ProtoMessage() {} func (*JobReport) Descriptor() ([]byte, []int) { - return fileDescriptor_131a439a3ff6540b, []int{7} + return fileDescriptor_c6edb75717835892, []int{7} } func (m *JobReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -449,43 +452,48 @@ func init() { } func init() { - proto.RegisterFile("internal/scheduler/schedulerobjects/reporting.proto", fileDescriptor_131a439a3ff6540b) -} - -var fileDescriptor_131a439a3ff6540b = []byte{ - // 512 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x5f, 0x6b, 0xd3, 0x50, - 0x14, 0x6f, 0x2a, 0x2b, 0xf6, 0x4c, 0x34, 0xdc, 0x2a, 0x1b, 0x55, 0x93, 0x12, 0x7c, 0x98, 0x32, - 0x5a, 0xd8, 0x50, 0x10, 0x61, 0x48, 0x04, 0xab, 0xc5, 0x3f, 0x98, 0xe1, 0x8b, 0x20, 0x21, 0xb7, - 0x39, 0xeb, 0x52, 0x9a, 0x9c, 0xee, 0xe6, 0x46, 0x18, 0x3e, 0xfa, 0x05, 0xfc, 0x0c, 0x7e, 0x1a, - 0x1f, 0x7c, 0xd8, 0xa3, 0x4f, 0x41, 0xda, 0xb7, 0x7c, 0x0a, 0x59, 0xda, 0xb5, 0xf9, 0x33, 0xb7, - 0xd5, 0xb7, 0xe4, 0x77, 0xcf, 0x3d, 0xbf, 0xdf, 0x39, 0xbf, 0x73, 0x2e, 0xec, 0x7a, 0x81, 0x44, - 0x11, 0x38, 0xa3, 0x4e, 0xd8, 0x3f, 0x44, 0x37, 0x1a, 0xa1, 0x58, 0x7e, 0x11, 0x1f, 0x62, 0x5f, - 0x86, 0x1d, 0x81, 0x63, 0x12, 0xd2, 0x0b, 0x06, 0xed, 0xb1, 0x20, 0x49, 0x4c, 0x2d, 0x46, 0x18, - 0x6f, 0x80, 0xbd, 0xa5, 0x50, 0x5a, 0xd8, 0xc7, 0x40, 0xbe, 0x24, 0xf1, 0x21, 0xc2, 0x08, 0xd9, - 0x13, 0x80, 0xa3, 0xd3, 0x0f, 0x3b, 0x70, 0x7c, 0xdc, 0x54, 0x5a, 0xca, 0x56, 0xdd, 0xdc, 0x48, - 0x62, 0xbd, 0x91, 0xa2, 0xef, 0x1c, 0x1f, 0xb7, 0xc9, 0xf7, 0x24, 0xfa, 0x63, 0x79, 0x6c, 0xd5, - 0x17, 0xa0, 0xb1, 0x07, 0x6a, 0x2e, 0x5b, 0x8f, 0x38, 0x7b, 0x04, 0xb5, 0x21, 0x71, 0xdb, 0x73, - 0xe7, 0x79, 0x1a, 0x49, 0xac, 0xdf, 0x1a, 0x12, 0x7f, 0xed, 0x66, 0x72, 0xac, 0xa5, 0x80, 0xf1, - 0xab, 0x0a, 0x1b, 0xfb, 0x33, 0x89, 0x5e, 0x30, 0xb0, 0x52, 0xf5, 0x16, 0x1e, 0x45, 0x18, 0x4a, - 0xf6, 0x15, 0xee, 0xf8, 0x14, 0x4a, 0x5b, 0xa4, 0xc9, 0xed, 0x03, 0x12, 0x76, 0x4a, 0x9c, 0xa6, - 0x5d, 0xdf, 0x79, 0xd0, 0x2e, 0xd6, 0xd6, 0x2e, 0x17, 0x66, 0xb6, 0x92, 0x58, 0xbf, 0xe7, 0x97, - 0xf0, 0xa5, 0x92, 0x57, 0x15, 0x8b, 0x95, 0xcf, 0x59, 0x08, 0x8d, 0x22, 0xf9, 0x90, 0xf8, 0x66, - 0x35, 0xa5, 0x36, 0x2e, 0xa1, 0xee, 0x11, 0x37, 0xb5, 0x24, 0xd6, 0x9b, 0x7e, 0x01, 0xcd, 0xd1, - 0xaa, 0xc5, 0x53, 0xf6, 0x18, 0xea, 0x5f, 0x50, 0x70, 0x0a, 0x3d, 0x79, 0xbc, 0x79, 0xad, 0xa5, - 0x6c, 0xad, 0xcd, 0x4c, 0x58, 0x80, 0x59, 0x13, 0x16, 0xa0, 0x79, 0x1d, 0x6a, 0x07, 0xde, 0x48, - 0xa2, 0x30, 0x9e, 0x83, 0x5a, 0xec, 0x26, 0xdb, 0x86, 0xda, 0x6c, 0x2a, 0xe6, 0x76, 0xdc, 0x4e, - 0x62, 0x5d, 0x9d, 0x21, 0x99, 0x74, 0xf3, 0x18, 0xe3, 0x9b, 0x02, 0x2c, 0xed, 0x40, 0xde, 0x8b, - 0xff, 0x9c, 0x8f, 0x7c, 0x45, 0xd5, 0xab, 0x56, 0x64, 0x3c, 0x83, 0xf5, 0x8c, 0x88, 0x15, 0x4b, - 0xd8, 0x03, 0xb5, 0x47, 0x3c, 0xaf, 0x7f, 0x95, 0x99, 0x7c, 0x0a, 0xf5, 0xc5, 0xfd, 0xd5, 0xa8, - 0x77, 0x7e, 0x54, 0x81, 0xed, 0x9f, 0x8d, 0x86, 0x75, 0xb6, 0x8b, 0xcc, 0x85, 0x46, 0x17, 0x65, - 0xc9, 0x99, 0x87, 0xe5, 0x31, 0xfa, 0xc7, 0x2e, 0x34, 0x8d, 0xcb, 0x43, 0xd9, 0x47, 0xb8, 0xd9, - 0x45, 0x99, 0xed, 0xdb, 0x39, 0x2b, 0x52, 0xf6, 0xb6, 0x79, 0xff, 0xc2, 0x28, 0xf6, 0x1e, 0x6e, - 0x74, 0x51, 0x2e, 0x3b, 0x72, 0x8e, 0x94, 0x62, 0xbb, 0x9b, 0x77, 0x2f, 0x88, 0x31, 0x3f, 0xff, - 0x9c, 0x68, 0xca, 0xc9, 0x44, 0x53, 0xfe, 0x4c, 0x34, 0xe5, 0xfb, 0x54, 0xab, 0x9c, 0x4c, 0xb5, - 0xca, 0xef, 0xa9, 0x56, 0xf9, 0xf4, 0x62, 0xe0, 0xc9, 0xc3, 0x88, 0xb7, 0xfb, 0xe4, 0x77, 0x1c, - 0xe1, 0x3b, 0xae, 0x33, 0x16, 0x74, 0x7a, 0x7d, 0xfe, 0xd7, 0xb9, 0xc2, 0x13, 0xc8, 0x6b, 0xe9, - 0xcb, 0xb7, 0xfb, 0x37, 0x00, 0x00, 0xff, 0xff, 0x09, 0x81, 0x96, 0x21, 0x30, 0x05, 0x00, 0x00, + proto.RegisterFile("pkg/api/schedulerobjects/scheduler_reporting.proto", fileDescriptor_c6edb75717835892) +} + +var fileDescriptor_c6edb75717835892 = []byte{ + // 589 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcf, 0x6b, 0x13, 0x41, + 0x14, 0xce, 0xa6, 0x34, 0x98, 0xa9, 0xe8, 0x32, 0xb1, 0x24, 0xc4, 0x76, 0x13, 0x47, 0xc1, 0x46, + 0x6a, 0x16, 0x23, 0x8a, 0x22, 0x14, 0xc9, 0xc1, 0x68, 0x50, 0xc1, 0xed, 0xcd, 0xcb, 0xb2, 0x93, + 0x4c, 0xb7, 0x1b, 0xb3, 0xfb, 0xb6, 0xb3, 0x93, 0x42, 0x0d, 0x5e, 0x2c, 0x78, 0x16, 0xfc, 0x03, + 0xfc, 0x77, 0x3c, 0x78, 0x28, 0x78, 0xf1, 0x14, 0x24, 0xf1, 0x94, 0xbf, 0x42, 0x32, 0x9b, 0x9f, + 0xbb, 0xfd, 0x61, 0x7a, 0x4b, 0xbe, 0x79, 0xfb, 0xbe, 0xef, 0x9b, 0xef, 0xcd, 0x43, 0x15, 0xff, + 0x83, 0xad, 0x5b, 0xbe, 0xa3, 0x07, 0x8d, 0x7d, 0xd6, 0xec, 0xb4, 0x19, 0x07, 0xda, 0x62, 0x0d, + 0x11, 0xcc, 0x00, 0x93, 0x33, 0x1f, 0xb8, 0x70, 0x3c, 0xbb, 0xec, 0x73, 0x10, 0x80, 0xd5, 0x68, + 0x6d, 0x7e, 0xc3, 0x06, 0xb0, 0xdb, 0x4c, 0x36, 0xb2, 0x3c, 0x0f, 0x84, 0x25, 0x1c, 0xf0, 0x82, + 0xb0, 0x9e, 0xbc, 0x46, 0xf8, 0x0d, 0x04, 0xc2, 0x60, 0x0d, 0xe6, 0x89, 0x17, 0xc0, 0xdf, 0x75, + 0x58, 0x87, 0xe1, 0xc7, 0x08, 0x1d, 0x8c, 0x7e, 0x98, 0x9e, 0xe5, 0xb2, 0x9c, 0x52, 0x54, 0xb6, + 0xd2, 0xd5, 0xec, 0xb0, 0x57, 0xc8, 0x48, 0xf4, 0xad, 0xe5, 0xb2, 0x6d, 0x70, 0x1d, 0xc1, 0x5c, + 0x5f, 0x1c, 0x19, 0xe9, 0x29, 0x48, 0x76, 0x90, 0xba, 0xd0, 0xad, 0x0e, 0x14, 0xdf, 0x43, 0xa9, + 0x16, 0x50, 0xd3, 0x69, 0x8e, 0xfb, 0x64, 0x86, 0xbd, 0xc2, 0xf5, 0x16, 0xd0, 0x57, 0xcd, 0xb9, + 0x1e, 0xab, 0x12, 0x20, 0x3f, 0x93, 0x28, 0xbb, 0x1b, 0x1a, 0x70, 0x3c, 0xdb, 0x90, 0xde, 0x0c, + 0x76, 0xd0, 0x61, 0x81, 0xc0, 0x5d, 0xb4, 0xee, 0x42, 0x20, 0x4c, 0x2e, 0x9b, 0x9b, 0x7b, 0xc0, + 0x4d, 0x49, 0x2c, 0xdb, 0xae, 0x55, 0xee, 0x94, 0xa3, 0xce, 0xcb, 0x71, 0x63, 0xd5, 0xe2, 0xb0, + 0x57, 0xd8, 0x70, 0x63, 0xf8, 0x4c, 0xc9, 0xcb, 0x84, 0x81, 0xe3, 0xe7, 0x38, 0x40, 0x99, 0x28, + 0x79, 0x0b, 0x68, 0x2e, 0x29, 0xa9, 0xc9, 0x05, 0xd4, 0x75, 0xa0, 0x55, 0x6d, 0xd8, 0x2b, 0xe4, + 0xdd, 0x08, 0xba, 0x40, 0xab, 0x46, 0x4f, 0xf1, 0x23, 0x94, 0x3e, 0x64, 0x9c, 0x42, 0xe0, 0x88, + 0xa3, 0xdc, 0x4a, 0x51, 0xd9, 0x5a, 0x0d, 0x43, 0x98, 0x82, 0xf3, 0x21, 0x4c, 0xc1, 0xea, 0x15, + 0x94, 0xda, 0x73, 0xda, 0x82, 0x71, 0xf2, 0x1c, 0xa9, 0xd1, 0xdb, 0xc4, 0xdb, 0x28, 0x15, 0xce, + 0xcc, 0x38, 0x8e, 0x1b, 0xc3, 0x5e, 0x41, 0x0d, 0x91, 0xb9, 0x76, 0xe3, 0x1a, 0x72, 0xac, 0x20, + 0x2c, 0x6f, 0x60, 0x31, 0x8b, 0x4b, 0xce, 0xc7, 0xa2, 0xa3, 0xe4, 0xff, 0x3a, 0x22, 0xcf, 0xd0, + 0xda, 0x9c, 0x88, 0x25, 0x2d, 0xec, 0x20, 0xb5, 0x0e, 0x74, 0x51, 0xff, 0x32, 0x33, 0xf9, 0x14, + 0xa5, 0xa7, 0xdf, 0x2f, 0x47, 0x5d, 0xf9, 0xbe, 0x82, 0xf0, 0xee, 0x64, 0x34, 0x8c, 0xc9, 0x4b, + 0xc5, 0xc7, 0x0a, 0xca, 0xd4, 0x98, 0x88, 0x45, 0x53, 0x8a, 0xcf, 0xd1, 0x19, 0x8f, 0x21, 0x4f, + 0x2e, 0x2e, 0x25, 0x9b, 0x9f, 0x7f, 0xfd, 0xfd, 0x96, 0xcc, 0xe2, 0x75, 0xfd, 0xf0, 0xc1, 0x64, + 0x63, 0x38, 0x9e, 0x7d, 0x3f, 0x14, 0x87, 0xbf, 0x28, 0xe8, 0x5a, 0x8d, 0x89, 0xf9, 0x8b, 0x3d, + 0xe5, 0x0d, 0xc5, 0xc3, 0xcf, 0x6f, 0x9e, 0x5b, 0x45, 0x74, 0x49, 0x5b, 0xc2, 0x77, 0x47, 0xb4, + 0x32, 0x7a, 0xbd, 0x3b, 0x1b, 0x96, 0x4f, 0xb3, 0xdd, 0x35, 0x11, 0xf2, 0x11, 0x5d, 0xad, 0x31, + 0x31, 0xbb, 0xe3, 0x53, 0xbc, 0x45, 0x03, 0xcc, 0xdf, 0x3c, 0xa7, 0x86, 0x94, 0xa4, 0x82, 0xdb, + 0xf8, 0xd6, 0x48, 0x41, 0x0b, 0xa8, 0xde, 0x0d, 0xc3, 0x8e, 0x73, 0x57, 0x8d, 0x1f, 0x7d, 0x4d, + 0x39, 0xe9, 0x6b, 0xca, 0x9f, 0xbe, 0xa6, 0x7c, 0x1d, 0x68, 0x89, 0x93, 0x81, 0x96, 0xf8, 0x3d, + 0xd0, 0x12, 0xef, 0x9f, 0xd8, 0x8e, 0xd8, 0xef, 0xd0, 0x72, 0x03, 0x5c, 0xdd, 0xe2, 0xae, 0xd5, + 0xb4, 0x7c, 0x0e, 0x23, 0xa6, 0xf1, 0x3f, 0xfd, 0xac, 0xe5, 0x4c, 0x53, 0x72, 0xb3, 0x3e, 0xfc, + 0x17, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xcc, 0xde, 0x68, 0xbf, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -643,7 +651,7 @@ var _SchedulerReporting_serviceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "internal/scheduler/schedulerobjects/reporting.proto", + Metadata: "pkg/api/schedulerobjects/scheduler_reporting.proto", } func (m *MostRecentForQueue) Marshal() (dAtA []byte, err error) { @@ -669,7 +677,7 @@ func (m *MostRecentForQueue) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.QueueName) > 0 { i -= len(m.QueueName) copy(dAtA[i:], m.QueueName) - i = encodeVarintReporting(dAtA, i, uint64(len(m.QueueName))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.QueueName))) i-- dAtA[i] = 0xa } @@ -699,7 +707,7 @@ func (m *MostRecentForJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.JobId) > 0 { i -= len(m.JobId) copy(dAtA[i:], m.JobId) - i = encodeVarintReporting(dAtA, i, uint64(len(m.JobId))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.JobId))) i-- dAtA[i] = 0xa } @@ -727,7 +735,7 @@ func (m *SchedulingReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) var l int _ = l if m.Verbosity != 0 { - i = encodeVarintReporting(dAtA, i, uint64(m.Verbosity)) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(m.Verbosity)) i-- dAtA[i] = 0x18 } @@ -757,7 +765,7 @@ func (m *SchedulingReportRequest_MostRecentForQueue) MarshalToSizedBuffer(dAtA [ return 0, err } i -= size - i = encodeVarintReporting(dAtA, i, uint64(size)) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(size)) } i-- dAtA[i] = 0xa @@ -778,7 +786,7 @@ func (m *SchedulingReportRequest_MostRecentForJob) MarshalToSizedBuffer(dAtA []b return 0, err } i -= size - i = encodeVarintReporting(dAtA, i, uint64(size)) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(size)) } i-- dAtA[i] = 0x12 @@ -808,7 +816,7 @@ func (m *SchedulingReport) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.Report) > 0 { i -= len(m.Report) copy(dAtA[i:], m.Report) - i = encodeVarintReporting(dAtA, i, uint64(len(m.Report))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.Report))) i-- dAtA[i] = 0xa } @@ -836,14 +844,14 @@ func (m *QueueReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if m.Verbosity != 0 { - i = encodeVarintReporting(dAtA, i, uint64(m.Verbosity)) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(m.Verbosity)) i-- dAtA[i] = 0x10 } if len(m.QueueName) > 0 { i -= len(m.QueueName) copy(dAtA[i:], m.QueueName) - i = encodeVarintReporting(dAtA, i, uint64(len(m.QueueName))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.QueueName))) i-- dAtA[i] = 0xa } @@ -873,7 +881,7 @@ func (m *QueueReport) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.Report) > 0 { i -= len(m.Report) copy(dAtA[i:], m.Report) - i = encodeVarintReporting(dAtA, i, uint64(len(m.Report))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.Report))) i-- dAtA[i] = 0xa } @@ -903,7 +911,7 @@ func (m *JobReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.JobId) > 0 { i -= len(m.JobId) copy(dAtA[i:], m.JobId) - i = encodeVarintReporting(dAtA, i, uint64(len(m.JobId))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.JobId))) i-- dAtA[i] = 0xa } @@ -933,15 +941,15 @@ func (m *JobReport) MarshalToSizedBuffer(dAtA []byte) (int, error) { if len(m.Report) > 0 { i -= len(m.Report) copy(dAtA[i:], m.Report) - i = encodeVarintReporting(dAtA, i, uint64(len(m.Report))) + i = encodeVarintSchedulerReporting(dAtA, i, uint64(len(m.Report))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func encodeVarintReporting(dAtA []byte, offset int, v uint64) int { - offset -= sovReporting(v) +func encodeVarintSchedulerReporting(dAtA []byte, offset int, v uint64) int { + offset -= sovSchedulerReporting(v) base := offset for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -959,7 +967,7 @@ func (m *MostRecentForQueue) Size() (n int) { _ = l l = len(m.QueueName) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -972,7 +980,7 @@ func (m *MostRecentForJob) Size() (n int) { _ = l l = len(m.JobId) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -987,7 +995,7 @@ func (m *SchedulingReportRequest) Size() (n int) { n += m.Filter.Size() } if m.Verbosity != 0 { - n += 1 + sovReporting(uint64(m.Verbosity)) + n += 1 + sovSchedulerReporting(uint64(m.Verbosity)) } return n } @@ -1000,7 +1008,7 @@ func (m *SchedulingReportRequest_MostRecentForQueue) Size() (n int) { _ = l if m.MostRecentForQueue != nil { l = m.MostRecentForQueue.Size() - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -1012,7 +1020,7 @@ func (m *SchedulingReportRequest_MostRecentForJob) Size() (n int) { _ = l if m.MostRecentForJob != nil { l = m.MostRecentForJob.Size() - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -1024,7 +1032,7 @@ func (m *SchedulingReport) Size() (n int) { _ = l l = len(m.Report) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -1037,10 +1045,10 @@ func (m *QueueReportRequest) Size() (n int) { _ = l l = len(m.QueueName) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } if m.Verbosity != 0 { - n += 1 + sovReporting(uint64(m.Verbosity)) + n += 1 + sovSchedulerReporting(uint64(m.Verbosity)) } return n } @@ -1053,7 +1061,7 @@ func (m *QueueReport) Size() (n int) { _ = l l = len(m.Report) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -1066,7 +1074,7 @@ func (m *JobReportRequest) Size() (n int) { _ = l l = len(m.JobId) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } @@ -1079,16 +1087,16 @@ func (m *JobReport) Size() (n int) { _ = l l = len(m.Report) if l > 0 { - n += 1 + l + sovReporting(uint64(l)) + n += 1 + l + sovSchedulerReporting(uint64(l)) } return n } -func sovReporting(x uint64) (n int) { +func sovSchedulerReporting(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } -func sozReporting(x uint64) (n int) { - return sovReporting(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +func sozSchedulerReporting(x uint64) (n int) { + return sovSchedulerReporting(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -1098,7 +1106,7 @@ func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1126,7 +1134,7 @@ func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1140,11 +1148,11 @@ func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1153,12 +1161,12 @@ func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1180,7 +1188,7 @@ func (m *MostRecentForJob) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1208,7 +1216,7 @@ func (m *MostRecentForJob) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1222,11 +1230,11 @@ func (m *MostRecentForJob) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1235,12 +1243,12 @@ func (m *MostRecentForJob) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1262,7 +1270,7 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1290,7 +1298,7 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1303,11 +1311,11 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + msglen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1325,7 +1333,7 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1338,11 +1346,11 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + msglen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1360,7 +1368,7 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { m.Verbosity = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1374,12 +1382,12 @@ func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error { } default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1401,7 +1409,7 @@ func (m *SchedulingReport) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1429,7 +1437,7 @@ func (m *SchedulingReport) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1443,11 +1451,11 @@ func (m *SchedulingReport) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1456,12 +1464,12 @@ func (m *SchedulingReport) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1483,7 +1491,7 @@ func (m *QueueReportRequest) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1511,7 +1519,7 @@ func (m *QueueReportRequest) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1525,11 +1533,11 @@ func (m *QueueReportRequest) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1543,7 +1551,7 @@ func (m *QueueReportRequest) Unmarshal(dAtA []byte) error { m.Verbosity = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1557,12 +1565,12 @@ func (m *QueueReportRequest) Unmarshal(dAtA []byte) error { } default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1584,7 +1592,7 @@ func (m *QueueReport) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1612,7 +1620,7 @@ func (m *QueueReport) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1626,11 +1634,11 @@ func (m *QueueReport) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1639,12 +1647,12 @@ func (m *QueueReport) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1666,7 +1674,7 @@ func (m *JobReportRequest) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1694,7 +1702,7 @@ func (m *JobReportRequest) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1708,11 +1716,11 @@ func (m *JobReportRequest) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1721,12 +1729,12 @@ func (m *JobReportRequest) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1748,7 +1756,7 @@ func (m *JobReport) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1776,7 +1784,7 @@ func (m *JobReport) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowReporting + return ErrIntOverflowSchedulerReporting } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1790,11 +1798,11 @@ func (m *JobReport) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if postIndex > l { return io.ErrUnexpectedEOF @@ -1803,12 +1811,12 @@ func (m *JobReport) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipReporting(dAtA[iNdEx:]) + skippy, err := skipSchedulerReporting(dAtA[iNdEx:]) if err != nil { return err } if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthReporting + return ErrInvalidLengthSchedulerReporting } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1822,7 +1830,7 @@ func (m *JobReport) Unmarshal(dAtA []byte) error { } return nil } -func skipReporting(dAtA []byte) (n int, err error) { +func skipSchedulerReporting(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 depth := 0 @@ -1830,7 +1838,7 @@ func skipReporting(dAtA []byte) (n int, err error) { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowReporting + return 0, ErrIntOverflowSchedulerReporting } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -1847,7 +1855,7 @@ func skipReporting(dAtA []byte) (n int, err error) { case 0: for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowReporting + return 0, ErrIntOverflowSchedulerReporting } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -1863,7 +1871,7 @@ func skipReporting(dAtA []byte) (n int, err error) { var length int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowReporting + return 0, ErrIntOverflowSchedulerReporting } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -1876,14 +1884,14 @@ func skipReporting(dAtA []byte) (n int, err error) { } } if length < 0 { - return 0, ErrInvalidLengthReporting + return 0, ErrInvalidLengthSchedulerReporting } iNdEx += length case 3: depth++ case 4: if depth == 0 { - return 0, ErrUnexpectedEndOfGroupReporting + return 0, ErrUnexpectedEndOfGroupSchedulerReporting } depth-- case 5: @@ -1892,7 +1900,7 @@ func skipReporting(dAtA []byte) (n int, err error) { return 0, fmt.Errorf("proto: illegal wireType %d", wireType) } if iNdEx < 0 { - return 0, ErrInvalidLengthReporting + return 0, ErrInvalidLengthSchedulerReporting } if depth == 0 { return iNdEx, nil @@ -1902,7 +1910,7 @@ func skipReporting(dAtA []byte) (n int, err error) { } var ( - ErrInvalidLengthReporting = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowReporting = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupReporting = fmt.Errorf("proto: unexpected end of group") + ErrInvalidLengthSchedulerReporting = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSchedulerReporting = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupSchedulerReporting = fmt.Errorf("proto: unexpected end of group") ) diff --git a/pkg/api/schedulerobjects/scheduler_reporting.pb.gw.go b/pkg/api/schedulerobjects/scheduler_reporting.pb.gw.go new file mode 100644 index 00000000000..724a16eadf6 --- /dev/null +++ b/pkg/api/schedulerobjects/scheduler_reporting.pb.gw.go @@ -0,0 +1,391 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: pkg/api/schedulerobjects/scheduler_reporting.proto + +/* +Package schedulerobjects is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package schedulerobjects + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +var ( + filter_SchedulerReporting_GetSchedulingReport_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_SchedulerReporting_GetSchedulingReport_0(ctx context.Context, marshaler runtime.Marshaler, client SchedulerReportingClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SchedulingReportRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SchedulerReporting_GetSchedulingReport_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetSchedulingReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_SchedulerReporting_GetSchedulingReport_0(ctx context.Context, marshaler runtime.Marshaler, server SchedulerReportingServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SchedulingReportRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SchedulerReporting_GetSchedulingReport_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetSchedulingReport(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_SchedulerReporting_GetQueueReport_0 = &utilities.DoubleArray{Encoding: map[string]int{"queue_name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_SchedulerReporting_GetQueueReport_0(ctx context.Context, marshaler runtime.Marshaler, client SchedulerReportingClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueueReportRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["queue_name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "queue_name") + } + + protoReq.QueueName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "queue_name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SchedulerReporting_GetQueueReport_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetQueueReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_SchedulerReporting_GetQueueReport_0(ctx context.Context, marshaler runtime.Marshaler, server SchedulerReportingServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueueReportRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["queue_name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "queue_name") + } + + protoReq.QueueName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "queue_name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SchedulerReporting_GetQueueReport_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetQueueReport(ctx, &protoReq) + return msg, metadata, err + +} + +func request_SchedulerReporting_GetJobReport_0(ctx context.Context, marshaler runtime.Marshaler, client SchedulerReportingClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq JobReportRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["job_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") + } + + protoReq.JobId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) + } + + msg, err := client.GetJobReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_SchedulerReporting_GetJobReport_0(ctx context.Context, marshaler runtime.Marshaler, server SchedulerReportingServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq JobReportRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["job_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") + } + + protoReq.JobId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) + } + + msg, err := server.GetJobReport(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterSchedulerReportingHandlerServer registers the http handlers for service SchedulerReporting to "mux". +// UnaryRPC :call SchedulerReportingServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterSchedulerReportingHandlerFromEndpoint instead. +func RegisterSchedulerReportingHandlerServer(ctx context.Context, mux *runtime.ServeMux, server SchedulerReportingServer) error { + + mux.Handle("GET", pattern_SchedulerReporting_GetSchedulingReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_SchedulerReporting_GetSchedulingReport_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetSchedulingReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_SchedulerReporting_GetQueueReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_SchedulerReporting_GetQueueReport_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetQueueReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_SchedulerReporting_GetJobReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_SchedulerReporting_GetJobReport_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetJobReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterSchedulerReportingHandlerFromEndpoint is same as RegisterSchedulerReportingHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterSchedulerReportingHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterSchedulerReportingHandler(ctx, mux, conn) +} + +// RegisterSchedulerReportingHandler registers the http handlers for service SchedulerReporting to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterSchedulerReportingHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterSchedulerReportingHandlerClient(ctx, mux, NewSchedulerReportingClient(conn)) +} + +// RegisterSchedulerReportingHandlerClient registers the http handlers for service SchedulerReporting +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "SchedulerReportingClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "SchedulerReportingClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "SchedulerReportingClient" to call the correct interceptors. +func RegisterSchedulerReportingHandlerClient(ctx context.Context, mux *runtime.ServeMux, client SchedulerReportingClient) error { + + mux.Handle("GET", pattern_SchedulerReporting_GetSchedulingReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_SchedulerReporting_GetSchedulingReport_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetSchedulingReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_SchedulerReporting_GetQueueReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_SchedulerReporting_GetQueueReport_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetQueueReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_SchedulerReporting_GetJobReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_SchedulerReporting_GetJobReport_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SchedulerReporting_GetJobReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_SchedulerReporting_GetSchedulingReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "scheduling-report"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_SchedulerReporting_GetQueueReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "queue", "queue_name", "scheduler-report"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_SchedulerReporting_GetJobReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "job", "job_id", "scheduler-report"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_SchedulerReporting_GetSchedulingReport_0 = runtime.ForwardResponseMessage + + forward_SchedulerReporting_GetQueueReport_0 = runtime.ForwardResponseMessage + + forward_SchedulerReporting_GetJobReport_0 = runtime.ForwardResponseMessage +) diff --git a/internal/scheduler/schedulerobjects/reporting.proto b/pkg/api/schedulerobjects/scheduler_reporting.proto similarity index 53% rename from internal/scheduler/schedulerobjects/reporting.proto rename to pkg/api/schedulerobjects/scheduler_reporting.proto index ed61242f8f4..2d1ac28a3d6 100644 --- a/internal/scheduler/schedulerobjects/reporting.proto +++ b/pkg/api/schedulerobjects/scheduler_reporting.proto @@ -1,18 +1,26 @@ syntax = 'proto3'; + package schedulerobjects; -option go_package = "github.com/armadaproject/armada/internal/scheduler/schedulerobjects"; +option go_package = "github.com/armadaproject/armada/pkg/api/schedulerobjects"; + +import "google/api/annotations.proto"; + +// Deprecated. This will be removed in a future release. Please use GetQueueReport instead. message MostRecentForQueue { string queue_name = 1; } +// Deprecated. This will be removed in a future release. Please use GetJobReport instead. message MostRecentForJob { string job_id = 1; } message SchedulingReportRequest { oneof filter { + // Deprecated. This will be removed in a future release. Please use GetQueueReport instead. MostRecentForQueue most_recent_for_queue = 1; + // Deprecated. This will be removed in a future release. Please use GetJobReport instead. MostRecentForJob most_recent_for_job = 2; } @@ -43,9 +51,21 @@ message JobReport { service SchedulerReporting { // Return the most recent scheduling report for each executor. - rpc GetSchedulingReport (SchedulingReportRequest) returns (SchedulingReport); + rpc GetSchedulingReport (SchedulingReportRequest) returns (SchedulingReport) { + option (google.api.http) = { + get: "/v1/scheduling-report" + }; + } // Return the most recent report scheduling for each executor for the given queue. - rpc GetQueueReport (QueueReportRequest) returns (QueueReport); + rpc GetQueueReport (QueueReportRequest) returns (QueueReport) { + option (google.api.http) = { + get: "/v1/queue/{queue_name}/scheduler-report" + }; + } // Return the most recent scheduling report for each executor for the given job. - rpc GetJobReport (JobReportRequest) returns (JobReport); + rpc GetJobReport (JobReportRequest) returns (JobReport) { + option (google.api.http) = { + get: "/v1/job/{job_id}/scheduler-report" + }; + } } diff --git a/pkg/client/with_connection.go b/pkg/client/with_connection.go index 68dfa9d0b20..4271a36e93b 100644 --- a/pkg/client/with_connection.go +++ b/pkg/client/with_connection.go @@ -3,8 +3,8 @@ package client import ( "google.golang.org/grpc" - "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" "github.com/armadaproject/armada/pkg/api" + "github.com/armadaproject/armada/pkg/api/schedulerobjects" ) func WithConnection(apiConnectionDetails *ApiConnectionDetails, action func(*grpc.ClientConn) error) error { diff --git a/scripts/build-python-client.sh b/scripts/build-python-client.sh index 5fd23818146..f569b134ae7 100755 --- a/scripts/build-python-client.sh +++ b/scripts/build-python-client.sh @@ -3,7 +3,7 @@ # make the python package armada.client, not pkg.api mkdir -p proto/armada -cp pkg/api/event.proto pkg/api/submit.proto pkg/api/health.proto pkg/api/job.proto pkg/api/binoculars/binoculars.proto proto/armada +cp pkg/api/event.proto pkg/api/submit.proto pkg/api/health.proto pkg/api/job.proto pkg/api/schedulerobjects/scheduler_reporting.proto pkg/api/binoculars/binoculars.proto proto/armada sed -i 's/\([^\/]\)pkg\/api/\1armada/g' proto/armada/*.proto # generate python stubs