This commit is contained in:
AuroraLS3 2022-12-20 17:45:27 +00:00
parent f4bf770b8c
commit 84d0cbfc90
17 changed files with 163 additions and 95 deletions

View File

@ -18,25 +18,25 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.0.0",
"@testing-library/user-event": "^14.4.3",
"axios": "^1.2.0",
"axios": "^1.2.1",
"bootstrap": "^5.2.3",
"datatables.net": "^1.13.1",
"datatables.net-bs5": "^1.12.1",
"datatables.net-responsive-bs5": "^2.4.0",
"highcharts": "^10.3.2",
"i18next": "^22.0.6",
"i18next-chained-backend": "^4.0.1",
"i18next-http-backend": "^2.0.2",
"i18next-localstorage-backend": "^4.0.1",
"i18next": "^22.4.6",
"i18next-chained-backend": "^4.2.0",
"i18next-http-backend": "^2.1.1",
"i18next-localstorage-backend": "^4.1.0",
"masonry-layout": "^4.2.2",
"react": "^17.0.2",
"react-bootstrap-v5": "^1.4.0",
"react-dom": "^17.0.2",
"react-i18next": "^12.0.0",
"react-i18next": "^12.1.1",
"react-mcjsonchat": "^1.0.0",
"react-router-dom": "6",
"react-scripts": "5.0.1",
"sass": "^1.56.1",
"sass": "^1.56.2",
"source-map-explorer": "^2.5.2",
"swagger-ui": "^4.15.5",
"web-vitals": "^3.0.2"

View File

