Hint: Komodor has the same HELM capabilities, with enterprise features
and support.{" "}
diff --git a/frontend/src/components/modal/InstallChartModal/ChartValues.tsx b/frontend/src/components/modal/InstallChartModal/ChartValues.tsx
index 9ab2c56..ccb1f95 100644
--- a/frontend/src/components/modal/InstallChartModal/ChartValues.tsx
+++ b/frontend/src/components/modal/InstallChartModal/ChartValues.tsx
@@ -17,7 +17,7 @@ export const ChartValues = ({
Chart Value Reference:
diff --git a/frontend/src/components/modal/InstallChartModal/InstallReleaseChartModal.tsx b/frontend/src/components/modal/InstallChartModal/InstallReleaseChartModal.tsx
index cec73ed..991a7c5 100644
--- a/frontend/src/components/modal/InstallChartModal/InstallReleaseChartModal.tsx
+++ b/frontend/src/components/modal/InstallChartModal/InstallReleaseChartModal.tsx
@@ -1,10 +1,11 @@
-import { useParams } from "react-router-dom";
-import { useMemo, useState } from "react";
+import { useParams } from "react-router";
+import { useEffect, useEffectEvent, useMemo, useState } from "react";
import {
useChartReleaseValues,
useGetReleaseManifest,
useGetVersions,
useVersionData,
+ VersionData,
} from "../../../API/releases";
import Modal, { ModalButtonStyle } from "../Modal";
import { GeneralDetails } from "./GeneralDetails";
@@ -12,7 +13,7 @@ import { ManifestDiff } from "./ManifestDiff";
import { useMutation } from "@tanstack/react-query";
import useNavigateWithSearchParams from "../../../hooks/useNavigateWithSearchParams";
import { VersionToInstall } from "./VersionToInstall";
-import { isNewerVersion, isNoneEmptyArray } from "../../../utils";
+import { isNoneEmptyArray } from "../../../utils";
import useCustomSearchParams from "../../../hooks/useCustomSearchParams";
import { useChartRepoValues } from "../../../API/repositories";
import { useDiffData } from "../../../API/shared";
@@ -20,18 +21,18 @@ import { InstallChartModalProps } from "../../../data/types";
import { DefinedValues } from "./DefinedValues";
import apiService from "../../../API/apiService";
import { InstallUpgradeTitle } from "./InstallUpgradeTitle";
+import { LatestChartVersion } from "../../../API/interfaces";
export const InstallReleaseChartModal = ({
isOpen,
onClose,
chartName,
currentlyInstalledChartVersion,
- latestVersion,
isUpgrade = false,
latestRevision,
}: InstallChartModalProps) => {
const navigate = useNavigateWithSearchParams();
- const [userValues, setUserValues] = useState
();
+ const [userValues, setUserValues] = useState("");
const [installError, setInstallError] = useState("");
const {
@@ -44,38 +45,37 @@ export const InstallReleaseChartModal = ({
const [namespace, setNamespace] = useState(queryNamespace || "");
const [releaseName, setReleaseName] = useState(_releaseName || "");
- const { error: versionsError, data: _versions } = useGetVersions(chartName, {
- select: (data) => {
- return data?.sort((a, b) =>
- isNewerVersion(a.version, b.version) ? 1 : -1
- );
- },
- onSuccess: (data) => {
- const empty = { version: "", repository: "", urls: [] };
- return setSelectedVersionData(data[0] ?? empty);
- },
+ const {
+ error: versionsError,
+ data: _versions = [],
+ isSuccess,
+ } = useGetVersions(chartName);
+
+ const [selectedVersionData, setSelectedVersionData] = useState();
+
+ const [versions, setVersions] = useState<
+ Array
+ >([]);
+
+ const onSuccess = useEffectEvent(() => {
+ const empty = { version: "", repository: "", urls: [] };
+ setSelectedVersionData(_versions[0] ?? empty);
+ setVersions(
+ _versions?.map((v) => ({
+ ...v,
+ isChartVersion: v.version === currentlyInstalledChartVersion,
+ }))
+ );
});
- const versions = _versions?.map((v) => ({
- ...v,
- isChartVersion: v.version === currentlyInstalledChartVersion,
- }));
+ useEffect(() => {
+ if (isSuccess && _versions.length) {
+ onSuccess();
+ }
+ }, [isSuccess, _versions]);
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- latestVersion = latestVersion ?? currentlyInstalledChartVersion; // a guard for typescript, latestVersion is always defined
- const [selectedVersionData, setSelectedVersionData] = useState<{
- version: string;
- repository?: string;
- urls: string[];
- }>();
-
- const selectedVersion = useMemo(() => {
- return selectedVersionData?.version;
- }, [selectedVersionData]);
-
- const selectedRepo = useMemo(() => {
- return selectedVersionData?.repository || "";
- }, [selectedVersionData]);
+ const selectedVersion = selectedVersionData?.version || "";
+ const selectedRepo = selectedVersionData?.repository || "";
const chartAddress = useMemo(() => {
if (!selectedVersionData || !selectedVersionData.repository) return "";
@@ -86,13 +86,13 @@ export const InstallReleaseChartModal = ({
}, [selectedVersionData, chartName]);
// the original chart values
- const { data: chartValues } = useChartRepoValues({
- version: selectedVersion || "",
+ const { data: chartValues = "" } = useChartRepoValues({
+ version: selectedVersion,
chart: chartAddress,
});
// The user defined values (if any we're set)
- const { data: releaseValues, isLoading: loadingReleaseValues } =
+ const { data: releaseValues = "", isLoading: loadingReleaseValues } =
useChartReleaseValues({
namespace,
release: String(releaseName),
@@ -100,16 +100,15 @@ export const InstallReleaseChartModal = ({
});
// This hold the selected version manifest, we use it for the diff
- const { data: selectedVerData, error: selectedVerDataError } = useVersionData(
- {
- version: selectedVersion || "",
- userValues: userValues || "",
+ const { data: selectedVerData = {}, error: selectedVerDataError } =
+ useVersionData({
+ version: selectedVersion,
+ userValues,
chartAddress,
releaseValues,
namespace,
releaseName,
- }
- );
+ });
const { data: currentVerManifest, error: currentVerManifestError } =
useGetReleaseManifest({
@@ -123,14 +122,14 @@ export const InstallReleaseChartModal = ({
error: diffError,
} = useDiffData({
selectedRepo,
- versionsError: versionsError as string,
- currentVerManifest,
+ versionsError: versionsError as unknown as string, // TODO fix it
+ currentVerManifest: currentVerManifest as unknown as string, // TODO fix it
selectedVerData,
chart: chartAddress,
});
// Confirm method (install)
- const setReleaseVersionMutation = useMutation({
+ const setReleaseVersionMutation = useMutation({
mutationKey: [
"setVersion",
namespace,
@@ -149,8 +148,7 @@ export const InstallReleaseChartModal = ({
}
formData.append("version", selectedVersion || "");
formData.append("values", userValues || releaseValues || ""); // if userValues is empty, we use the release values
-
- const data = await apiService.fetchWithDefaults(
+ return await apiService.fetchWithDefaults(
`/api/helm/releases/${
namespace ? namespace : "default"
}${`/${releaseName}`}`,
@@ -159,7 +157,6 @@ export const InstallReleaseChartModal = ({
body: formData,
}
);
- return data;
},
onSuccess: async (response) => {
onClose();
@@ -187,7 +184,7 @@ export const InstallReleaseChartModal = ({
title={
}
@@ -197,11 +194,11 @@ export const InstallReleaseChartModal = ({
id: "1",
callback: setReleaseVersionMutation.mutate,
variant: ModalButtonStyle.info,
- isLoading: setReleaseVersionMutation.isLoading,
+ isLoading: setReleaseVersionMutation.isPending,
disabled:
loadingReleaseValues ||
isLoadingDiff ||
- setReleaseVersionMutation.isLoading,
+ setReleaseVersionMutation.isPending,
},
]}
>
@@ -233,11 +230,11 @@ export const InstallReleaseChartModal = ({
diff={diffData as string}
isLoading={isLoadingDiff}
error={
- (currentVerManifestError as string) ||
- (selectedVerDataError as string) ||
- (diffError as string) ||
+ (currentVerManifestError as unknown as string) || // TODO fix it
+ (selectedVerDataError as unknown as string) ||
+ (diffError as unknown as string) ||
installError ||
- (versionsError as string)
+ (versionsError as unknown as string)
}
/>
diff --git a/frontend/src/components/modal/InstallChartModal/InstallRepoChartModal.tsx b/frontend/src/components/modal/InstallChartModal/InstallRepoChartModal.tsx
index 4f56ecf..2d20be5 100644
--- a/frontend/src/components/modal/InstallChartModal/InstallRepoChartModal.tsx
+++ b/frontend/src/components/modal/InstallChartModal/InstallRepoChartModal.tsx
@@ -1,5 +1,5 @@
-import { useParams } from "react-router-dom";
-import { useMemo, useState } from "react";
+import { useParams } from "react-router";
+import { useEffect, useEffectEvent, useMemo, useState } from "react";
import { useGetVersions, useVersionData } from "../../../API/releases";
import Modal, { ModalButtonStyle } from "../Modal";
import { GeneralDetails } from "./GeneralDetails";
@@ -8,19 +8,19 @@ import { useMutation } from "@tanstack/react-query";
import { useChartRepoValues } from "../../../API/repositories";
import useNavigateWithSearchParams from "../../../hooks/useNavigateWithSearchParams";
import { VersionToInstall } from "./VersionToInstall";
-import { isNewerVersion, isNoneEmptyArray } from "../../../utils";
+import { isNoneEmptyArray } from "../../../utils";
import { useDiffData } from "../../../API/shared";
import { InstallChartModalProps } from "../../../data/types";
import { DefinedValues } from "./DefinedValues";
import apiService from "../../../API/apiService";
import { InstallUpgradeTitle } from "./InstallUpgradeTitle";
+import { LatestChartVersion } from "../../../API/interfaces";
export const InstallRepoChartModal = ({
isOpen,
onClose,
chartName,
currentlyInstalledChartVersion,
- latestVersion,
}: InstallChartModalProps) => {
const navigate = useNavigateWithSearchParams();
const [userValues, setUserValues] = useState("");
@@ -31,42 +31,46 @@ export const InstallRepoChartModal = ({
const [namespace, setNamespace] = useState("");
const [releaseName, setReleaseName] = useState(chartName);
- const { error: versionsError, data: _versions } = useGetVersions(chartName, {
- select: (data) => {
- return data?.sort((a, b) =>
- isNewerVersion(a.version, b.version) ? 1 : -1
- );
- },
- onSuccess: (data) => {
- const empty = { version: "", repository: "", urls: [] };
- const versionsToRepo = data.filter(
- (v) => v.repository === currentRepoCtx
- );
+ const {
+ error: versionsError,
+ data: _versions = [],
+ isSuccess,
+ } = useGetVersions(chartName);
- return setSelectedVersionData(versionsToRepo[0] ?? empty);
- },
- });
+ const [versions, setVersions] = useState<
+ Array
+ >([]);
- const versions = _versions?.map((v) => ({
- ...v,
- isChartVersion: v.version === currentlyInstalledChartVersion,
- }));
-
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- latestVersion = latestVersion ?? currentlyInstalledChartVersion; // a guard for typescript, latestVersion is always defined
const [selectedVersionData, setSelectedVersionData] = useState<{
version: string;
repository?: string;
urls: string[];
}>();
- const selectedVersion = useMemo(() => {
- return selectedVersionData?.version;
- }, [selectedVersionData]);
+ const onSuccess = useEffectEvent(() => {
+ const empty = { version: "", repository: "", urls: [] };
+ const versionsToRepo = _versions.filter(
+ (v) => v.repository === currentRepoCtx
+ );
- const selectedRepo = useMemo(() => {
- return selectedVersionData?.repository;
- }, [selectedVersionData]);
+ setSelectedVersionData(versionsToRepo[0] ?? empty);
+ setVersions(
+ _versions?.map((v) => ({
+ ...v,
+ isChartVersion: v.version === currentlyInstalledChartVersion,
+ }))
+ );
+ });
+
+ useEffect(() => {
+ if (isSuccess && _versions.length) {
+ onSuccess();
+ }
+ }, [isSuccess, _versions]);
+
+ const selectedVersion = selectedVersionData?.version;
+
+ const selectedRepo = selectedVersionData?.repository;
const chartAddress = useMemo(() => {
if (!selectedVersionData || !selectedVersionData?.repository) {
@@ -77,15 +81,15 @@ export const InstallRepoChartModal = ({
: `${selectedVersionData?.repository}/${chartName}`;
}, [selectedVersionData, chartName]);
- const { data: chartValues, isLoading: loadingChartValues } =
+ const { data: chartValues = "", isLoading: loadingChartValues } =
useChartRepoValues({
version: selectedVersion || "",
chart: chartAddress,
});
// This hold the selected version manifest, we use it for the diff
- const { data: selectedVerData, error: selectedVerDataError } = useVersionData(
- {
+ const { data: selectedVerData = {}, error: selectedVerDataError } =
+ useVersionData({
version: selectedVersion || "",
userValues,
chartAddress,
@@ -93,11 +97,8 @@ export const InstallRepoChartModal = ({
namespace,
releaseName,
isInstallRepoChart: true,
- options: {
- enabled: Boolean(chartAddress),
- },
- }
- );
+ enabled: Boolean(chartAddress),
+ });
const {
data: diffData,
@@ -105,14 +106,17 @@ export const InstallRepoChartModal = ({
error: diffError,
} = useDiffData({
selectedRepo: selectedRepo || "",
- versionsError: versionsError as string,
+ versionsError: versionsError as unknown as string, // TODO fix it
currentVerManifest: "", // current version manifest should always be empty since its a fresh install
selectedVerData,
chart: chartAddress,
});
// Confirm method (install)
- const setReleaseVersionMutation = useMutation({
+ const setReleaseVersionMutation = useMutation<{
+ namespace: string;
+ name: string;
+ }>({
mutationKey: [
"setVersion",
namespace,
@@ -130,17 +134,17 @@ export const InstallRepoChartModal = ({
formData.append("version", selectedVersion || "");
formData.append("values", userValues);
formData.append("name", releaseName || "");
- const data = await apiService.fetchWithDefaults(
+
+ return await apiService.fetchWithDefaults(
`/api/helm/releases/${namespace ? namespace : "default"}`,
{
method: "post",
body: formData,
}
);
- return data;
},
- onSuccess: async (response) => {
+ onSuccess: async (response: { namespace: string; name: string }) => {
onClose();
navigate(`/${response.namespace}/${response.name}/installed/revision/1`);
},
@@ -169,11 +173,11 @@ export const InstallRepoChartModal = ({
id: "1",
callback: setReleaseVersionMutation.mutate,
variant: ModalButtonStyle.info,
- isLoading: setReleaseVersionMutation.isLoading,
+ isLoading: setReleaseVersionMutation.isPending,
disabled:
loadingChartValues ||
isLoadingDiff ||
- setReleaseVersionMutation.isLoading,
+ setReleaseVersionMutation.isPending,
},
]}
>
@@ -205,10 +209,10 @@ export const InstallRepoChartModal = ({
diff={diffData as string}
isLoading={isLoadingDiff}
error={
- (selectedVerDataError as string) ||
- (diffError as string) ||
+ (selectedVerDataError as unknown as string) || // TODO fix it
+ (diffError as unknown as string) ||
installError ||
- (versionsError as string)
+ (versionsError as unknown as string)
}
/>
diff --git a/frontend/src/components/modal/InstallChartModal/VersionToInstall.tsx b/frontend/src/components/modal/InstallChartModal/VersionToInstall.tsx
index 4da9759..78789f8 100644
--- a/frontend/src/components/modal/InstallChartModal/VersionToInstall.tsx
+++ b/frontend/src/components/modal/InstallChartModal/VersionToInstall.tsx
@@ -1,5 +1,5 @@
-import { useMemo, useState } from "react";
-import Select, { components } from "react-select";
+import { FC, useMemo, useState } from "react";
+import Select, { components, GroupBase, SingleValueProps } from "react-select";
import { BsCheck2 } from "react-icons/bs";
import { NonEmptyArray } from "../../../data/types";
@@ -10,7 +10,19 @@ interface Version {
urls: string[];
}
-export const VersionToInstall: React.FC<{
+type VersionOptionType = {
+ value: Omit;
+ label: string;
+ check: boolean;
+};
+
+type SpecificSingleValueProps = SingleValueProps<
+ VersionOptionType,
+ false, // IsMulti
+ GroupBase
+>;
+
+export const VersionToInstall: FC<{
versions: NonEmptyArray;
initialVersion?: {
repository?: string;
@@ -78,14 +90,19 @@ export const VersionToInstall: React.FC<{
}}
value={selectedOption ?? initOpt}
components={{
- SingleValue: ({ children, ...props }) => (
-
- {children}
- {props.data.check && showCurrentVersion && (
-
- )}
-
- ),
+ SingleValue: ({ children, ...props }) => {
+ const OriginalSingleValue =
+ components.SingleValue as FC;
+
+ return (
+
+ {children}
+ {props.data.check && showCurrentVersion && (
+
+ )}
+
+ );
+ },
Option: ({ children, innerProps, data }) => (
{
action("clickCustomButton")("confirmModal: clicked custom button 1");
},
diff --git a/frontend/src/components/modal/Modal.tsx b/frontend/src/components/modal/Modal.tsx
index 49ed96f..2438881 100644
--- a/frontend/src/components/modal/Modal.tsx
+++ b/frontend/src/components/modal/Modal.tsx
@@ -41,23 +41,23 @@ const Modal = ({
const colorVariants = new Map
([
[
ModalButtonStyle.default,
- "text-base font-semibold text-gray-500 bg-white hover:bg-gray-100 disabled:bg-gray-200 focus:ring-4 focus:outline-none focus:ring-gray-200 rounded-lg border border-gray-200 font-medium px-5 py-1 hover:text-gray-900 focus:z-10 ",
+ "text-base font-semibold text-gray-500 bg-white hover:bg-gray-100 disabled:bg-gray-200 focus:ring-4 focus:outline-hidden focus:ring-gray-200 rounded-lg border border-gray-200 font-medium px-5 py-1 hover:text-gray-900 focus:z-10 ",
],
[
ModalButtonStyle.info,
- "font-semibold text-white bg-blue-700 hover:bg-blue-800 disabled:bg-blue-700/80 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
+ "font-semibold text-white bg-blue-700 hover:bg-blue-800 disabled:bg-blue-700/80 focus:ring-4 focus:outline-hidden focus:ring-blue-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
],
[
ModalButtonStyle.success,
- "font-semibold text-white bg-green-700 hover:bg-green-800 disabled:bg-green-700/80 focus:ring-4 focus:outline-none focus:ring-green-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
+ "font-semibold text-white bg-green-700 hover:bg-green-800 disabled:bg-green-700/80 focus:ring-4 focus:outline-hidden focus:ring-green-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
],
[
ModalButtonStyle.error,
- "font-semibold text-white bg-red-700 hover:bg-red-800 disabled:bg-red-700/80 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
+ "font-semibold text-white bg-red-700 hover:bg-red-800 disabled:bg-red-700/80 focus:ring-4 focus:outline-hidden focus:ring-red-300 font-medium rounded-lg text-base px-3 py-1.5 text-center ",
],
[
ModalButtonStyle.disabled,
- "font-semibold text-gray-500 bg-gray-200 hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 rounded-lg border border-gray-200 text-base font-medium px-3 py-1.5 hover:text-gray-900 focus:z-10 ",
+ "font-semibold text-gray-500 bg-gray-200 hover:bg-gray-100 focus:ring-4 focus:outline-hidden focus:ring-gray-200 rounded-lg border border-gray-200 text-base font-medium px-3 py-1.5 hover:text-gray-900 focus:z-10 ",
],
]);
@@ -78,14 +78,14 @@ const Modal = ({
return createPortal(
<>
{isOpen && (
-
+
onClose()}
>
@@ -118,20 +118,20 @@ const Modal = ({
) : null}
)}
-
+
{children}
{bottomContent ? (
{bottomContent}
) : (
-
+
{actions?.map((action) => (
-
+
Repositories
{repositories?.map((repository) => (
@@ -60,7 +60,7 @@ function RepositoriesList({
data-cy="install-repository-button"
type="button"
style={{ marginTop: "10px" }}
- className="h-8 w-fit flex items-center gap-2 border rounded text-muted border-gray-300 px-3 py-1 text-sm font-semibold"
+ className="h-8 w-fit flex items-center gap-2 border rounded-sm text-muted border-gray-300 px-3 py-1 text-sm font-semibold cursor-pointer"
onClick={() => setShowAddRepositoryModal(true)}
>
+ Add Repository
diff --git a/frontend/src/components/repository/RepositoryViewer.tsx b/frontend/src/components/repository/RepositoryViewer.tsx
index 71586b9..caccd63 100644
--- a/frontend/src/components/repository/RepositoryViewer.tsx
+++ b/frontend/src/components/repository/RepositoryViewer.tsx
@@ -6,7 +6,7 @@ import apiService from "../../API/apiService";
import Spinner from "../Spinner";
import { useUpdateRepo } from "../../API/repositories";
import { useEffect, useMemo, useState } from "react";
-import { useNavigate } from "react-router-dom";
+import { useNavigate } from "react-router";
import { useAppContext } from "../../context/AppContext";
type RepositoryViewerProps = {
@@ -22,7 +22,6 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
const navigate = useNavigate();
const { data: charts, isLoading } = useQuery
({
- //@ts-ignore
queryKey: ["charts", repository?.name || ""],
queryFn: apiService.getRepositoryCharts,
refetchOnWindowFocus: false,
@@ -76,7 +75,7 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
if (repository === undefined) {
return (
-
+
Looks like you don't have any repositories installed. You can add
one with the "Add Repository" button on the left side bar.
@@ -98,8 +97,8 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
update.mutate();
}}
>
-
- {update.isLoading ? : }
+
+ {update.isPending ? : }
Update
@@ -108,7 +107,7 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
removeRepository();
}}
>
-
+
{isRemoveLoading ? : }
Remove
@@ -119,7 +118,7 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
value={searchValue}
type="text"
placeholder="Filter..."
- className="mt-2 h-8 p-2 text-sm w-full border border-gray-300 focus:outline-none focus:border-sky-500 input-box-shadow rounded"
+ className="mt-2 h-8 p-2 text-sm w-full border border-gray-300 focus:outline-hidden focus:border-sky-500 input-box-shadow rounded-sm"
/>
@@ -142,7 +141,7 @@ function RepositoryViewer({ repository }: RepositoryViewerProps) {
)}
{showNoChartsAlert && (
-
+
Looks like you don't have any repositories installed. You can add
one with the "Add Repository" button on the left side bar.
diff --git a/frontend/src/components/revision/RevisionDetails.tsx b/frontend/src/components/revision/RevisionDetails.tsx
index 264d5c5..6366f23 100644
--- a/frontend/src/components/revision/RevisionDetails.tsx
+++ b/frontend/src/components/revision/RevisionDetails.tsx
@@ -11,7 +11,7 @@ import {
} from "react-icons/bs";
import { Release, ReleaseRevision } from "../../data/types";
import StatusLabel, { DeploymentStatus } from "../common/StatusLabel";
-import { useNavigate, useParams, useSearchParams } from "react-router-dom";
+import { useNavigate, useParams, useSearchParams } from "react-router";
import {
useGetReleaseInfoByType,
useGetLatestVersion,
@@ -91,14 +91,14 @@ export default function RevisionDetails({
refetch: refetchLatestVersion,
isLoading: isLoadingLatestVersion,
isRefetching: isRefetchingLatestVersion,
- } = useGetLatestVersion(release.chart_name, { cacheTime: 0 });
+ } = useGetLatestVersion(release.chart_name);
const [showTestsResults, setShowTestResults] = useState(false);
const { setShowErrorModal } = useAlertError();
const {
mutate: runTests,
- isLoading: isRunningTests,
+ isPending: isRunningTests,
data: testResults,
} = useTestRelease({
onError: (error) => {
@@ -306,7 +306,7 @@ export default function RevisionDetails({
function RevisionTag({ caption, text }: RevisionTagProps) {
return (
-
+
{caption}:
{text}
@@ -326,7 +326,7 @@ const Rollback = ({
const [showRollbackDiff, setShowRollbackDiff] = useState(false);
const revisionInt = parseInt(revision || "", 10);
- const { mutate: rollbackRelease, isLoading: isRollingBackRelease } =
+ const { mutate: rollbackRelease, isPending: isRollingBackRelease } =
useRollbackRelease({
onSuccess: () => {
navigate(
@@ -421,7 +421,7 @@ const Rollback = ({
}, [data, isLoading, fetchedDataSuccessfully]);
return (
-
+
{isLoading ? (
@@ -454,9 +454,7 @@ const Rollback = ({
const Uninstall = () => {
const [isOpen, setIsOpen] = useState(false);
const { namespace = "", chart = "" } = useParams();
- const { data: resources } = useGetResources(namespace, chart, {
- enabled: isOpen,
- });
+ const { data: resources } = useGetResources(namespace, chart, isOpen);
const uninstallMutation = useMutation({
mutationKey: ["uninstall", namespace, chart],
@@ -497,7 +495,7 @@ const Uninstall = () => {
id: "1",
callback: uninstallMutation.mutate,
variant: ModalButtonStyle.info,
- isLoading: uninstallMutation.isLoading,
+ isLoading: uninstallMutation.isPending,
},
]}
containerClassNames="w-[800px]"
diff --git a/frontend/src/components/revision/RevisionDiff.tsx b/frontend/src/components/revision/RevisionDiff.tsx
index 5d4cbf1..2ad23d2 100644
--- a/frontend/src/components/revision/RevisionDiff.tsx
+++ b/frontend/src/components/revision/RevisionDiff.tsx
@@ -1,7 +1,7 @@
import { ChangeEvent, useMemo, useState, useRef, useEffect } from "react";
import { Diff2HtmlUI } from "diff2html/lib/ui/js/diff2html-ui-slim.js";
import { useGetReleaseInfoByType } from "../../API/releases";
-import { useParams } from "react-router-dom";
+import { useParams } from "react-router";
import useCustomSearchParams from "../../hooks/useCustomSearchParams";
import parse from "html-react-parser";
@@ -134,7 +134,7 @@ function RevisionDiff({
return (
-
+
Diff with specific revision:
setSpecificVersion(Number(e.target.value))}
@@ -201,7 +201,7 @@ function RevisionDiff({
type="checkbox"
onChange={handleUserDefinedCheckbox}
checked={!!userDefinedValue}
- className="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
+ className="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded-sm focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
: ""}
{viewMode === VIEW_MODE_VIEW_ONLY && content ? (
-
{parse(content)}
+
+ {parse(content)}
+
) : (
""
diff --git a/frontend/src/components/revision/RevisionResource.tsx b/frontend/src/components/revision/RevisionResource.tsx
index 4a4f41c..744cde9 100644
--- a/frontend/src/components/revision/RevisionResource.tsx
+++ b/frontend/src/components/revision/RevisionResource.tsx
@@ -1,5 +1,5 @@
import { useMemo, useState } from "react";
-import { useParams } from "react-router-dom";
+import { useParams } from "react-router";
import hljs from "highlight.js";
import { RiExternalLinkLine } from "react-icons/ri";
@@ -32,19 +32,19 @@ export default function RevisionResource({ isLatest }: Props) {
cellPadding={6}
className="border-spacing-y-2 font-semibold border-separate w-full text-xs "
>
-
+
- RESOURCE TYPE
+ RESOURCE TYPE
NAME
STATUS
STATUS MESSAGE
-
+
{isLoading ? (
) : (
-
+
{resources?.length ? (
resources
.sort(function (a, b) {
@@ -65,7 +65,7 @@ export default function RevisionResource({ isLatest }: Props) {
))
) : (
-
+
Looks like you don't have any resources.{" "}
@@ -100,11 +100,11 @@ const ResourceRow = ({
return (
<>
- {kind}
+ {kind}
{name}
{reason ? {reason} : null}
-
-
+
+
{message && (
{message}
)}
@@ -113,7 +113,7 @@ const ResourceRow = ({
)}
-
+
{isLatest && reason !== "NotFound" ? (
@@ -183,7 +183,7 @@ const DescribeResource = ({
@@ -207,7 +207,7 @@ const DescribeResource = ({
) : (
changeRelease(release.revision)}
key={release.revision}
- className={`flex flex-col border rounded-md mx-5 p-2 gap-4 cursor-pointer ${
+ className={`flex flex-col border border-gray-200 rounded-md mx-5 p-2 gap-4 cursor-pointer ${
release.revision === selectedRevision
? "border-revision-dark bg-white"
: "border-revision-light bg-body-background"
diff --git a/frontend/src/hooks/useCustomSearchParams.ts b/frontend/src/hooks/useCustomSearchParams.ts
index b0812c8..0cd18a8 100644
--- a/frontend/src/hooks/useCustomSearchParams.ts
+++ b/frontend/src/hooks/useCustomSearchParams.ts
@@ -1,5 +1,5 @@
import { useCallback, useMemo } from "react";
-import { useSearchParams } from "react-router-dom";
+import { useSearchParams } from "react-router";
const useCustomSearchParams = () => {
const [search, setSearch] = useSearchParams();
diff --git a/frontend/src/hooks/useNavigateWithSearchParams.ts b/frontend/src/hooks/useNavigateWithSearchParams.ts
index 99aea84..e257407 100644
--- a/frontend/src/hooks/useNavigateWithSearchParams.ts
+++ b/frontend/src/hooks/useNavigateWithSearchParams.ts
@@ -3,7 +3,7 @@ import {
useLocation,
useNavigate,
useParams,
-} from "react-router-dom";
+} from "react-router";
import { useAppContext } from "../context/AppContext";
const useNavigateWithSearchParams = () => {
@@ -19,7 +19,7 @@ const useNavigateWithSearchParams = () => {
let prefixedUrl = url;
if (!clusterMode) {
- prefixedUrl = `/${encodeURIComponent(context)}${url}`;
+ prefixedUrl = `/${encodeURIComponent(context ?? "")}${url}`;
}
navigate(`${prefixedUrl}${search}`, ...restArgs);
};
diff --git a/frontend/src/index.css b/frontend/src/index.css
index aecd2e1..d265478 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -1,74 +1,117 @@
-/* 1. Google Fonts */
-@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Inter:wght@400;500&family=Poppins:wght@500;600&family=Roboto+Slab:wght@400;700");
+/* Google Fonts */
+@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Inter:wght@400;500&family=Poppins:wght@500;600&family=Roboto+Slab:wght@400;700")
+layer(base);
-/* 2. Tailwind directives */
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+/* Tailwind directives */
+@import "tailwindcss";
-/* 3. Theme variables (CSS-first approach) */
-:root {
- /* Fonts */
- --font-roboto: "Roboto", serif;
- --font-roboto-slab: "Roboto Slab", serif;
- --font-inter: "Inter", serif;
- --font-poppins: "Poppins", sans-serif;
- --font-sf-mono:
- SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
- monospace;
+@plugin 'flowbite/plugin';
+@source "../node_modules/flowbite";
+@plugin "flowbite-react/plugin/tailwindcss";
+@source "../.flowbite-react/class-list.json";
- /* Font weights */
- --font-weight-thin: 100;
- --font-weight-hairline: 100;
- --font-weight-extralight: 200;
- --font-weight-light: 300;
- --font-weight-normal: 400;
- --font-weight-semibold: 500;
- --font-weight-extrabold: 600;
- --font-weight-bold: 700;
-
- /* Colors */
- --color-body: #3d4048;
- --color-white: #ffffff;
- --color-gray-100: #f3f4f6;
- --color-gray-200: #e5e7eb;
- --color-gray-300: #d1d5db;
- --color-cluster-list: #3d4048;
- --color-dark: #3d4048;
- --color-tab-color: #3b3d45;
- --color-primary: #1347ff;
- --color-secondary: #eceff2;
- --color-muted: #707583;
- --color-error-border: #dc3545;
- --color-error-background: #f9d7da;
- --color-error-color: #842029;
- --color-failed: #fc1683;
- --color-deployed: #1fa470;
- --color-superseded: #9195a1;
- --color-pending: #5ab0ff;
- --color-danger: #ff0072;
- --color-text-danger: #fc1683;
- --color-text-warning: #ffc107;
- --color-text-success: #a4f8d7;
- --color-upgradable: #0d6efd;
- --color-warning: #ffa800;
- --color-success: #00c2ab;
- --color-border-deployed: #1be99a;
- --color-revision-light: #dcdddf;
- --color-revision-dark: #007bff;
- --color-installed-charts-filter: #dad8ce;
- --color-dropdown: #e9ecef;
- --color-chart-values: #eceff2;
- --color-add-repo: #0b5ed7;
- --color-link-color: #0d6efd;
- --color-body-background: #f4f7fa;
- --color-repository: #d6effe;
- --color-revision: #d6effe;
- --color-header-install: #ebefff;
- --color-upgrade-color: #fc1683;
+/* Components layer */
+@utility card {
+ background-color: var(--color-white);
+ border-radius: var(--radius-lg);
+ border: 1px solid var(--color-gray-200);
+ box-shadow: var(--shadow-xl);
+ padding: --spacing(12) --spacing(6) --spacing(6);
+}
+@utility card-hover {
+ background-color: var(--color-gray-100);
+ border-radius: var(--radius-lg);
+ padding: --spacing(6);
+ box-shadow: var(--shadow-xl);
+}
+@utility card-active {
+ background-color: var(--color-gray-200);
+ border-radius: var(--radius-lg);
+ padding: --spacing(6);
+ box-shadow: var(--shadow-xl);
+}
+@utility card-disabled {
+ background-color: var(--color-gray-300);
+ border-radius: var(--radius-lg);
+ padding: --spacing(6);
+ box-shadow: var(--shadow-xl);
+}
+@utility custom-shadow {
+ position: relative;
+ box-sizing: border-box;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
+}
+@utility error-dialog {
+ border: var(--color-error-border);
+ background-color: var(--color-error-background);
+ color: var(--color-error-color);
}
-/* 4. Base layer */
+@layer utilities {
+ /* Theme variables (CSS-first approach) */
+ :root {
+ /* Fonts */
+ --font-roboto: "Roboto", serif;
+ --font-roboto-slab: "Roboto Slab", serif;
+ --font-inter: "Inter", serif;
+ --font-poppins: "Poppins", sans-serif;
+ --font-sf-mono:
+ SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
+ monospace;
+
+ /* Font weights */
+ --font-weight-thin: 100;
+ --font-weight-hairline: 100;
+ --font-weight-extralight: 200;
+ --font-weight-light: 300;
+ --font-weight-normal: 400;
+ --font-weight-semibold: 500;
+ --font-weight-extrabold: 600;
+ --font-weight-bold: 700;
+
+ /* Colors */
+ --color-body: #3d4048;
+ --color-white: #ffffff;
+ --color-gray-100: #f3f4f6;
+ --color-gray-200: #e5e7eb;
+ --color-gray-300: #d1d5db;
+ --color-cluster-list: #3d4048;
+ --color-dark: #3d4048;
+ --color-tab-color: #3b3d45;
+ --color-primary: #1347ff;
+ --color-secondary: #eceff2;
+ --color-muted: #707583;
+ --color-error-border: #dc3545;
+ --color-error-background: #f9d7da;
+ --color-error-color: #842029;
+ --color-failed: #fc1683;
+ --color-deployed: #1fa470;
+ --color-superseded: #9195a1;
+ --color-pending: #5ab0ff;
+ --color-danger: #ff0072;
+ --color-text-danger: #fc1683;
+ --color-text-warning: #ffc107;
+ --color-text-success: #a4f8d7;
+ --color-upgradable: #0d6efd;
+ --color-warning: #ffa800;
+ --color-success: #00c2ab;
+ --color-border-deployed: #1be99a;
+ --color-revision-light: #dcdddf;
+ --color-revision-dark: #007bff;
+ --color-installed-charts-filter: #dad8ce;
+ --color-dropdown: #e9ecef;
+ --color-chart-values: #eceff2;
+ --color-add-repo: #0b5ed7;
+ --color-link-color: #0d6efd;
+ --color-body-background: #f4f7fa;
+ --color-repository: #d6effe;
+ --color-revision: #d6effe;
+ --color-header-install: #ebefff;
+ --color-upgrade-color: #fc1683;
+ }
+}
+
+/* Base layer */
@layer base {
body {
color: var(--color-body);
@@ -82,58 +125,14 @@
}
}
-/* 5. Components layer */
-@layer components {
- .card {
- background-color: var(--color-white);
- border-radius: theme("borderRadius.lg");
- border: 1px solid var(--color-gray-200);
- box-shadow: theme("boxShadow.xl");
- padding: theme("spacing.12") theme("spacing.6") theme("spacing.6");
- }
-
- .card-hover {
- background-color: var(--color-gray-100);
- border-radius: theme("borderRadius.lg");
- padding: theme("spacing.6");
- box-shadow: theme("boxShadow.xl");
- }
-
- .card-active {
- background-color: var(--color-gray-200);
- border-radius: theme("borderRadius.lg");
- padding: theme("spacing.6");
- box-shadow: theme("boxShadow.xl");
- }
-
- .card-disabled {
- background-color: var(--color-gray-300);
- border-radius: theme("borderRadius.lg");
- padding: theme("spacing.6");
- box-shadow: theme("boxShadow.xl");
- }
-
- .custom-shadow {
- position: relative;
- box-sizing: border-box;
- box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
- }
-
- .error-dialog {
- border: var(--color-error-border);
- background-color: var(--color-error-background);
- color: var(--color-error-color);
- }
-}
-
-/* 6. Code & pre fonts */
+/* Code & pre fonts */
pre,
code {
font-family: var(--font-sf-mono);
font-size: 12.5px;
}
-/* 7. Portal positioning */
+/* Portal positioning */
#portal {
top: 0;
width: 40%;
@@ -141,13 +140,13 @@ code {
position: absolute;
}
-/* 8. Required fields */
+/* Required fields */
.require:after {
content: " *";
color: red;
}
-/* 9. Input focus shadow */
+/* Input focus shadow */
.input-box-shadow:focus {
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
diff --git a/frontend/src/layout/Header.tsx b/frontend/src/layout/Header.tsx
index da96631..0ae40ae 100644
--- a/frontend/src/layout/Header.tsx
+++ b/frontend/src/layout/Header.tsx
@@ -1,4 +1,4 @@
-import { useLocation } from "react-router-dom";
+import { useLocation } from "react-router";
import LogoHeader from "../assets/logo-header.svg";
import DropDown from "../components/common/DropDown";
import WatcherIcon from "../assets/k8s-watcher.svg";
@@ -13,15 +13,22 @@ import { useGetApplicationStatus } from "../API/other";
import LinkWithSearchParams from "../components/LinkWithSearchParams";
import apiService from "../API/apiService";
import { useAppContext } from "../context/AppContext";
+import { useEffect, useEffectEvent } from "react";
export default function Header() {
const { clusterMode, setClusterMode } = useAppContext();
- const { data: statusData } = useGetApplicationStatus({
- onSuccess: (data) => {
- setClusterMode(data.ClusterMode);
- },
+ const { data: statusData, isSuccess } = useGetApplicationStatus();
+
+ const onSuccess = useEffectEvent(() => {
+ setClusterMode(!!statusData?.ClusterMode);
});
+ useEffect(() => {
+ if (isSuccess && statusData) {
+ onSuccess();
+ }
+ }, [isSuccess, statusData]);
+
const location = useLocation();
const openProjectPage = () => {
@@ -46,7 +53,7 @@ export default function Header() {
const getBtnStyle = (identifier: string) =>
`text-md py-2.5 px-5 ${
location.pathname.includes(`/${identifier}`)
- ? " text-primary rounded-sm bg-header-install"
+ ? " text-primary rounded-xs bg-header-install"
: ""
}`;
@@ -129,7 +136,7 @@ export default function Header() {
-
+
+
);
diff --git a/frontend/src/pages/Installed.tsx b/frontend/src/pages/Installed.tsx
index c536076..01119e0 100644
--- a/frontend/src/pages/Installed.tsx
+++ b/frontend/src/pages/Installed.tsx
@@ -2,10 +2,10 @@ import InstalledPackagesHeader from "../components/InstalledPackages/InstalledPa
import InstalledPackagesList from "../components/InstalledPackages/InstalledPackagesList";
import ClustersList from "../components/ClustersList";
import { useGetInstalledReleases } from "../API/releases";
-import { useMemo, useState } from "react";
+import { useEffect, useEffectEvent, useMemo, useState } from "react";
import Spinner from "../components/Spinner";
import useAlertError from "../hooks/useAlertError";
-import { useParams, useNavigate } from "react-router-dom";
+import { useParams, useNavigate } from "react-router";
import useCustomSearchParams from "../hooks/useCustomSearchParams";
import { Release } from "../data/types";
@@ -27,18 +27,21 @@ function Installed() {
const [filterKey, setFilterKey] = useState("");
const alertError = useAlertError();
- const { data, isLoading, isRefetching } = useGetInstalledReleases(
- context ?? "",
- {
- retry: false,
- onError: (e) => {
- alertError.setShowErrorModal({
- title: "Failed to get list of charts",
- msg: (e as Error).message,
- });
- },
+ const { data, isLoading, isRefetching, isError, error } =
+ useGetInstalledReleases(context ?? "");
+
+ const onError = useEffectEvent(() => {
+ alertError.setShowErrorModal({
+ title: "Failed to get list of charts",
+ msg: error?.message ?? "",
+ });
+ });
+
+ useEffect(() => {
+ if (isError) {
+ onError();
}
- );
+ }, [isError]);
const filteredReleases = useMemo(() => {
return (
diff --git a/frontend/src/pages/Repository.tsx b/frontend/src/pages/Repository.tsx
index 31304f6..dc5df41 100644
--- a/frontend/src/pages/Repository.tsx
+++ b/frontend/src/pages/Repository.tsx
@@ -1,11 +1,10 @@
-import { useMemo, useEffect } from "react";
+import { useMemo, useEffect, useEffectEvent } from "react";
import RepositoriesList from "../components/repository/RepositoriesList";
import RepositoryViewer from "../components/repository/RepositoryViewer";
import { Repository } from "../data/types";
import { useGetRepositories } from "../API/repositories";
-import { HelmRepositories } from "../API/interfaces";
-import { useParams } from "react-router-dom";
+import { useParams } from "react-router";
import { useAppContext } from "../context/AppContext";
import useNavigateWithSearchParams from "../hooks/useNavigateWithSearchParams";
@@ -34,16 +33,25 @@ function RepositoryPage() {
}
}, [selectedRepo, repoFromParams, context, navigate]);
- const { data: repositories = [] } = useGetRepositories({
- onSuccess: (data: HelmRepositories) => {
- const sortedData = data?.sort((a, b) => a.name.localeCompare(b.name));
+ const { data: repositories = [], isSuccess } = useGetRepositories();
- if (sortedData && sortedData.length > 0 && !repoFromParams) {
- handleRepositoryChanged(sortedData[0]);
- }
- },
+ const onSuccess = useEffectEvent(() => {
+ // TODO should we passe sorted to RepositoriesList as in ClustersList?
+ const sortedData = [...repositories]?.sort((a, b) =>
+ a.name.localeCompare(b.name)
+ );
+
+ if (sortedData && sortedData.length > 0 && !repoFromParams) {
+ handleRepositoryChanged(sortedData[0]);
+ }
});
+ useEffect(() => {
+ if (repositories.length && isSuccess) {
+ onSuccess();
+ }
+ }, [repositories, isSuccess]);
+
const selectedRepository = useMemo(() => {
if (repoFromParams) {
return repositories?.find((repo) => repo.name === repoFromParams);
diff --git a/frontend/src/pages/Revision.tsx b/frontend/src/pages/Revision.tsx
index 9fd2e89..0b51188 100644
--- a/frontend/src/pages/Revision.tsx
+++ b/frontend/src/pages/Revision.tsx
@@ -1,8 +1,8 @@
import { useMemo } from "react";
-import { useParams } from "react-router-dom";
+import { useParams } from "react-router";
import RevisionDetails from "../components/revision/RevisionDetails";
import RevisionsList from "../components/revision/RevisionsList";
-import { ReleaseRevision } from "../data/types";
+import { Release, ReleaseRevision } from "../data/types";
import { useQuery } from "@tanstack/react-query";
import apiService from "../API/apiService";
import Spinner from "../components/Spinner";
@@ -15,18 +15,15 @@ function Revision() {
const selectedRevision = revision ? parseInt(revision, 10) : 0;
- const { data: releaseRevisions, isLoading: isLoadingHistory } = useQuery<
- ReleaseRevision[]
- >({
- //eslint-ignore
- //@ts-ignore
- queryKey: ["releasesHistory", restParams],
- queryFn: apiService.getReleasesHistory,
- });
+ const { data: releaseRevisions = [], isLoading: isLoadingHistory } = useQuery(
+ {
+ queryKey: ["releasesHistory", restParams],
+ queryFn: apiService.getReleasesHistory,
+ }
+ );
const latestRevision = useMemo(
() =>
- Array.isArray(releaseRevisions) &&
releaseRevisions.reduce((max, revisionData) => {
return Math.max(max, revisionData.revision);
}, Number.MIN_SAFE_INTEGER),
@@ -40,7 +37,7 @@ function Revision() {
const selectedRelease = useMemo(() => {
if (selectedRevision && releaseRevisions) {
- return (releaseRevisions as ReleaseRevision[]).find(
+ return releaseRevisions.find(
(r: ReleaseRevision) => r.revision === selectedRevision
);
}
@@ -70,14 +67,10 @@ function Revision() {
) : selectedRelease ? (
) : null}
@@ -88,12 +81,12 @@ function Revision() {
const RevisionSidebarSkeleton = () => {
return (
<>
-
-
-
-
-
-
+
+
+
+
+
+
>
);
};
diff --git a/frontend/src/timeUtils.ts b/frontend/src/timeUtils.ts
index 220e3bc..cbc5850 100644
--- a/frontend/src/timeUtils.ts
+++ b/frontend/src/timeUtils.ts
@@ -1,9 +1,9 @@
-import { DateTime, type DurationLikeObject } from "luxon";
+import { DateTime, DateTimeMaybeValid, type DurationLikeObject } from "luxon";
import { ReleaseRevision } from "./data/types";
export function getAge(obj1: ReleaseRevision, obj2?: ReleaseRevision) {
const date = DateTime.fromISO(obj1.updated);
- let dateNext = DateTime.now();
+ let dateNext: DateTimeMaybeValid = DateTime.now();
if (obj2) {
dateNext = DateTime.fromISO(obj2.updated);
}
diff --git a/frontend/tailwind.config.cjs b/frontend/tailwind.config.cjs
deleted file mode 100644
index da467c4..0000000
--- a/frontend/tailwind.config.cjs
+++ /dev/null
@@ -1,12 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: [
- "./index.html",
- "./src/**/*.{js,ts,jsx,tsx}",
- "./node_modules/flowbite/**/*.js",
- "./node_modules/flowbite-react/**/*.{js,jsx,ts,tsx}",
- ],
- plugins: [
- require("flowbite/plugin")
- ],
-};
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index 1deabe3..2f62df8 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -10,7 +10,7 @@
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
- "moduleResolution": "Node",
+ "moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json
index 9d31e2a..a535f7d 100644
--- a/frontend/tsconfig.node.json
+++ b/frontend/tsconfig.node.json
@@ -2,7 +2,7 @@
"compilerOptions": {
"composite": true,
"module": "ESNext",
- "moduleResolution": "Node",
+ "moduleResolution": "bundler",
"allowSyntheticDefaultImports": true
},
"include": ["vite.config.ts"]
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
index aaf8855..32b19ba 100644
--- a/frontend/vite.config.ts
+++ b/frontend/vite.config.ts
@@ -1,6 +1,7 @@
import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
-import { viteStaticCopy } from 'vite-plugin-static-copy';
+import { viteStaticCopy } from "vite-plugin-static-copy";
+import tailwindcss from "@tailwindcss/vite";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
@@ -8,38 +9,36 @@ export default defineConfig(({ mode }) => {
return {
plugins: [
react(),
+ tailwindcss(),
viteStaticCopy({
targets: [
{
- src: 'public/analytics.js',
+ src: "public/analytics.js",
dest: "assets/",
},
{
- src: 'public/openapi.json',
+ src: "public/openapi.json",
dest: "assets/",
},
{
- src: 'public/logo.svg',
+ src: "public/logo.svg",
dest: "assets/",
},
- ]
- })
+ ],
+ }),
],
build: {
assetsDir: "./assets/",
outDir: "../pkg/frontend/dist",
emptyOutDir: true,
- rollupOptions: {
- output: {
- manualChunks: {
- react: ['react', 'react-dom', 'react-router-dom'],
- vendors: ['luxon','highlight.js','diff2html','swagger-ui-react']
- }
- }
- }
- },
- css: {
- postcss: './postcss.config.cjs'
+ rollupOptions: {
+ output: {
+ manualChunks: {
+ react: ["react", "react-dom", "react-router"],
+ vendors: ["luxon", "highlight.js", "diff2html", "swagger-ui-react"],
+ },
+ },
+ },
},
server: {
proxy: {
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index bf3f73f..01c3155 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -31,7 +31,7 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz"
integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==
-"@babel/core@^7.21.0", "@babel/core@^7.24.4", "@babel/core@^7.28.0", "@babel/core@^7.28.5":
+"@babel/core@^7.24.4", "@babel/core@^7.28.0", "@babel/core@^7.28.5":
version "7.28.5"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz"
integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==
@@ -510,7 +510,7 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@^9.39.1", "@eslint/js@9.39.1":
+"@eslint/js@9.39.1":
version "9.39.1"
resolved "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz"
integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==
@@ -613,7 +613,7 @@
magic-string "^0.30.0"
react-docgen-typescript "^2.2.2"
-"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
+"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
version "0.3.13"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz"
integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
@@ -689,16 +689,16 @@
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+"@pkgr/core@^0.2.9":
+ version "0.2.9"
+ resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz"
+ integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==
+
"@popperjs/core@^2.9.3":
version "2.11.8"
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
-"@remix-run/router@1.5.0":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz"
- integrity sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==
-
"@rolldown/pluginutils@1.0.0-beta.47":
version "1.0.0-beta.47"
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.47.tgz"
@@ -1468,6 +1468,15 @@
postcss "^8.4.41"
tailwindcss "4.1.17"
+"@tailwindcss/vite@^4.1.17":
+ version "4.1.17"
+ resolved "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.17.tgz"
+ integrity sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==
+ dependencies:
+ "@tailwindcss/node" "4.1.17"
+ "@tailwindcss/oxide" "4.1.17"
+ tailwindcss "4.1.17"
+
"@tanstack/query-core@5.90.11":
version "5.90.11"
resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.11.tgz"
@@ -1680,13 +1689,6 @@
resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz"
integrity sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==
-"@types/uuid@^11.0.0":
- version "11.0.0"
- resolved "https://registry.npmjs.org/@types/uuid/-/uuid-11.0.0.tgz"
- integrity sha512-HVyk8nj2m+jcFRNazzqyVKiZezyhDKrGUA3jlEcg/nZ6Ms+qHwocba1Y/AaVaznJTAM9xpdFSh+ptbNrhOGvZA==
- dependencies:
- uuid "*"
-
"@types/yauzl@^2.9.1":
version "2.10.3"
resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz"
@@ -1711,30 +1713,30 @@
semver "^7.5.4"
ts-api-utils "^1.0.1"
-"@typescript-eslint/eslint-plugin@^8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz"
- integrity sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==
+"@typescript-eslint/eslint-plugin@^8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz"
+ integrity sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.47.0"
- "@typescript-eslint/type-utils" "8.47.0"
- "@typescript-eslint/utils" "8.47.0"
- "@typescript-eslint/visitor-keys" "8.47.0"
+ "@typescript-eslint/scope-manager" "8.48.0"
+ "@typescript-eslint/type-utils" "8.48.0"
+ "@typescript-eslint/utils" "8.48.0"
+ "@typescript-eslint/visitor-keys" "8.48.0"
graphemer "^1.4.0"
ignore "^7.0.0"
natural-compare "^1.4.0"
ts-api-utils "^2.1.0"
-"@typescript-eslint/parser@^8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz"
- integrity sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==
+"@typescript-eslint/parser@^8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.0.tgz"
+ integrity sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==
dependencies:
- "@typescript-eslint/scope-manager" "8.47.0"
- "@typescript-eslint/types" "8.47.0"
- "@typescript-eslint/typescript-estree" "8.47.0"
- "@typescript-eslint/visitor-keys" "8.47.0"
+ "@typescript-eslint/scope-manager" "8.48.0"
+ "@typescript-eslint/types" "8.48.0"
+ "@typescript-eslint/typescript-estree" "8.48.0"
+ "@typescript-eslint/visitor-keys" "8.48.0"
debug "^4.3.4"
"@typescript-eslint/project-service@8.46.2":
@@ -1746,13 +1748,13 @@
"@typescript-eslint/types" "^8.46.2"
debug "^4.3.4"
-"@typescript-eslint/project-service@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz"
- integrity sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==
+"@typescript-eslint/project-service@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz"
+ integrity sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==
dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.47.0"
- "@typescript-eslint/types" "^8.47.0"
+ "@typescript-eslint/tsconfig-utils" "^8.48.0"
+ "@typescript-eslint/types" "^8.48.0"
debug "^4.3.4"
"@typescript-eslint/scope-manager@5.62.0":
@@ -1771,23 +1773,23 @@
"@typescript-eslint/types" "6.21.0"
"@typescript-eslint/visitor-keys" "6.21.0"
-"@typescript-eslint/scope-manager@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz"
- integrity sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==
+"@typescript-eslint/scope-manager@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz"
+ integrity sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==
dependencies:
- "@typescript-eslint/types" "8.47.0"
- "@typescript-eslint/visitor-keys" "8.47.0"
+ "@typescript-eslint/types" "8.48.0"
+ "@typescript-eslint/visitor-keys" "8.48.0"
"@typescript-eslint/tsconfig-utils@^8.46.2", "@typescript-eslint/tsconfig-utils@8.46.2":
version "8.46.2"
resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz"
integrity sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==
-"@typescript-eslint/tsconfig-utils@^8.47.0", "@typescript-eslint/tsconfig-utils@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz"
- integrity sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==
+"@typescript-eslint/tsconfig-utils@^8.48.0", "@typescript-eslint/tsconfig-utils@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz"
+ integrity sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==
"@typescript-eslint/type-utils@6.21.0":
version "6.21.0"
@@ -1799,14 +1801,14 @@
debug "^4.3.4"
ts-api-utils "^1.0.1"
-"@typescript-eslint/type-utils@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz"
- integrity sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==
+"@typescript-eslint/type-utils@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz"
+ integrity sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==
dependencies:
- "@typescript-eslint/types" "8.47.0"
- "@typescript-eslint/typescript-estree" "8.47.0"
- "@typescript-eslint/utils" "8.47.0"
+ "@typescript-eslint/types" "8.48.0"
+ "@typescript-eslint/typescript-estree" "8.48.0"
+ "@typescript-eslint/utils" "8.48.0"
debug "^4.3.4"
ts-api-utils "^2.1.0"
@@ -1815,10 +1817,10 @@
resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz"
integrity sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==
-"@typescript-eslint/types@^8.47.0", "@typescript-eslint/types@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz"
- integrity sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==
+"@typescript-eslint/types@^8.48.0", "@typescript-eslint/types@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz"
+ integrity sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==
"@typescript-eslint/types@5.62.0":
version "5.62.0"
@@ -1873,20 +1875,19 @@
semver "^7.6.0"
ts-api-utils "^2.1.0"
-"@typescript-eslint/typescript-estree@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz"
- integrity sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==
+"@typescript-eslint/typescript-estree@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz"
+ integrity sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==
dependencies:
- "@typescript-eslint/project-service" "8.47.0"
- "@typescript-eslint/tsconfig-utils" "8.47.0"
- "@typescript-eslint/types" "8.47.0"
- "@typescript-eslint/visitor-keys" "8.47.0"
+ "@typescript-eslint/project-service" "8.48.0"
+ "@typescript-eslint/tsconfig-utils" "8.48.0"
+ "@typescript-eslint/types" "8.48.0"
+ "@typescript-eslint/visitor-keys" "8.48.0"
debug "^4.3.4"
- fast-glob "^3.3.2"
- is-glob "^4.0.3"
minimatch "^9.0.4"
semver "^7.6.0"
+ tinyglobby "^0.2.15"
ts-api-utils "^2.1.0"
"@typescript-eslint/utils@^5.45.0":
@@ -1903,15 +1904,15 @@
eslint-scope "^5.1.1"
semver "^7.3.7"
-"@typescript-eslint/utils@^8.8.1", "@typescript-eslint/utils@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.47.0.tgz"
- integrity sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==
+"@typescript-eslint/utils@^8.8.1", "@typescript-eslint/utils@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz"
+ integrity sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==
dependencies:
"@eslint-community/eslint-utils" "^4.7.0"
- "@typescript-eslint/scope-manager" "8.47.0"
- "@typescript-eslint/types" "8.47.0"
- "@typescript-eslint/typescript-estree" "8.47.0"
+ "@typescript-eslint/scope-manager" "8.48.0"
+ "@typescript-eslint/types" "8.48.0"
+ "@typescript-eslint/typescript-estree" "8.48.0"
"@typescript-eslint/utils@6.21.0":
version "6.21.0"
@@ -1950,12 +1951,12 @@
"@typescript-eslint/types" "8.46.2"
eslint-visitor-keys "^4.2.1"
-"@typescript-eslint/visitor-keys@8.47.0":
- version "8.47.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz"
- integrity sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==
+"@typescript-eslint/visitor-keys@8.48.0":
+ version "8.48.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz"
+ integrity sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==
dependencies:
- "@typescript-eslint/types" "8.47.0"
+ "@typescript-eslint/types" "8.48.0"
eslint-visitor-keys "^4.2.1"
"@vitejs/plugin-react@^5.1.1":
@@ -2058,6 +2059,13 @@ ansi-escapes@^4.3.0:
dependencies:
type-fest "^0.21.3"
+ansi-escapes@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz"
+ integrity sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==
+ dependencies:
+ environment "^1.0.0"
+
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
@@ -2075,20 +2083,15 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
-ansi-styles@^6.0.0:
- version "6.2.1"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz"
- integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
-
ansi-styles@^6.1.0:
version "6.2.3"
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz"
integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
-any-promise@^1.0.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"
- integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
+ansi-styles@^6.2.1:
+ version "6.2.3"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz"
+ integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
anymatch@~3.1.2:
version "3.1.3"
@@ -2108,11 +2111,6 @@ arch@^2.2.0:
resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
-arg@^5.0.2:
- version "5.0.2"
- resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
- integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
-
argparse@^1.0.10:
version "1.0.10"
resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
@@ -2281,16 +2279,16 @@ autolinker@^3.11.0:
dependencies:
tslib "^2.3.0"
-autoprefixer@^10.4.14:
- version "10.4.14"
- resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz"
- integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
+autoprefixer@^10.4.22:
+ version "10.4.22"
+ resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz"
+ integrity sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==
dependencies:
- browserslist "^4.21.5"
- caniuse-lite "^1.0.30001464"
- fraction.js "^4.2.0"
+ browserslist "^4.27.0"
+ caniuse-lite "^1.0.30001754"
+ fraction.js "^5.3.4"
normalize-range "^0.1.2"
- picocolors "^1.0.0"
+ picocolors "^1.1.1"
postcss-value-parser "^4.2.0"
available-typed-arrays@^1.0.7:
@@ -2350,10 +2348,10 @@ base64-js@^1.3.1, base64-js@^1.5.1:
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-baseline-browser-mapping@^2.8.9:
- version "2.8.18"
- resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.18.tgz"
- integrity sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w==
+baseline-browser-mapping@^2.8.25:
+ version "2.8.31"
+ resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz"
+ integrity sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
@@ -2399,16 +2397,16 @@ braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
-browserslist@^4.21.5, browserslist@^4.24.0:
- version "4.26.3"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz"
- integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==
+browserslist@^4.24.0, browserslist@^4.27.0:
+ version "4.28.0"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz"
+ integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==
dependencies:
- baseline-browser-mapping "^2.8.9"
- caniuse-lite "^1.0.30001746"
- electron-to-chromium "^1.5.227"
- node-releases "^2.0.21"
- update-browserslist-db "^1.1.3"
+ baseline-browser-mapping "^2.8.25"
+ caniuse-lite "^1.0.30001754"
+ electron-to-chromium "^1.5.249"
+ node-releases "^2.0.27"
+ update-browserslist-db "^1.1.4"
buffer-crc32@~0.2.3:
version "0.2.13"
@@ -2467,15 +2465,10 @@ callsites@^3.0.0:
resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-camelcase-css@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
- integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
-
-caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001746:
- version "1.0.30001751"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz"
- integrity sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==
+caniuse-lite@^1.0.30001754:
+ version "1.0.30001757"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz"
+ integrity sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==
caseless@~0.12.0:
version "0.12.0"
@@ -2501,11 +2494,6 @@ chalk@^4.0.0, chalk@^4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz"
- integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
-
character-entities-legacy@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz"
@@ -2531,21 +2519,6 @@ check-more-types@^2.24.0:
resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz"
integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
-chokidar@^3.5.3:
- version "3.6.0"
- resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
- integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
chokidar@^3.6.0:
version "3.6.0"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
@@ -2590,6 +2563,13 @@ cli-cursor@^3.1.0:
dependencies:
restore-cursor "^3.1.0"
+cli-cursor@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz"
+ integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==
+ dependencies:
+ restore-cursor "^5.0.0"
+
cli-table3@~0.6.1:
version "0.6.3"
resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz"
@@ -2607,13 +2587,13 @@ cli-truncate@^2.1.0:
slice-ansi "^3.0.0"
string-width "^4.2.0"
-cli-truncate@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz"
- integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
+cli-truncate@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz"
+ integrity sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==
dependencies:
- slice-ansi "^5.0.0"
- string-width "^5.0.0"
+ slice-ansi "^7.1.0"
+ string-width "^8.0.0"
color-convert@^2.0.1:
version "2.0.1"
@@ -2627,7 +2607,7 @@ color-name@~1.1.4:
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-colorette@^2.0.16, colorette@^2.0.19:
+colorette@^2.0.16, colorette@^2.0.20:
version "2.0.20"
resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
@@ -2644,15 +2624,10 @@ comma-separated-tokens@^2.0.0:
resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz"
integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
-commander@^10.0.0:
- version "10.0.1"
- resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz"
- integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
-
-commander@^4.0.0:
- version "4.1.1"
- resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
- integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^14.0.2:
+ version "14.0.2"
+ resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz"
+ integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==
commander@^6.2.1:
version "6.2.1"
@@ -2693,6 +2668,11 @@ convert-source-map@^2.0.0:
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+cookie@^1.0.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz"
+ integrity sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==
+
copy-to-clipboard@^3.3.1:
version "3.3.3"
resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz"
@@ -2726,7 +2706,7 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-cross-spawn@^7.0.0, cross-spawn@^7.0.3, cross-spawn@^7.0.6:
+cross-spawn@^7.0.0, cross-spawn@^7.0.6:
version "7.0.6"
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
@@ -2740,11 +2720,6 @@ css.escape@^1.5.1, css.escape@1.5.1:
resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz"
integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
csstype@^3.0.2, csstype@^3.2.2:
version "3.2.3"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz"
@@ -2927,22 +2902,17 @@ detect-libc@^2.0.3:
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz"
integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
-didyoumean@^1.2.2:
- version "1.2.2"
- resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
- integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+diff@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz"
+ integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==
-diff@5.1.0:
- version "5.1.0"
- resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz"
- integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
-
-diff2html@^3.4.46:
- version "3.4.47"
- resolved "https://registry.npmjs.org/diff2html/-/diff2html-3.4.47.tgz"
- integrity sha512-2llDp8750FRUJl8n7apM0tlcqZYxbDHTw7qhzv/kGddByHRpn3Xg/sWHHIy34h492aGSpStEULydxqrITYpuoA==
+diff2html@^3.4.52:
+ version "3.4.52"
+ resolved "https://registry.npmjs.org/diff2html/-/diff2html-3.4.52.tgz"
+ integrity sha512-qhMg8/I3sZ4zm/6R/Kh0xd6qG6Vm86w6M+C9W+DuH1V8ACz+1cgEC8/k0ucjv6AGqZWzHm/8G1gh7IlrUqCMhg==
dependencies:
- diff "5.1.0"
+ diff "^7.0.0"
hogan.js "3.0.2"
optionalDependencies:
highlight.js "11.9.0"
@@ -2954,11 +2924,6 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-dlv@^1.1.3:
- version "1.1.3"
- resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
- integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
-
doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
@@ -3050,10 +3015,15 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-electron-to-chromium@^1.5.227:
- version "1.5.237"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz"
- integrity sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==
+electron-to-chromium@^1.5.249:
+ version "1.5.262"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz"
+ integrity sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==
+
+emoji-regex@^10.3.0:
+ version "10.6.0"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz"
+ integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==
emoji-regex@^8.0.0:
version "8.0.0"
@@ -3103,6 +3073,11 @@ entities@^6.0.0:
resolved "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz"
integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
+environment@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz"
+ integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
@@ -3327,6 +3302,14 @@ eslint-plugin-jsx-a11y@^6.7.1:
object.fromentries "^2.0.6"
semver "^6.3.0"
+eslint-plugin-prettier@^5.5.4:
+ version "5.5.4"
+ resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz"
+ integrity sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==
+ dependencies:
+ prettier-linter-helpers "^1.0.0"
+ synckit "^0.11.7"
+
eslint-plugin-react-hooks@^4.6.0:
version "4.6.2"
resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz"
@@ -3510,20 +3493,10 @@ eventemitter2@6.4.7:
resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz"
integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
-execa@^7.0.0:
- version "7.1.1"
- resolved "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz"
- integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.1"
- human-signals "^4.3.0"
- is-stream "^3.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^5.1.0"
- onetime "^6.0.0"
- signal-exit "^3.0.7"
- strip-final-newline "^3.0.0"
+eventemitter3@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz"
+ integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
execa@4.1.0:
version "4.1.0"
@@ -3573,7 +3546,12 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.2:
+fast-diff@^1.1.2:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz"
+ integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+
+fast-glob@^3.2.9, fast-glob@^3.3.2:
version "3.3.3"
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz"
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
@@ -3752,10 +3730,10 @@ format@^0.2.0:
resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz"
integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==
-fraction.js@^4.2.0:
- version "4.2.0"
- resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
- integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+fraction.js@^5.3.4:
+ version "5.3.4"
+ resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz"
+ integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==
fs-extra@^9.1.0:
version "9.1.0"
@@ -3767,11 +3745,6 @@ fs-extra@^9.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
@@ -3809,6 +3782,11 @@ gensync@^1.0.0-beta.2:
resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.0, get-east-asian-width@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz"
+ integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==
+
get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0:
version "1.3.0"
resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
@@ -3840,11 +3818,6 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
-get-stream@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
get-symbol-description@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz"
@@ -3901,18 +3874,6 @@ glob@^10.0.0:
package-json-from-dist "^1.0.0"
path-scurry "^1.11.1"
-glob@7.1.6:
- version "7.1.6"
- resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
global-dirs@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz"
@@ -4127,10 +4088,10 @@ human-signals@^1.1.1:
resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
-human-signals@^4.3.0:
- version "4.3.1"
- resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz"
- integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
+husky@^9.1.7:
+ version "9.1.7"
+ resolved "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz"
+ integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==
ieee754@^1.1.13, ieee754@^1.2.1:
version "1.2.1"
@@ -4170,15 +4131,7 @@ indent-string@^4.0.0:
resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@^2.0.4, inherits@2:
+inherits@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -4327,10 +4280,12 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-is-fullwidth-code-point@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz"
- integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
+is-fullwidth-code-point@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz"
+ integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==
+ dependencies:
+ get-east-asian-width "^1.3.1"
is-generator-function@^1.0.10:
version "1.1.2"
@@ -4423,11 +4378,6 @@ is-stream@^2.0.0:
resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-is-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz"
- integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
-
is-string@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz"
@@ -4518,11 +4468,6 @@ jackspeak@^3.1.2:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
-jiti@^1.18.2:
- version "1.18.2"
- resolved "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz"
- integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==
-
jiti@^2.6.1:
version "2.6.1"
resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz"
@@ -4730,34 +4675,23 @@ lightningcss@1.30.2:
lightningcss-win32-arm64-msvc "1.30.2"
lightningcss-win32-x64-msvc "1.30.2"
-lilconfig@^2.0.5, lilconfig@^2.1.0, lilconfig@2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz"
- integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
-
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-lint-staged@^13.2.3:
- version "13.2.3"
- resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.3.tgz"
- integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==
+lint-staged@^16.2.7:
+ version "16.2.7"
+ resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz"
+ integrity sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==
dependencies:
- chalk "5.2.0"
- cli-truncate "^3.1.0"
- commander "^10.0.0"
- debug "^4.3.4"
- execa "^7.0.0"
- lilconfig "2.1.0"
- listr2 "^5.0.7"
- micromatch "^4.0.5"
- normalize-path "^3.0.0"
- object-inspect "^1.12.3"
+ commander "^14.0.2"
+ listr2 "^9.0.5"
+ micromatch "^4.0.8"
+ nano-spawn "^2.0.0"
pidtree "^0.6.0"
- string-argv "^0.3.1"
- yaml "^2.2.2"
+ string-argv "^0.3.2"
+ yaml "^2.8.1"
listr2@^3.8.3:
version "3.14.0"
@@ -4773,19 +4707,17 @@ listr2@^3.8.3:
through "^2.3.8"
wrap-ansi "^7.0.0"
-listr2@^5.0.7:
- version "5.0.8"
- resolved "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz"
- integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==
+listr2@^9.0.5:
+ version "9.0.5"
+ resolved "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz"
+ integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==
dependencies:
- cli-truncate "^2.1.0"
- colorette "^2.0.19"
- log-update "^4.0.0"
- p-map "^4.0.0"
- rfdc "^1.3.0"
- rxjs "^7.8.0"
- through "^2.3.8"
- wrap-ansi "^7.0.0"
+ cli-truncate "^5.0.0"
+ colorette "^2.0.20"
+ eventemitter3 "^5.0.1"
+ log-update "^6.1.0"
+ rfdc "^1.4.1"
+ wrap-ansi "^9.0.0"
locate-path@^6.0.0:
version "6.0.0"
@@ -4832,6 +4764,17 @@ log-update@^4.0.0:
slice-ansi "^4.0.0"
wrap-ansi "^6.2.0"
+log-update@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz"
+ integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==
+ dependencies:
+ ansi-escapes "^7.0.0"
+ cli-cursor "^5.0.0"
+ slice-ansi "^7.1.0"
+ strip-ansi "^7.1.0"
+ wrap-ansi "^9.0.0"
+
loose-envify@^1.0.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
@@ -4903,7 +4846,7 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-micromatch@^4.0.5, micromatch@^4.0.8:
+micromatch@^4.0.8:
version "4.0.8"
resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
@@ -4928,10 +4871,10 @@ mimic-fn@^2.1.0:
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-mimic-fn@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz"
- integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+mimic-function@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz"
+ integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==
min-indent@^1.0.0:
version "1.0.1"
@@ -4950,7 +4893,7 @@ minim@~0.23.8:
dependencies:
lodash "^4.15.0"
-minimatch@^3.0.4, minimatch@^3.1.2:
+minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -4998,14 +4941,10 @@ ms@^2.1.1, ms@2.1.2:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-mz@^2.7.0:
- version "2.7.0"
- resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"
- integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
- dependencies:
- any-promise "^1.0.0"
- object-assign "^4.0.1"
- thenify-all "^1.0.0"
+nano-spawn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz"
+ integrity sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==
nanoid@^3.3.11:
version "3.3.11"
@@ -5050,10 +4989,10 @@ node-gyp-build@^4.8.0, node-gyp-build@^4.8.2, node-gyp-build@^4.8.4:
resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz"
integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==
-node-releases@^2.0.21:
- version "2.0.25"
- resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz"
- integrity sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==
+node-releases@^2.0.27:
+ version "2.0.27"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz"
+ integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
nopt@1.0.10:
version "1.0.10"
@@ -5079,24 +5018,12 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
-npm-run-path@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz"
- integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
- dependencies:
- path-key "^4.0.0"
-
-object-assign@^4.0.1, object-assign@^4.1.1:
+object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-object-hash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
- integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
-
-object-inspect@^1.12.3, object-inspect@^1.13.3, object-inspect@^1.13.4:
+object-inspect@^1.13.3, object-inspect@^1.13.4:
version "1.13.4"
resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz"
integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
@@ -5148,7 +5075,7 @@ object.values@^1.1.6, object.values@^1.2.1:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
+once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -5162,12 +5089,12 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
-onetime@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz"
- integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+onetime@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz"
+ integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==
dependencies:
- mimic-fn "^4.0.0"
+ mimic-function "^5.0.0"
openapi-path-templating@^2.2.1:
version "2.2.1"
@@ -5280,21 +5207,11 @@ path-exists@^4.0.0:
resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-path-key@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz"
- integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
-
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
@@ -5328,7 +5245,7 @@ performance-now@^2.1.0:
resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-picocolors@^1.0.0, picocolors@^1.1.1:
+picocolors@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
@@ -5348,66 +5265,22 @@ pidtree@^0.6.0:
resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz"
integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
-pify@^2.2.0, pify@^2.3.0:
+pify@^2.2.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
-pirates@^4.0.1:
- version "4.0.5"
- resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz"
- integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
-
possible-typed-array-names@^1.0.0:
version "1.1.0"
resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz"
integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
-postcss-import@^15.1.0:
- version "15.1.0"
- resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz"
- integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
- dependencies:
- postcss-value-parser "^4.0.0"
- read-cache "^1.0.0"
- resolve "^1.1.7"
-
-postcss-js@^4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz"
- integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
- dependencies:
- camelcase-css "^2.0.1"
-
-postcss-load-config@^4.0.1:
- version "4.0.1"
- resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz"
- integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==
- dependencies:
- lilconfig "^2.0.5"
- yaml "^2.1.1"
-
-postcss-nested@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz"
- integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==
- dependencies:
- postcss-selector-parser "^6.0.11"
-
-postcss-selector-parser@^6.0.11:
- version "6.0.11"
- resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz"
- integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
- dependencies:
- cssesc "^3.0.0"
- util-deprecate "^1.0.2"
-
-postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.6:
+postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.6:
version "8.5.6"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
@@ -5421,10 +5294,17 @@ prelude-ls@^1.2.1:
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-prettier@^3.0.0, prettier@^3.6.2:
- version "3.6.2"
- resolved "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz"
- integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
+prettier-linter-helpers@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+ integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ dependencies:
+ fast-diff "^1.1.2"
+
+prettier@^3.0.0, prettier@^3.7.1:
+ version "3.7.1"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-3.7.1.tgz"
+ integrity sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ==
pretty-bytes@^5.6.0:
version "5.6.0"
@@ -5624,20 +5504,13 @@ react-refresh@^0.18.0:
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz"
integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==
-react-router-dom@^6.9.0:
- version "6.10.0"
- resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz"
- integrity sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==
+react-router@^7.9.6:
+ version "7.9.6"
+ resolved "https://registry.npmjs.org/react-router/-/react-router-7.9.6.tgz"
+ integrity sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==
dependencies:
- "@remix-run/router" "1.5.0"
- react-router "6.10.0"
-
-react-router@6.10.0:
- version "6.10.0"
- resolved "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz"
- integrity sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==
- dependencies:
- "@remix-run/router" "1.5.0"
+ cookie "^1.0.1"
+ set-cookie-parser "^2.6.0"
react-select@^5.10.2:
version "5.10.2"
@@ -5681,13 +5554,6 @@ react-transition-group@^4.3.0:
resolved "https://registry.npmjs.org/react/-/react-19.2.0.tgz"
integrity sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==
-read-cache@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
- integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
- dependencies:
- pify "^2.3.0"
-
readdirp@^4.0.1:
version "4.1.2"
resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz"
@@ -5805,7 +5671,7 @@ resolve-from@^4.0.0:
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.8:
+resolve@^1.19.0, resolve@^1.22.1, resolve@^1.22.8:
version "1.22.11"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz"
integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
@@ -5831,6 +5697,14 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
+restore-cursor@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz"
+ integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==
+ dependencies:
+ onetime "^7.0.0"
+ signal-exit "^4.1.0"
+
ret@^0.2.0:
version "0.2.2"
resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz"
@@ -5841,10 +5715,10 @@ reusify@^1.0.4:
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rfdc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz"
- integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
+rfdc@^1.3.0, rfdc@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz"
+ integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
rollup@^4.43.0:
version "4.52.5"
@@ -5884,7 +5758,7 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
-rxjs@^7.5.1, rxjs@^7.8.0:
+rxjs@^7.5.1:
version "7.8.1"
resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz"
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
@@ -5968,6 +5842,11 @@ serialize-error@^8.1.0:
dependencies:
type-fest "^0.20.2"
+set-cookie-parser@^2.6.0:
+ version "2.7.2"
+ resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz"
+ integrity sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==
+
set-function-length@^1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
@@ -6065,7 +5944,7 @@ side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
-signal-exit@^3.0.2, signal-exit@^3.0.7:
+signal-exit@^3.0.2:
version "3.0.7"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -6075,6 +5954,11 @@ signal-exit@^4.0.1:
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+signal-exit@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
@@ -6098,13 +5982,13 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
-slice-ansi@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz"
- integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
+slice-ansi@^7.1.0:
+ version "7.1.2"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz"
+ integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==
dependencies:
- ansi-styles "^6.0.0"
- is-fullwidth-code-point "^4.0.0"
+ ansi-styles "^6.2.1"
+ is-fullwidth-code-point "^5.0.0"
source-map-js@^1.2.1:
version "1.2.1"
@@ -6171,7 +6055,7 @@ storybook@10.0.8:
semver "^7.6.2"
ws "^8.18.0"
-string-argv@^0.3.1:
+string-argv@^0.3.2:
version "0.3.2"
resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
@@ -6194,15 +6078,6 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
-string-width@^5.0.0:
- version "5.1.2"
- resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz"
- integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
- dependencies:
- eastasianwidth "^0.2.0"
- emoji-regex "^9.2.2"
- strip-ansi "^7.0.1"
-
string-width@^5.0.1:
version "5.1.2"
resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz"
@@ -6221,6 +6096,23 @@ string-width@^5.1.2:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
+string-width@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz"
+ integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==
+ dependencies:
+ emoji-regex "^10.3.0"
+ get-east-asian-width "^1.0.0"
+ strip-ansi "^7.1.0"
+
+string-width@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz"
+ integrity sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==
+ dependencies:
+ get-east-asian-width "^1.3.0"
+ strip-ansi "^7.1.0"
+
string.prototype.matchall@^4.0.12:
version "4.0.12"
resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz"
@@ -6301,6 +6193,13 @@ strip-ansi@^7.0.1:
dependencies:
ansi-regex "^6.0.1"
+strip-ansi@^7.1.0:
+ version "7.1.2"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz"
+ integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==
+ dependencies:
+ ansi-regex "^6.0.1"
+
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
@@ -6311,11 +6210,6 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-strip-final-newline@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz"
- integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
-
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz"
@@ -6352,19 +6246,6 @@ stylis@4.2.0:
resolved "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz"
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
-sucrase@^3.32.0:
- version "3.32.0"
- resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz"
- integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.2"
- commander "^4.0.0"
- glob "7.1.6"
- lines-and-columns "^1.1.6"
- mz "^2.7.0"
- pirates "^4.0.1"
- ts-interface-checker "^0.1.9"
-
supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
@@ -6448,6 +6329,13 @@ swagger-ui-react@^5.30.3:
xml-but-prettier "^1.0.1"
zenscroll "^4.0.2"
+synckit@^0.11.7:
+ version "0.11.11"
+ resolved "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz"
+ integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==
+ dependencies:
+ "@pkgr/core" "^0.2.9"
+
tabbable@^6.0.0:
version "6.3.0"
resolved "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz"
@@ -6463,41 +6351,7 @@ tabbable@^6.0.0:
resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.1.tgz"
integrity sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==
-tailwindcss@^3.3.2:
- version "3.3.2"
- resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz"
- integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==
- dependencies:
- "@alloc/quick-lru" "^5.2.0"
- arg "^5.0.2"
- chokidar "^3.5.3"
- didyoumean "^1.2.2"
- dlv "^1.1.3"
- fast-glob "^3.2.12"
- glob-parent "^6.0.2"
- is-glob "^4.0.3"
- jiti "^1.18.2"
- lilconfig "^2.1.0"
- micromatch "^4.0.5"
- normalize-path "^3.0.0"
- object-hash "^3.0.0"
- picocolors "^1.0.0"
- postcss "^8.4.23"
- postcss-import "^15.1.0"
- postcss-js "^4.0.1"
- postcss-load-config "^4.0.1"
- postcss-nested "^6.0.1"
- postcss-selector-parser "^6.0.11"
- postcss-value-parser "^4.2.0"
- resolve "^1.22.2"
- sucrase "^3.32.0"
-
-tailwindcss@^4.1.12:
- version "4.1.17"
- resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz"
- integrity sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==
-
-tailwindcss@4.1.17:
+tailwindcss@^4.1.12, tailwindcss@^4.1.17, tailwindcss@4.1.17:
version "4.1.17"
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz"
integrity sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==
@@ -6507,20 +6361,6 @@ tapable@^2.2.0:
resolved "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz"
integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==
-thenify-all@^1.0.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"
- integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
- dependencies:
- thenify ">= 3.1.0 < 4"
-
-"thenify@>= 3.1.0 < 4":
- version "3.3.1"
- resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"
- integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
- dependencies:
- any-promise "^1.0.0"
-
throttleit@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz"
@@ -6638,11 +6478,6 @@ ts-dedent@^2.0.0, ts-dedent@^2.2.0:
resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz"
integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
-ts-interface-checker@^0.1.9:
- version "0.1.13"
- resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
- integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
-
ts-mixer@^6.0.3, ts-mixer@^6.0.4:
version "6.0.4"
resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz"
@@ -6808,10 +6643,10 @@ untildify@^4.0.0:
resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
-update-browserslist-db@^1.1.3:
- version "1.1.3"
- resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz"
- integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
+update-browserslist-db@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz"
+ integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==
dependencies:
escalade "^3.2.0"
picocolors "^1.1.1"
@@ -6841,12 +6676,7 @@ use-sync-external-store@^1.4.0:
resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz"
integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==
-util-deprecate@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
- integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-
-uuid@*, uuid@^13.0.0:
+uuid@^13.0.0:
version "13.0.0"
resolved "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz"
integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==
@@ -6865,11 +6695,6 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vite-plugin-html-config@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/vite-plugin-html-config/-/vite-plugin-html-config-2.0.2.tgz"
- integrity sha512-g09u0XsmgKyMUIp1RZSyNSkJWvIusaXxw3KylyxU3vkCq7/G8hyemLctT+4IvO42fCPlNySmrNC9g0qSoKmvpw==
-
vite-plugin-static-copy@^3.1.4:
version "3.1.4"
resolved "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-3.1.4.tgz"
@@ -7005,6 +6830,15 @@ wrap-ansi@^8.1.0:
string-width "^5.0.1"
strip-ansi "^7.0.1"
+wrap-ansi@^9.0.0:
+ version "9.0.2"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz"
+ integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==
+ dependencies:
+ ansi-styles "^6.2.1"
+ string-width "^7.0.0"
+ strip-ansi "^7.1.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
@@ -7042,10 +6876,10 @@ yaml@^1.10.0:
resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-yaml@^2.1.1, yaml@^2.2.2:
- version "2.3.1"
- resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz"
- integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==
+yaml@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz"
+ integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==
yauzl@^2.10.0:
version "2.10.0"