@ -60,7 +60,7 @@ const LoadIn = ({children, duration}) => {
return (
<Transition in={visible} timeout={duration}>
{state => (
<div style={{
<div className={"load-in"} style={{
...defaultStyle,
...transitionStyles[state]
}}>

View File

@ -5,10 +5,22 @@ import Highcharts from "highcharts/highstock";
import NoDataDisplay from "highcharts/modules/no-data-to-display"
import Accessibility from "highcharts/modules/accessibility"
import {useTranslation} from "react-i18next";
import {useMetadata} from "../../hooks/metadataHook";
const LineGraph = ({id, series, legendEnabled, tall, yAxis, selectedRange, extremes, onSetExtremes}) => {
const LineGraph = ({
id,
series,
legendEnabled,
tall,
yAxis,
selectedRange,
extremes,
onSetExtremes,
alreadyOffsetTimezone
}) => {
const {t} = useTranslation()
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
const [graph, setGraph] = useState(undefined);
useEffect(() => {
@ -27,7 +39,9 @@ const LineGraph = ({id, series, legendEnabled, tall, yAxis, selectedRange, extre
},
xAxis: {
events: {
afterSetExtremes: (event) => onSetExtremes(event)
afterSetExtremes: (event) => {
if (onSetExtremes) onSetExtremes(event);
}
}
},
title: {text: ''},
@ -39,9 +53,16 @@ const LineGraph = ({id, series, legendEnabled, tall, yAxis, selectedRange, extre
legend: {
enabled: legendEnabled
},
time: {
timezoneOffset: alreadyOffsetTimezone ? 0 : timeZoneOffsetMinutes
},
series: series
}));
}, [series, graphTheming, id, t, nightModeEnabled, legendEnabled, yAxis, onSetExtremes, setGraph, selectedRange])
}, [series, id, t,
graphTheming, nightModeEnabled, alreadyOffsetTimezone, timeZoneOffsetMinutes,
legendEnabled, yAxis,
onSetExtremes, setGraph, selectedRange]);
useEffect(() => {
if (graph && graph.xAxis && graph.xAxis.length && extremes) {
graph.xAxis[0].setExtremes(extremes.min, extremes.max);

View File

@ -29,7 +29,7 @@ const TimeByTimeGraph = ({data}) => {
}, [data, t, nightModeEnabled])
return (
<LineGraph id="day-by-day-graph" series={series}/>
<LineGraph id="day-by-day-graph" series={series} alreadyOffsetTimezone/>
)
}

View File

@ -7,6 +7,7 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const yAxis = [
{
@ -64,6 +65,7 @@ const yAxis = [
const AllPerformanceGraph = ({id, data, dataSeries}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
const onResize = useCallback(() => {
let chartElement = document.getElementById(id);
@ -170,9 +172,12 @@ const AllPerformanceGraph = ({id, data, dataSeries}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.playersOnline, series.tps, series.cpu, series.ram, series.entities, series.chunks]
});
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t])
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -7,10 +7,12 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const CpuRamPerformanceGraph = ({id, data, dataSeries}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
useEffect(() => {
const spline = 'spline'
@ -82,9 +84,12 @@ const CpuRamPerformanceGraph = ({id, data, dataSeries}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.playersOnline, series.cpu, series.ram]
});
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t])
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -7,10 +7,12 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const DiskPerformanceGraph = ({id, data, dataSeries}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
useEffect(() => {
const zones = {
@ -63,9 +65,12 @@ const DiskPerformanceGraph = ({id, data, dataSeries}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.disk]
});
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t])
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -7,10 +7,12 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const PingGraph = ({id, data}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
useEffect(() => {
const spline = 'spline'
@ -60,9 +62,12 @@ const PingGraph = ({id, data}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.avgPing, series.maxPing, series.minPing]
});
}, [data, graphTheming, nightModeEnabled, id, t])
}, [data, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -7,10 +7,12 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const TpsPerformanceGraph = ({id, data, dataSeries}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
useEffect(() => {
const zones = {
@ -79,9 +81,12 @@ const TpsPerformanceGraph = ({id, data, dataSeries}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.playersOnline, series.tps]
});
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t])
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -7,10 +7,12 @@ import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {withReducedSaturation} from "../../../util/colors";
import Accessibility from "highcharts/modules/accessibility";
import {useMetadata} from "../../../hooks/metadataHook";
const WorldPerformanceGraph = ({id, data, dataSeries}) => {
const {t} = useTranslation();
const {graphTheming, nightModeEnabled} = useTheme();
const {timeZoneOffsetMinutes} = useMetadata();
useEffect(() => {
const spline = 'spline'
@ -81,9 +83,12 @@ const WorldPerformanceGraph = ({id, data, dataSeries}) => {
legend: {
enabled: true
},
time: {
timezoneOffset: timeZoneOffsetMinutes
},
series: [series.playersOnline, series.entities, series.chunks]
});
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t])
}, [data, dataSeries, graphTheming, nightModeEnabled, id, t, timeZoneOffsetMinutes])
return (
<div className="chart-area" style={{height: "450px"}} id={id}>

View File

@ -48,7 +48,7 @@ const RedirectPlaceholder = () => {
const MainPageRedirect = () => {
const {authLoaded, authRequired, loggedIn, user} = useAuth();
const {isProxy, serverName} = useMetadata();
const {isProxy, serverName, serverUUID} = useMetadata();
if (staticSite) {
const urlParams = new URLSearchParams(window.location.search);
@ -58,15 +58,17 @@ const MainPageRedirect = () => {
}
}
if (!authLoaded || !serverName) {
if (!authLoaded || !serverName || !serverUUID) {
return <RedirectPlaceholder/>
}
const server = staticSite ? serverUUID : encodeURIComponent(serverName);
const redirectBasedOnPermissions = () => {
if (isProxy && user.permissions.includes('page.network')) {
return (<Navigate to={"/network/overview"} replace={true}/>)
} else if (user.permissions.includes('page.server')) {
return (<Navigate to={"/server/" + encodeURIComponent(serverName) + "/overview"} replace={true}/>)
return (<Navigate to={"/server/" + server + "/overview"}
replace={true}/>)
} else if (user.permissions.includes('page.player.other')) {
return (<Navigate to={"/players"} replace={true}/>)
} else if (user.permissions.includes('page.player.self')) {
@ -79,8 +81,9 @@ const MainPageRedirect = () => {
} else if (authRequired && loggedIn) {
return redirectBasedOnPermissions();
} else {
return (<Navigate to={isProxy ? "/network/overview" : "/server/" + encodeURIComponent(serverName) + "/overview"}
replace={true}/>)
return (<Navigate
to={isProxy ? "/network/overview" : "/server/" + server + "/overview"}
replace={true}/>)
}
}

View File

@ -17,7 +17,7 @@ export const useDataRequest = (fetchMethod, parameters) => {
const handleResponse = (json, error, skipOldData, timeout) => {
if (json) {
const timestamp = json.timestamp;
if (staticSite || timestamp) {
if (!staticSite && timestamp) {
// Data has timestamp, the data may come from cache
const acceptedTimestamp = timestamp + (refreshBarrierMs ? refreshBarrierMs : 15000);
if (acceptedTimestamp < updateRequested) {

View File

@ -70,7 +70,8 @@ export const doSomeRequest = async (url, statusOptions, axiosFunction) => {
}
export const standard200option = {status: 200, get: response => response.data}
const exported404options = {status: 404, get: () => 'Data not yet exported'}
export const doGetRequest = async url => {
return doSomeGetRequest(url, [standard200option])
return doSomeGetRequest(url, staticSite ? [standard200option, exported404options] : [standard200option])
}

View File

@ -143,7 +143,10 @@ const ServerPage = () => {
if (error) return <ErrorPage error={error}/>;
if (identityLoadingError) {
if (identityLoadingError.status === 404) return <ErrorPage
error={{title: t('html.error.404NotFound'), message: t('html.error.serverNotSeen')}}/>
error={{
title: t('html.error.404NotFound'),
message: t(staticSite ? 'html.error.serverNotExported' : 'html.error.serverNotSeen')
}}/>
return <ErrorPage error={identityLoadingError}/>
}

View File

@ -2,17 +2,22 @@ import React from 'react';
import {Col, Row} from "react-bootstrap-v5";
import JoinAddressGroupCard from "../../components/cards/server/graphs/JoinAddressGroupCard";
import JoinAddressGraphCard from "../../components/cards/server/graphs/JoinAddressGraphCard";
import LoadIn from "../../components/animation/LoadIn";
const NetworkJoinAddresses = () => {
return (
<Row>
<Col lg={8}>
<JoinAddressGraphCard identifier={undefined}/>
</Col>
<Col lg={4}>
<JoinAddressGroupCard identifier={undefined}/>
</Col>
</Row>
<LoadIn>
<section className={"network_join_addresses"}>
<Row>
<Col lg={8}>
<JoinAddressGraphCard identifier={undefined}/>
</Col>
<Col lg={4}>
<JoinAddressGroupCard identifier={undefined}/>
</Col>
</Row>
</section>
</LoadIn>
)
};

View File

@ -3,18 +3,23 @@ import {Col, Row} from "react-bootstrap-v5";
import JoinAddressGroupCard from "../../components/cards/server/graphs/JoinAddressGroupCard";
import JoinAddressGraphCard from "../../components/cards/server/graphs/JoinAddressGraphCard";
import {useParams} from "react-router-dom";
import LoadIn from "../../components/animation/LoadIn";
const ServerJoinAddresses = () => {
const {identifier} = useParams();
return (
<Row>
<Col lg={8}>
<JoinAddressGraphCard identifier={identifier}/>
</Col>
<Col lg={4}>
<JoinAddressGroupCard identifier={identifier}/>
</Col>
</Row>
<LoadIn>
<section className={"server_join_addresses"}>
<Row>
<Col lg={8}>
<JoinAddressGraphCard identifier={identifier}/>
</Col>
<Col lg={4}>
<JoinAddressGroupCard identifier={identifier}/>
</Col>
</Row>
</section>
</LoadIn>
)
};

View File

@ -1022,12 +1022,12 @@
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.19.4", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.20.1"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9"
integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.20.6"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3"
integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==
dependencies:
regenerator-runtime "^0.13.10"
regenerator-runtime "^0.13.11"
"@babel/template@^7.16.7", "@babel/template@^7.3.3":
version "7.16.7"
@ -1525,10 +1525,10 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
"@remix-run/router@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.4.tgz#cbfbec6735711e7c2fc93b9b40adf70ef5a39990"
integrity sha512-gTL8H5USTAKOyVA4xczzDJnC3HMssdFa3tRlwBicXynx9XfiXwneHnYQogwSKpdCkjXISrEKSTtX62rLpNEVQg==
"@remix-run/router@1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.5.tgz#d5c65626add4c3c185a89aa5bd38b1e42daec075"
integrity sha512-my0Mycd+jruq/1lQuO5LBB6WTlL/e8DTCYWp44DfMTDcXz8DcTlgF0ISaLsGewt+ctHN+yA8xMq3q/N7uWJPug==
"@restart/context@^2.1.4":
version "2.1.4"
@ -2662,10 +2662,10 @@ axe-core@^4.3.5:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
axios@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.0.tgz#1cb65bd75162c70e9f8d118a905126c4a201d383"
integrity sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==
axios@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a"
integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@ -5070,33 +5070,33 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
i18next-chained-backend@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/i18next-chained-backend/-/i18next-chained-backend-4.0.1.tgz#2a0476155678152d3463d03b96981d3e2078591e"
integrity sha512-HCRBCN0IT7+M9FdbtBQRBH0E6htYIG8AjE3VC7WyP1WZq/qabG0SKXTYbHzfO78fcFWo1g2iFztV+Lfbre2HMA==
i18next-chained-backend@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/i18next-chained-backend/-/i18next-chained-backend-4.2.0.tgz#8d2ccba6f2faca14d2bc5023ba61c759215b99a9"
integrity sha512-p3qhv6GMouhpcFPnOBqSDsQyVrwZu+PKr+kXaEAGE+w9O39t4pbpBsFYjxh4Nvhn8MUEXstaDx4ZuQvsNlI5fg==
dependencies:
"@babel/runtime" "^7.19.4"
i18next-http-backend@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/i18next-http-backend/-/i18next-http-backend-2.0.2.tgz#83fa92c12b0b6e90f1969d904b81855d57b1db1c"
integrity sha512-TFiIqitZEc8+jyca31EW5ef5PjUYtUGGfL8c8FJwiiHguq5OQTqoR3mxpKqaCPiikg+cxSgXtNA2gZPCu0aryQ==
i18next-http-backend@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/i18next-http-backend/-/i18next-http-backend-2.1.1.tgz#72a21d61c2e96eea9ad45ba1b9dd0090e119709a"
integrity sha512-jByfUCDVgQ8+/Wens7queQhYYvMcGTW/lR4IJJNEDDXnmqjLrwi8ubXKpmp76/JIWEZHffNdWqnxFJcTVGeaOw==
dependencies:
cross-fetch "3.1.5"
i18next-localstorage-backend@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/i18next-localstorage-backend/-/i18next-localstorage-backend-4.0.1.tgz#ddd1bf02f2a41258ced6d10734badf042aea9f6c"
integrity sha512-hicBcvYOqoKmfbTHcabKFaFT1DWw/rJOw5zBmpuSJUAnJSlV4dI/Y2LRXXhNLM5fZL6Kb/iY5DeWucgy6q3Utw==
i18next-localstorage-backend@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/i18next-localstorage-backend/-/i18next-localstorage-backend-4.1.0.tgz#b2e99eb18312654b3b13b34bb25331fbe1d3b380"
integrity sha512-lxcuww2QSIvu3Ev5fiysTrAjNzWwhVh2u+/ZJCkxIg9Eo9KL5A8qQwmujlsdADs4YjfjxPm/GaivIYxcqWqKgg==
dependencies:
"@babel/runtime" "^7.19.4"
"@babel/runtime" "^7.20.6"
i18next@^22.0.6:
version "22.0.6"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.0.6.tgz#d7029912f8aa74ff295c0d9afd1b7dea45859b49"
integrity sha512-RlreNGoPIdDP4QG+qSA9PxZKGwlzmcozbI9ObI6+OyUa/Rp0EjZZA9ubyBjw887zVNZsC+7FI3sXX8oiTzAfig==
i18next@^22.4.6:
version "22.4.6"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.4.6.tgz#876352c3ba81bdfedc38eeda124e2bbd05f46988"
integrity sha512-9Tm1ezxWyzV+306CIDMBbYBitC1jedQyYuuLtIv7oxjp2ohh8eyxP9xytIf+2bbQfhH784IQKPSYp+Zq9+YSbw==
dependencies:
"@babel/runtime" "^7.17.2"
"@babel/runtime" "^7.20.6"
iconv-lite@0.4.24:
version "0.4.24"
@ -7728,10 +7728,10 @@ react-error-overlay@^6.0.11:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb"
integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==
react-i18next@^12.0.0:
version "12.0.0"
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-12.0.0.tgz#634015a2c035779c5736ae4c2e5c34c1659753b1"
integrity sha512-/O7N6aIEAl1FaWZBNvhdIo9itvF/MO/nRKr9pYqRc9LhuC1u21SlfwpiYQqvaeNSEW3g3qUXLREOWMt+gxrWbg==
react-i18next@^12.1.1:
version "12.1.1"
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-12.1.1.tgz#2626cdbfe6bcb76ef833861c0184a5c4e5e3c089"
integrity sha512-mFdieOI0LDy84q3JuZU6Aou1DoWW2fhapcTGeBS8+vWSJuViuoCLQAMYSb0QoHhXS8B0WKUOPpx4cffAP7r/aA==
dependencies:
"@babel/runtime" "^7.14.5"
html-parse-stringify "^3.0.1"
@ -7805,19 +7805,19 @@ react-refresh@^0.11.0:
integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==
react-router-dom@6:
version "6.4.4"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.4.tgz#4271ec66333c440d1754477e4e6a3a5acb5487f8"
integrity sha512-0Axverhw5d+4SBhLqLpzPhNkmv7gahUwlUVIOrRLGJ4/uwt30JVajVJXqv2Qr/LCwyvHhQc7YyK1Do8a9Jj7qA==
version "6.4.5"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.5.tgz#4fdb12efef4f3848c693a76afbeaed1f6ca02047"
integrity sha512-a7HsgikBR0wNfroBHcZUCd9+mLRqZS8R5U1Z1mzLWxFXEkUT3vR1XXmSIVoVpxVX8Bar0nQYYYc9Yipq8dWwAA==
dependencies:
"@remix-run/router" "1.0.4"
react-router "6.4.4"
"@remix-run/router" "1.0.5"
react-router "6.4.5"
react-router@6.4.4:
version "6.4.4"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.4.tgz#8e7794f55ccc7050cb03937c87ff3720ce9f8b60"
integrity sha512-SA6tSrUCRfuLWeYsTJDuriRqfFIsrSvuH7SqAJHegx9ZgxadE119rU8oOX/rG5FYEthpdEaEljdjDlnBxvfr+Q==
react-router@6.4.5:
version "6.4.5"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.5.tgz#73f382af2c8b9a86d74e761a7c5fc3ce7cb0024d"
integrity sha512-1RQJ8bM70YEumHIlNUYc6mFfUDoWa5EgPDenK/fq0bxD8DYpQUi/S6Zoft+9DBrh2xmtg92N5HMAJgGWDhKJ5Q==
dependencies:
"@remix-run/router" "1.0.4"
"@remix-run/router" "1.0.5"
react-scripts@5.0.1:
version "5.0.1"
@ -7980,10 +7980,10 @@ regenerate@^1.4.2:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
regenerator-runtime@^0.13.10:
version "0.13.10"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee"
integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==
regenerator-runtime@^0.13.11:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9:
version "0.13.9"
@ -8227,10 +8227,10 @@ sass-loader@^12.3.0:
klona "^2.0.4"
neo-async "^2.6.2"
sass@^1.56.1:
version "1.56.1"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7"
integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==
sass@^1.56.2:
version "1.56.2"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.2.tgz#9433b345ab3872996c82a53a58c014fd244fd095"
integrity sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"