diff --git a/.github/workflows/cd-workflow.yml b/.github/workflows/cd-workflow.yml
index 538c84e0..72102772 100644
--- a/.github/workflows/cd-workflow.yml
+++ b/.github/workflows/cd-workflow.yml
@@ -55,7 +55,7 @@ jobs:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install project dependencies (via cache)
- run: yarn --prefer-offline
+ run: yarn --frozen-lockfile --prefer-offline --ignore-optional
- name: Build application bundle
run: yarn build
- name: Deploy
diff --git a/.github/workflows/lint-workflow.yml b/.github/workflows/lint-workflow.yml
index 82bf5ce8..ee887e1d 100644
--- a/.github/workflows/lint-workflow.yml
+++ b/.github/workflows/lint-workflow.yml
@@ -21,6 +21,6 @@ jobs:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install project dependencies (via cache)
- run: yarn --prefer-offline
+ run: yarn --frozen-lockfile --prefer-offline --ignore-optional
- name: Run ESLint
run: npx eslint src --ext .js,.jsx,.ts,.tsx --exit-on-fatal-error
diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml
index 1cac379c..d12d54c5 100644
--- a/.github/workflows/test-workflow.yml
+++ b/.github/workflows/test-workflow.yml
@@ -31,7 +31,7 @@ jobs:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install project dependencies (via cache)
- run: yarn --prefer-offline
+ run: yarn --frozen-lockfile --prefer-offline --ignore-optional
jest:
needs: install
@@ -54,7 +54,7 @@ jobs:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install project dependencies (via cache)
- run: yarn --prefer-offline
+ run: yarn --frozen-lockfile --prefer-offline --ignore-optional
- name: Run Jest Tests
run: yarn jest
@@ -62,7 +62,7 @@ jobs:
needs: install
runs-on: ubuntu-latest
container:
- image: cypress/browsers:node-20.5.0-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1
+ image: cypress/browsers:node-20.14.0-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1
options: --user 1001
strategy:
fail-fast: false
@@ -102,7 +102,7 @@ jobs:
# Starts web server for E2E tests - replace with your own server invocation
# https://docs.cypress.io/guides/continuous-integration/introduction#Boot-your-server
start: yarn start
- wait-on: 'http://localhost:3000' # Waits for above
+ wait-on: 'http://127.0.0.1:3000' # Waits for above
browser: chrome
# Records to Cypress Cloud
# https://docs.cypress.io/guides/cloud/projects#Set-up-a-project-to-record
@@ -111,6 +111,7 @@ jobs:
spec: cypress/e2e/${{ matrix.e2e }}
parallel: false # Don't use Cypress in-built parallelization
install: true
+ install-command: yarn --frozen-lockfile --prefer-offline --ignore-optional
cache-key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
env:
# For recording and parallelization to work you must set your CYPRESS_RECORD_KEY
diff --git a/.tool-versions b/.tool-versions
index da05de7b..0751e80c 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1,3 +1,3 @@
# MUST match .node-version
-nodejs 20.5.1
-yarn 1.22.19
+nodejs 20.14.0
+yarn 1.22.22
diff --git a/README.md b/README.md
index 9701f339..12e6421a 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ If you wish to maintain + deploy your own version of PagerDuty Live, we recommen
#### Local Development
-1. Install [NodeJS v20.5.1](https://nodejs.org/en/blog/release/v20.5.1/) via [`asdf install`](https://github.com/asdf-vm/asdf) / [`nvm`](https://github.com/nvm-sh/nvm)
+1. Install [NodeJS v20.14.0](https://nodejs.org/en/blog/release/v20.14.0/) via [`asdf install`](https://github.com/asdf-vm/asdf) / [`nvm`](https://github.com/nvm-sh/nvm)
2. `$ git clone` repo to desired destination and `$ cd pd-live-react` into directory
diff --git a/cypress.config.js b/cypress.config.js
index 5be05f0c..78b83e79 100644
--- a/cypress.config.js
+++ b/cypress.config.js
@@ -20,7 +20,7 @@ module.exports = defineConfig({
config.env.PD_USER_TOKEN = process.env.VITE_PD_USER_TOKEN;
return config;
},
- baseUrl: 'http://localhost:3000/pd-live-react',
+ baseUrl: 'http://127.0.0.1:3000/pd-live-react',
specPattern: 'cypress/e2e/**/*.spec.{js,ts,jsx,tsx}',
testIsolation: true,
},
diff --git a/cypress/e2e/Search/search.spec.js b/cypress/e2e/Search/search.spec.js
index 900df9ac..41b63d7e 100644
--- a/cypress/e2e/Search/search.spec.js
+++ b/cypress/e2e/Search/search.spec.js
@@ -113,4 +113,12 @@ describe('Search Incidents', { failFast: { enabled: true } }, () => {
cy.get('#service-filter-icon').realHover();
cy.get('button[aria-label="Clear Filter"]').filter(':visible').click();
});
+
+ it('Column filtering on Service column for `zzzzzz` returns no incidents and clear filters button', () => {
+ cy.get('#service-filter-icon').realHover();
+ cy.get('input[placeholder="Filter"]').filter(':visible').click().type('zzzzzz');
+ cy.get('.empty-incidents-badge').should('be.visible');
+ cy.get('#clear-filters-button').filter(':visible').click();
+ waitForIncidentTable();
+ });
});
diff --git a/cypress/e2e/app.spec.js b/cypress/e2e/app.spec.js
index 92063b85..bd41e8a8 100644
--- a/cypress/e2e/app.spec.js
+++ b/cypress/e2e/app.spec.js
@@ -112,4 +112,14 @@ describe('PagerDuty Live', { failFast: { enabled: true } }, () => {
cy.get('iframe[title="TestExtra"]');
// would need to enable cross-domain iframe javascript access to test further
});
+
+ it('Application correctly renders the catastrophe modal', () => {
+ cy
+ .window()
+ .its('store')
+ .invoke('dispatch', { type: 'CATASTROPHE' });
+
+ cy.get('header').contains('Catastrophic Error');
+ cy.get('p').contains('The application will restart');
+ });
});
diff --git a/package.json b/package.json
index dbdbee68..1b359cd1 100644
--- a/package.json
+++ b/package.json
@@ -1,18 +1,19 @@
{
"name": "pd-live-react",
"homepage": "https://pagerduty.github.io/pd-live-react",
- "version": "0.12.2-beta.0",
+ "version": "0.13.0-beta.0",
"private": true,
"dependencies": {
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.0",
- "@datadog/browser-rum": "^4.47.0",
+ "@datadog/browser-rum": "^5.14.0",
+ "@datadog/datadog-ci": "^2.37.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.5.1",
- "@fortawesome/free-solid-svg-icons": "^6.4.2",
+ "@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@pagerduty/pdjs": "^2.2.3",
"@types/jest": "^29.5.12",
@@ -37,16 +38,17 @@
"moment": "^2.29.4",
"pretty-print-error": "^1.1.1",
"react": "^18",
- "react-bootstrap": "^2.9.1",
+ "react-bootstrap": "^2.10.2",
"react-contextmenu": "^2.14.0",
"react-datepicker": "^4.21.0",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^18",
+ "react-error-boundary": "^4.0.13",
"react-i18next": "^13.2.0",
- "react-icons": "^4.9.0",
+ "react-icons": "^5.2.1",
"react-minimal-pie-chart": "^8.4.0",
- "react-redux": "^8.1.2",
+ "react-redux": "^9.1.2",
"react-select": "^5.7.7",
"react-table": "^7.8.0",
"react-window": "^1.8.8",
@@ -61,6 +63,7 @@
"scripts": {
"start": "vite",
"build": "npx genversion src/config/version.js --semi --es6 && vite build",
+ "sourcemaps": "datadog-ci sourcemaps upload build --service=pd-live-react --release-version=$(node -e 'console.log(require(__dirname + `/package.json`).version)') --project-path=./ --minified-path-prefix=/pd-live-react/",
"genversion": "npx genversion src/config/version.js --semi --es6",
"jest": "npx jest",
"cypress:open": "npx cypress open --browser chrome --e2e",
@@ -99,7 +102,7 @@
"@babel/eslint-parser": "^7.22.10",
"@babel/preset-env": "^7.22.10",
"@babel/preset-react": "^7.22.5",
- "@cypress/react": "^8.0.0",
+ "@cypress/react": "^8.0.2",
"@faker-js/faker": "^8.0.2",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.1.4",
@@ -142,12 +145,12 @@
"prettier-eslint-cli": "^8.0.1",
"redux-mock-store": "^1.5.4",
"redux-saga-test-plan": "^4.0.6",
- "sass": "^1.66.1",
+ "sass": "^1.77.5",
"string.prototype.replaceall": "^1.0.6",
- "vite": "^4.5.2",
+ "vite": "^4.5.3",
"vite-plugin-environment": "^1.1.3",
"vite-plugin-eslint": "^1.8.1",
- "vite-plugin-svgr": "^3.2.0",
+ "vite-plugin-svgr": "^4.2.0",
"wait-on": "^7.2.0",
"yarn-audit-fix": "^10.0.5"
}
diff --git a/src/App.jsx b/src/App.jsx
index f6f911e4..b2e494c2 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -1,5 +1,5 @@
import React, {
- useEffect, useRef,
+ useEffect, useMemo, useState,
} from 'react';
import {
useSelector, useDispatch,
@@ -12,12 +12,19 @@ import {
HTML5Backend,
} from 'react-dnd-html5-backend';
+import {
+ ErrorBoundary,
+} from 'react-error-boundary';
+
+import RealUserMonitoring from 'src/config/monitoring';
+
import {
Box, Flex,
} from '@chakra-ui/react';
import moment from 'moment/min/moment-with-locales';
+import CatastropheModal from 'src/components/CatastropheModal/CatastropheModal';
import AuthComponent from 'src/components/Auth/AuthComponent';
import UnauthorizedModalComponent from 'src/components/UnauthorizedModal/UnauthorizedModalComponent';
import DisclaimerModalComponent from 'src/components/DisclaimerModal/DisclaimerModalComponent';
@@ -40,11 +47,12 @@ import {
} from 'src/redux/extensions/actions';
import {
getIncidentsAsync as getIncidentsAsyncConnected,
- // refreshIncidentsAsync as refreshIncidentsAsyncConnected,
} from 'src/redux/incidents/actions';
import {
- getLogEntriesAsync as getLogEntriesAsyncConnected,
- cleanRecentLogEntriesAsync as cleanRecentLogEntriesAsyncConnected,
+ START_LOG_ENTRIES_POLLING,
+ STOP_LOG_ENTRIES_POLLING,
+ START_CLEAN_RECENT_LOG_ENTRIES_POLLING,
+ STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING,
} from 'src/redux/log_entries/actions';
import {
getPrioritiesAsync as getPrioritiesAsyncConnected,
@@ -56,63 +64,61 @@ import {
getResponsePlaysAsync as getResponsePlaysAsyncConnected,
} from 'src/redux/response_plays/actions';
import {
- checkConnectionStatus as checkConnectionStatusConnected,
- updateQueueStats as updateQueueStatsConnected,
- checkAbilities as checkAbilitiesConnected,
+ START_CONNECTION_STATUS_POLLING,
+ START_ABILITIES_POLLING,
+ STOP_ABILITIES_POLLING,
+ START_QUEUE_STATS_POLLING,
+ START_OAUTH_REFRESH_POLLING,
+ STOP_OAUTH_REFRESH_POLLING,
+ CATASTROPHE,
} from 'src/redux/connection/actions';
import {
startMonitoring as startMonitoringConnected,
} from 'src/redux/monitoring/actions';
import {
- getLimiterStats,
-} from 'src/util/pd-api-wrapper';
-
-import {
+ PD_USER_TOKEN,
PD_OAUTH_CLIENT_ID,
PD_OAUTH_CLIENT_SECRET,
- PD_REQUIRED_ABILITY,
- LOG_ENTRIES_POLLING_INTERVAL_SECONDS,
- // TODO: Implement log entries clearing
- // LOG_ENTRIES_CLEARING_INTERVAL_SECONDS,
- DEBUG_DISABLE_POLLING,
} from 'src/config/constants';
import 'src/App.scss';
import 'moment/min/locales.min';
const App = () => {
- // Verify if session token is present
- const token = sessionStorage.getItem('pd_access_token');
-
const dispatch = useDispatch();
const startMonitoring = () => dispatch(startMonitoringConnected());
const userAuthorize = () => dispatch(userAuthorizeConnected());
- const checkAbilities = () => dispatch(checkAbilitiesConnected());
- const checkConnectionStatus = () => dispatch(checkConnectionStatusConnected());
- const updateQueueStats = (queueStats) => dispatch(updateQueueStatsConnected(queueStats));
const getExtensionsAsync = () => dispatch(getExtensionsAsyncConnected());
const getPrioritiesAsync = () => dispatch(getPrioritiesAsyncConnected());
const getResponsePlaysAsync = () => dispatch(getResponsePlaysAsyncConnected());
- const getLogEntriesAsync = (since) => dispatch(getLogEntriesAsyncConnected(since));
- const cleanRecentLogEntriesAsync = () => dispatch(cleanRecentLogEntriesAsyncConnected());
const getIncidentsAsync = () => dispatch(getIncidentsAsyncConnected());
+ const dispatchCatastrophe = (connectionStatusMessage) => dispatch({
+ type: CATASTROPHE,
+ connectionStatusMessage,
+ });
+
const darkMode = useSelector((state) => state.settings.darkMode);
- const abilities = useSelector((state) => state.connection.abilities);
- const {
- fetchingIncidents, lastFetchDate,
- } = useSelector((state) => state.incidents);
+
const {
userAuthorized, userAcceptedDisclaimer, currentUserLocale,
} = useSelector(
(state) => state.users,
);
+
const {
- fetchingData: fetchingLogEntries, latestLogEntryDate,
- } = useSelector(
- (state) => state.logEntries,
- );
+ status: connectionStatus,
+ connectionStatusMessage,
+ } = useSelector((state) => state.connection);
+ const [catastrophe, setCatastrophe] = useState(false);
+ useEffect(() => {
+ if (connectionStatus === CATASTROPHE) {
+ setCatastrophe(true);
+ }
+ }, [connectionStatus]);
+
+ const token = useMemo(() => sessionStorage.getItem('pd_access_token'), [userAuthorized]);
if (darkMode) {
document.body.classList.add('dark-mode');
@@ -123,12 +129,10 @@ const App = () => {
userAuthorize();
if (token && userAuthorized) {
startMonitoring();
- checkAbilities();
getPrioritiesAsync();
getIncidentsAsync();
getExtensionsAsync();
getResponsePlaysAsync();
- checkConnectionStatus();
}
}, [userAuthorized]);
@@ -137,86 +141,39 @@ const App = () => {
moment.locale(currentUserLocale);
}, [currentUserLocale]);
- // use these refs in the polling interval to avoid stale values
- // without having to add them to the dependency array
- const latestLogEntryDateRef = useRef(latestLogEntryDate);
- useEffect(() => {
- latestLogEntryDateRef.current = latestLogEntryDate;
- }, [latestLogEntryDate]);
- const fetchingIncidentsRef = useRef(fetchingIncidents);
- useEffect(() => {
- fetchingIncidentsRef.current = fetchingIncidents;
- }, [fetchingIncidents]);
- const fetchingLogEntriesRef = useRef(fetchingLogEntries);
- useEffect(() => {
- fetchingLogEntriesRef.current = fetchingLogEntries;
- }, [fetchingLogEntries]);
-
- // Set up log entry polling
- useEffect(
- () => {
- const pollingInterval = setInterval(() => {
- checkConnectionStatus();
- if (userAuthorized && abilities.includes(PD_REQUIRED_ABILITY)) {
- if (fetchingLogEntriesRef.current) {
- // eslint-disable-next-line no-console
- console.warn('skipping log entries fetch because already fetching log entries');
- return;
- }
-
- if (!fetchingIncidentsRef.current && !DEBUG_DISABLE_POLLING) {
- // Determine lookback based on last fetch/refresh of incidents
- // 2x polling interval is a good lookback if we don't have a last fetch date
- let since = new Date(new Date() - 2000 * LOG_ENTRIES_POLLING_INTERVAL_SECONDS);
- // If we have a last fetch date, use that
- if (lastFetchDate) {
- since = new Date(lastFetchDate - 1000);
- }
- // If we have a latest log entry date and it's newer than last fetch date, use that
- if (latestLogEntryDateRef.current && latestLogEntryDateRef.current > since) {
- since = new Date(latestLogEntryDateRef.current - 1000);
- }
- getLogEntriesAsync(since);
- } else if (fetchingIncidentsRef.current) {
- // eslint-disable-next-line no-console
- console.warn('skipping log entries fetch because already fetching incidents');
- }
- }
- }, LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000);
- return () => clearInterval(pollingInterval);
- },
- // Changes to any of these in the store resets log entries timer
- [userAuthorized, fetchingIncidents, lastFetchDate],
- );
-
- // Setup log entry clearing
+ // Set up API polling
useEffect(() => {
- const clearingInterval = setInterval(
- () => {
- if (userAuthorized) {
- cleanRecentLogEntriesAsync();
- }
- },
- 60 * 60 * 1000,
- );
- return () => clearInterval(clearingInterval);
- }, [userAuthorized]);
+ if (token && userAuthorized && userAcceptedDisclaimer) {
+ dispatch({ type: START_LOG_ENTRIES_POLLING });
+ dispatch({ type: START_CLEAN_RECENT_LOG_ENTRIES_POLLING });
+ dispatch({ type: START_ABILITIES_POLLING });
+ dispatch({ type: START_OAUTH_REFRESH_POLLING });
+ } else {
+ dispatch({ type: STOP_LOG_ENTRIES_POLLING });
+ dispatch({ type: STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING });
+ dispatch({ type: STOP_ABILITIES_POLLING });
+ dispatch({ type: STOP_OAUTH_REFRESH_POLLING });
+ }
+ }, [userAuthorized, userAcceptedDisclaimer]);
- // Setup queue stats update for status beacon tooltip
+ // Set up connection status polling
useEffect(() => {
- const queueStateInterval = setInterval(() => {
- if (userAuthorized) {
- updateQueueStats(getLimiterStats());
- }
- }, 2000);
- return () => clearInterval(queueStateInterval);
- }, [userAuthorized]);
+ dispatch({ type: START_CONNECTION_STATUS_POLLING });
+ dispatch({ type: START_QUEUE_STATS_POLLING });
+ }, []);
- const headerRef = useRef(null);
- const mainRef = useRef(null);
- const footerRef = useRef(null);
+ if (catastrophe) {
+ return (
+
+ );
+ }
- if (!token) {
+ if (
+ !PD_USER_TOKEN
+ && (typeof token !== 'string' || !token.startsWith('pd'))
+ ) {
return (
@@ -244,29 +201,38 @@ const App = () => {
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {
+ RealUserMonitoring.trackError(details.error);
+ dispatchCatastrophe(`UI Render error: ${details.error.message}`);
+ return null;
+ }
+ }
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
);
};
diff --git a/src/components/Auth/AuthComponent.jsx b/src/components/Auth/AuthComponent.jsx
index 038c78be..3a526258 100644
--- a/src/components/Auth/AuthComponent.jsx
+++ b/src/components/Auth/AuthComponent.jsx
@@ -47,14 +47,25 @@ const AuthComponent = (props) => {
useEffect(() => {
if (code && codeVerifier && !accessToken) {
+ // if there were button params on the first load, load the button params and put them back on the URL
+ const savedButtonsStr = sessionStorage.getItem('pd_buttons');
+ const savedButtons = savedButtonsStr ? JSON.parse(savedButtonsStr) : [];
+ const buttonParams = savedButtons ? `?button=${savedButtons.join('&button=')}` : '';
+
exchangeCodeForToken(clientId, clientSecret, redirectURL, codeVerifier, code).then(
- (token) => {
+ (data) => {
+ const {
+ access_token: newAccessToken,
+ refresh_token: newRefreshToken,
+ expires_in: expiresIn,
+ } = data;
+ if (!newAccessToken || !newRefreshToken || !expiresIn) {
+ window.location.assign(redirectURL + buttonParams);
+ }
sessionStorage.removeItem('code_verifier');
- sessionStorage.setItem('pd_access_token', token);
- // if there were button params on the first load, load the button params and put them back on the URL
- const savedButtonsStr = sessionStorage.getItem('pd_buttons');
- const savedButtons = savedButtonsStr ? JSON.parse(savedButtonsStr) : [];
- const buttonParams = savedButtons ? `?button=${savedButtons.join('&button=')}` : '';
+ sessionStorage.setItem('pd_access_token', newAccessToken);
+ sessionStorage.setItem('pd_refresh_token', newRefreshToken);
+ sessionStorage.setItem('pd_token_expires_at', new Date().getTime() + (expiresIn * 1000));
window.location.assign(redirectURL + buttonParams);
},
);
diff --git a/src/components/CatastropheModal/CatastropheModal.jsx b/src/components/CatastropheModal/CatastropheModal.jsx
new file mode 100644
index 00000000..130a9115
--- /dev/null
+++ b/src/components/CatastropheModal/CatastropheModal.jsx
@@ -0,0 +1,115 @@
+import React, {
+ useEffect,
+ useState,
+ useRef,
+} from 'react';
+
+import {
+ useDispatch,
+} from 'react-redux';
+
+import {
+ Button,
+ Code,
+ Modal,
+ ModalOverlay,
+ ModalContent,
+ ModalHeader,
+ ModalBody,
+ Text,
+} from '@chakra-ui/react';
+
+import {
+ useTranslation,
+} from 'react-i18next';
+
+import {
+ userUnauthorize as userUnauthorizeConnected,
+} from 'src/redux/users/actions';
+
+import {
+ stopMonitoring as stopMonitoringConnected,
+} from 'src/redux/monitoring/actions';
+
+const CatastropheOverlay = ({
+ errorMessage,
+ countdownSeconds = 30,
+}) => {
+ const {
+ t,
+ } = useTranslation();
+
+ const dispatch = useDispatch();
+ const userUnauthorize = () => dispatch(userUnauthorizeConnected());
+ const stopMonitoring = () => dispatch(stopMonitoringConnected());
+
+ const [seconds, setSeconds] = useState(countdownSeconds);
+ const timerIdRef = useRef(null);
+
+ useEffect(() => {
+ if (seconds > 0) {
+ timerIdRef.current = setTimeout(() => {
+ setSeconds(seconds - 1);
+ }, 1000);
+ } else {
+ window.location.reload(true);
+ }
+ return () => {
+ if (timerIdRef.current) {
+ clearTimeout(timerIdRef.current);
+ timerIdRef.current = null;
+ }
+ };
+ }, [seconds]);
+
+ const cancelTimer = () => {
+ if (timerIdRef.current) {
+ clearTimeout(timerIdRef.current);
+ timerIdRef.current = null;
+ }
+ };
+
+ return (
+
+
+
+ {t('Catastrophic Error')}
+
+ {t('An unexpected error has occurred:')}
+ {errorMessage}
+
+ {
+ timerIdRef.current
+ ? t('The application will restart in X seconds.', { seconds })
+ : t('Restart canceled')
+ }
+
+
+
+
+
+
+ );
+};
+
+export default CatastropheOverlay;
diff --git a/src/components/Common/EscalationPolicySelect.jsx b/src/components/Common/EscalationPolicySelect.jsx
index 39a3c869..fb9d6183 100644
--- a/src/components/Common/EscalationPolicySelect.jsx
+++ b/src/components/Common/EscalationPolicySelect.jsx
@@ -6,6 +6,10 @@ import {
useDebouncedCallback,
} from 'use-debounce';
+import {
+ useToast,
+} from '@chakra-ui/react';
+
import {
Select,
} from 'chakra-react-select';
@@ -14,6 +18,11 @@ import {
useTranslation,
} from 'react-i18next';
+import RealUserMonitoring from 'src/config/monitoring';
+import {
+ AxiosError,
+} from 'axios';
+
import {
throttledPdAxiosRequest,
} from 'src/util/pd-api-wrapper';
@@ -29,6 +38,8 @@ const EscalationPolicySelect = ({
t,
} = useTranslation();
+ const toast = useToast();
+
const [selectOptions, setSelectOptions] = useState([]);
const [currentInputValue, setCurrentInputValue] = useState('');
const [more, setMore] = useState(false);
@@ -36,6 +47,26 @@ const EscalationPolicySelect = ({
const [storedSelectEps, setStoredSelectEps] = useState([]);
+ const [apiError, setApiError] = useState(null);
+
+ useEffect(() => {
+ const details = {};
+ if (apiError) {
+ if (apiError instanceof AxiosError) {
+ details.url = apiError.config.url;
+ details.method = apiError.config.method;
+ details.status = apiError.response?.status;
+ details.data = apiError.response?.data;
+ }
+ RealUserMonitoring.trackError(apiError, details);
+ toast({
+ title: t('Error'),
+ description: apiError.message,
+ status: 'error',
+ });
+ }
+ }, [apiError]);
+
// get the names for the selected epIds
useEffect(() => {
const epIds = isMulti ? value : [value];
@@ -49,13 +80,21 @@ const EscalationPolicySelect = ({
}, [value]);
const requestOptionsPage = useCallback(async (inputValue, offset) => {
- const r = await throttledPdAxiosRequest('GET', 'escalation_policies', {
- query: inputValue,
- offset,
- });
- setMore(r.data.more);
- const r2 = r.data.escalation_policies.map((ep) => ({ label: ep.name, value: ep.id }));
- return r2;
+ try {
+ const r = await throttledPdAxiosRequest(
+ 'GET',
+ 'escalation_policies',
+ { query: inputValue, offset },
+ null,
+ { throwErrors: true },
+ );
+ setMore(r.data.more);
+ const r2 = r.data.escalation_policies.map((ep) => ({ label: ep.name, value: ep.id }));
+ return r2;
+ } catch (e) {
+ setApiError(e);
+ return [];
+ }
}, []);
const loadOptions = useCallback(
diff --git a/src/components/Common/ServiceSelect.jsx b/src/components/Common/ServiceSelect.jsx
index 3a8ece93..6c0c4cfa 100644
--- a/src/components/Common/ServiceSelect.jsx
+++ b/src/components/Common/ServiceSelect.jsx
@@ -6,6 +6,10 @@ import {
useDebouncedCallback,
} from 'use-debounce';
+import {
+ useToast,
+} from '@chakra-ui/react';
+
import {
Select,
} from 'chakra-react-select';
@@ -14,6 +18,11 @@ import {
useTranslation,
} from 'react-i18next';
+import RealUserMonitoring from 'src/config/monitoring';
+import {
+ AxiosError,
+} from 'axios';
+
import {
throttledPdAxiosRequest,
} from 'src/util/pd-api-wrapper';
@@ -29,6 +38,8 @@ const ServiceSelect = ({
t,
} = useTranslation();
+ const toast = useToast();
+
const [selectOptions, setSelectOptions] = useState([]);
const [currentInputValue, setCurrentInputValue] = useState('');
const [more, setMore] = useState(false);
@@ -36,6 +47,26 @@ const ServiceSelect = ({
const [storedSelectServices, setStoredSelectServices] = useState([]);
+ const [apiError, setApiError] = useState(null);
+
+ useEffect(() => {
+ const details = {};
+ if (apiError) {
+ if (apiError instanceof AxiosError) {
+ details.url = apiError.config.url;
+ details.method = apiError.config.method;
+ details.status = apiError.response?.status;
+ details.data = apiError.response?.data;
+ }
+ RealUserMonitoring.trackError(apiError, details);
+ toast({
+ title: t('Error'),
+ description: apiError.message,
+ status: 'error',
+ });
+ }
+ }, [apiError]);
+
// get the user names for the selected serviceIds
useEffect(() => {
const serviceIds = isMulti ? value : [value];
@@ -49,10 +80,21 @@ const ServiceSelect = ({
}, [value]);
const requestOptionsPage = useCallback(async (inputValue, offset) => {
- const r = await throttledPdAxiosRequest('GET', 'services', { query: inputValue, offset });
- setMore(r.data.more);
- const r2 = r.data.services.map((service) => ({ label: service.name, value: service.id }));
- return r2;
+ try {
+ const r = await throttledPdAxiosRequest(
+ 'GET',
+ 'services',
+ { query: inputValue, offset },
+ null,
+ { throwErrors: true },
+ );
+ setMore(r.data.more);
+ const r2 = r.data.services.map((service) => ({ label: service.name, value: service.id }));
+ return r2;
+ } catch (e) {
+ setApiError(e);
+ return [];
+ }
}, []);
const loadOptions = useCallback(
diff --git a/src/components/Common/TeamSelect.jsx b/src/components/Common/TeamSelect.jsx
index 070d3850..def18b31 100644
--- a/src/components/Common/TeamSelect.jsx
+++ b/src/components/Common/TeamSelect.jsx
@@ -6,6 +6,10 @@ import {
useDebouncedCallback,
} from 'use-debounce';
+import {
+ useToast,
+} from '@chakra-ui/react';
+
import {
Select,
} from 'chakra-react-select';
@@ -14,6 +18,11 @@ import {
useTranslation,
} from 'react-i18next';
+import RealUserMonitoring from 'src/config/monitoring';
+import {
+ AxiosError,
+} from 'axios';
+
import {
throttledPdAxiosRequest,
} from 'src/util/pd-api-wrapper';
@@ -25,6 +34,8 @@ const TeamSelect = ({
t,
} = useTranslation();
+ const toast = useToast();
+
const [selectOptions, setSelectOptions] = useState([]);
const [currentInputValue, setCurrentInputValue] = useState('');
const [more, setMore] = useState(false);
@@ -32,6 +43,26 @@ const TeamSelect = ({
const [storedSelectTeams, setStoredSelectTeams] = useState([]);
+ const [apiError, setApiError] = useState(null);
+
+ useEffect(() => {
+ const details = {};
+ if (apiError) {
+ if (apiError instanceof AxiosError) {
+ details.url = apiError.config.url;
+ details.method = apiError.config.method;
+ details.status = apiError.response?.status;
+ details.data = apiError.response?.data;
+ }
+ RealUserMonitoring.trackError(apiError, details);
+ toast({
+ title: t('Error'),
+ description: apiError.message,
+ status: 'error',
+ });
+ }
+ }, [apiError]);
+
// get the names for the selected teamIds
useEffect(() => {
const teamIds = isMulti ? value : [value];
@@ -45,10 +76,21 @@ const TeamSelect = ({
}, [value]);
const requestOptionsPage = useCallback(async (inputValue, offset) => {
- const r = await throttledPdAxiosRequest('GET', 'teams', { query: inputValue, offset });
- setMore(r.data.more);
- const r2 = r.data.teams.map((team) => ({ label: team.name, value: team.id }));
- return r2;
+ try {
+ const r = await throttledPdAxiosRequest(
+ 'GET',
+ 'teams',
+ { query: inputValue, offset },
+ null,
+ { throwErrors: true },
+ );
+ setMore(r.data.more);
+ const r2 = r.data.teams.map((team) => ({ label: team.name, value: team.id }));
+ return r2;
+ } catch (e) {
+ setApiError(e);
+ return [];
+ }
}, []);
const loadOptions = useCallback(
diff --git a/src/components/Common/UserSelect.jsx b/src/components/Common/UserSelect.jsx
index 293e486b..8a4e7c9f 100644
--- a/src/components/Common/UserSelect.jsx
+++ b/src/components/Common/UserSelect.jsx
@@ -10,6 +10,10 @@ import {
useDebouncedCallback,
} from 'use-debounce';
+import {
+ useToast,
+} from '@chakra-ui/react';
+
import {
Select,
} from 'chakra-react-select';
@@ -18,6 +22,11 @@ import {
useTranslation,
} from 'react-i18next';
+import RealUserMonitoring from 'src/config/monitoring';
+import {
+ AxiosError,
+} from 'axios';
+
import {
throttledPdAxiosRequest,
} from 'src/util/pd-api-wrapper';
@@ -33,6 +42,8 @@ const UserSelect = ({
t,
} = useTranslation();
+ const toast = useToast();
+
const usersMap = useSelector((state) => state.users.usersMap);
const dispatch = useDispatch();
const addUserToUsersMap = (user) => {
@@ -46,6 +57,26 @@ const UserSelect = ({
const [storedSelectUsers, setStoredSelectUsers] = useState([]);
+ const [apiError, setApiError] = useState(null);
+
+ useEffect(() => {
+ const details = {};
+ if (apiError) {
+ if (apiError instanceof AxiosError) {
+ details.url = apiError.config.url;
+ details.method = apiError.config.method;
+ details.status = apiError.response?.status;
+ details.data = apiError.response?.data;
+ }
+ RealUserMonitoring.trackError(apiError, details);
+ toast({
+ title: t('Error'),
+ description: apiError.message,
+ status: 'error',
+ });
+ }
+ }, [apiError]);
+
// get the user names for the selected userIds
useEffect(() => {
const userIds = isMulti ? value : [value];
@@ -63,15 +94,26 @@ const UserSelect = ({
}, [value]);
const requestOptionsPage = useCallback(async (inputValue, offset) => {
- const r = await throttledPdAxiosRequest('GET', 'users', { query: inputValue, offset });
- setMore(r.data.more);
- const r2 = r.data.users.map((user) => {
- if (!usersMap[user.id]) {
- addUserToUsersMap(user);
- }
- return { label: user.name, value: user.id };
- });
- return r2;
+ try {
+ const r = await throttledPdAxiosRequest(
+ 'GET',
+ 'users',
+ { query: inputValue, offset },
+ null,
+ { throwErrors: true },
+ );
+ setMore(r.data.more);
+ const r2 = r.data.users.map((user) => {
+ if (!usersMap[user.id]) {
+ addUserToUsersMap(user);
+ }
+ return { label: user.name, value: user.id };
+ });
+ return r2;
+ } catch (e) {
+ setApiError(e);
+ return [];
+ }
}, []);
const loadOptions = useCallback(
diff --git a/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx b/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx
index 01afead8..aab303a8 100644
--- a/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx
+++ b/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx
@@ -7,6 +7,8 @@ import {
useSelector, useDispatch, useStore,
} from 'react-redux';
+import moment from 'moment/min/moment-with-locales';
+
import {
Badge,
Box,
@@ -33,12 +35,20 @@ import {
useTranslation,
} from 'react-i18next';
+import {
+ DATE_FORMAT,
+} from 'src/config/constants';
+
import {
getIncidentsAsync as getIncidentsAsyncAction,
UPDATE_INCIDENT_ALERTS,
UPDATE_INCIDENT_NOTES,
} from 'src/redux/incidents/actions';
+import {
+ OAUTH_REFRESH_REQUESTED,
+} from 'src/redux/connection/actions';
+
const DetailedStatusOverlay = ({
btnRef, isOpen, onOpen, onClose,
}) => {
@@ -46,11 +56,7 @@ const DetailedStatusOverlay = ({
const {
t,
} = useTranslation();
- const {
- status: connectionStatus,
- error: connectionError,
- // errors,
- } = useSelector((state) => state.connection);
+
const {
status: incidentStatus,
error: incidentError,
@@ -59,7 +65,14 @@ const DetailedStatusOverlay = ({
incidentNotes,
} = useSelector((state) => state.incidents);
const {
- status: logEntriesStatus, error: logEntriesError,
+ // status: logEntriesStatus, error: logEntriesError,
+ latestLogEntryDate,
+ pollingStatus: {
+ polling: logEntriesPolling,
+ lastPollStarted,
+ lastPollCompleted,
+ errors: pollingErrors,
+ },
} = useSelector(
(state) => state.logEntries,
);
@@ -95,6 +108,7 @@ const DetailedStatusOverlay = ({
const badgeText = status.split('_').pop();
switch (badgeText) {
case 'COMPLETED':
+ case 'STARTED':
badgeProps.colorScheme = 'green';
break;
case 'REQUESTED':
@@ -102,6 +116,7 @@ const DetailedStatusOverlay = ({
break;
case 'FAILED':
case 'ERROR':
+ case 'STOPPED':
badgeProps.colorScheme = 'red';
break;
default:
@@ -126,7 +141,6 @@ const DetailedStatusOverlay = ({
{badgeForStatus(status)}
- {/* {error && !(['REQUESTED', 'COMPLETED'].includes(status.split('_').pop())) && ( */}
{error && (
{error}
@@ -268,13 +282,52 @@ const DetailedStatusOverlay = ({
+
+
+ {t('Live Updates')}
+
+ {statusFor(t('Polling'), logEntriesPolling ? 'STARTED' : 'STOPPED', '')}
+
+ {t('Last Requested')}
+ :
+
+
+ {lastPollStarted ? moment(lastPollStarted.toISOString()).format(DATE_FORMAT) : t('n/a')}
+
+
+ {t('Last Completed')}
+ :
+
+
+ {lastPollCompleted ? moment(lastPollCompleted.toISOString()).format(DATE_FORMAT) : t('n/a')}
+
+
+ {t('Latest Log Entry')}
+ :
+
+
+ {latestLogEntryDate ? moment(latestLogEntryDate.toISOString()).format(DATE_FORMAT) : t('n/a')}
+
+ {pollingErrors.length > 0 && (
+
+
+
+ )}
+
{t('Status')}
- {statusFor(t('Connection'), connectionStatus, connectionError)}
{statusFor(t('Incidents'), incidentStatus, incidentError)}
- {statusFor(t('Log Entries'), logEntriesStatus, logEntriesError)}
{statusFor(t('Extensions'), extensionsStatus, extensionsError)}
{statusFor(t('Response Plays'), responsePlaysStatus, responsePlaysError)}
@@ -282,6 +335,18 @@ const DetailedStatusOverlay = ({
{t('Debugging Actions')}
+
-
+
{
)}
+
+ {status === MERGE_REQUESTED && (
+ <>
+
+
+ {`${mergeProgressPercent}%`}
+
+
+ {mergeProgress.updatingTitles ? t('Updating titles') : t('Merging')}
+ >
+ )}
+
{t('Merge')}
-
+
{t('Cancel')}
diff --git a/src/components/NavigationBar/NavigationBarComponent.jsx b/src/components/NavigationBar/NavigationBarComponent.jsx
index 098e780d..f539f6bc 100644
--- a/src/components/NavigationBar/NavigationBarComponent.jsx
+++ b/src/components/NavigationBar/NavigationBarComponent.jsx
@@ -61,9 +61,7 @@ import {
version as PD_APP_VERSION,
} from 'src/config/version';
-import {
- ReactComponent as Logo,
-} from 'src/assets/images/pd_logo_black.svg';
+import Logo from 'src/assets/images/pd_logo_black.svg';
import GlobalSearchComponent from 'src/components/GlobalSearch/GlobalSearchComponent';
import QuerySettingsComponent from 'src/components/QuerySettings/QuerySettingsComponent';
diff --git a/src/components/QuerySettings/QuerySettingsComponent.jsx b/src/components/QuerySettings/QuerySettingsComponent.jsx
index 36d5da8b..8146eae9 100644
--- a/src/components/QuerySettings/QuerySettingsComponent.jsx
+++ b/src/components/QuerySettings/QuerySettingsComponent.jsx
@@ -1,4 +1,6 @@
-import React from 'react';
+import React, {
+ useMemo,
+} from 'react';
import {
useSelector, useDispatch,
@@ -28,6 +30,7 @@ import DatePickerComponent from './subcomponents/DatePickerComponent';
import StatusQueryComponent from './subcomponents/StatusQueryComponent';
import UrgencyQueryComponent from './subcomponents/UrgencyQueryComponent';
import PriorityQueryComponent from './subcomponents/PriorityQueryComponent';
+import ColumnFilterIndicatorComponent from './subcomponents/ColumnFilterIndicatorComponent';
import './QuerySettingsComponent.scss';
@@ -52,6 +55,10 @@ const QuerySettingsComponent = () => {
} = useSelector(
(state) => state.querySettings,
);
+ const {
+ filters,
+ } = useSelector((state) => state.incidentTable.incidentTableState);
+
const dispatch = useDispatch();
const updateQuerySettingsServices = (newServiceIds) => {
dispatch(updateQuerySettingsServicesConnected(newServiceIds));
@@ -66,6 +73,13 @@ const QuerySettingsComponent = () => {
dispatch(updateQuerySettingsTeamsConnected(newTeamIds));
};
+ const filterCount = useMemo(() => {
+ if (filters instanceof Array) {
+ return filters.length;
+ }
+ return 0;
+ }, [filters]);
+
return (
{
isMulti
/>
- {/* */}
+ { filterCount > 0 && (
+
+
+
+ )}
);
diff --git a/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx b/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx
new file mode 100644
index 00000000..01cc8002
--- /dev/null
+++ b/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx
@@ -0,0 +1,63 @@
+import React, {
+ useMemo,
+} from 'react';
+
+import {
+ useSelector,
+ useDispatch,
+} from 'react-redux';
+
+import {
+ useTranslation,
+} from 'react-i18next';
+
+import {
+ Flex,
+ Button,
+ Tag,
+} from '@chakra-ui/react';
+
+import {
+ clearIncidentTableFilters as clearIncidentTableFiltersConnected,
+} from 'src/redux/incident_table/actions';
+
+const ColumnFilterIndicatorComponent = () => {
+ const {
+ t,
+ } = useTranslation();
+ const {
+ filters,
+ } = useSelector((state) => state.incidentTable.incidentTableState);
+
+ const dispatch = useDispatch();
+ const clearIncidentTableFilters = () => {
+ dispatch(clearIncidentTableFiltersConnected());
+ };
+
+ const filterCount = useMemo(() => {
+ if (filters instanceof Array) {
+ return filters.length;
+ }
+ return 0;
+ }, [filters]);
+
+ return (
+
+
+ {filterCount}
+
+
+ {t('Clear')}
+
+
+ );
+};
+
+export default ColumnFilterIndicatorComponent;
diff --git a/src/components/UnauthorizedModal/UnauthorizedModalComponent.jsx b/src/components/UnauthorizedModal/UnauthorizedModalComponent.jsx
index de655da7..778cd140 100644
--- a/src/components/UnauthorizedModal/UnauthorizedModalComponent.jsx
+++ b/src/components/UnauthorizedModal/UnauthorizedModalComponent.jsx
@@ -1,4 +1,6 @@
-import React from 'react';
+import React, {
+ useEffect, useState,
+} from 'react';
import {
connect,
} from 'react-redux';
@@ -15,6 +17,22 @@ import {
userAcceptDisclaimer as userAcceptDisclaimerConnected,
} from 'src/redux/users/actions';
+// Ref: https://stackoverflow.com/a/61390352/6480733
+const Delayed = ({
+ children, waitBeforeShow = 500,
+}) => {
+ const [isShown, setIsShown] = useState(false);
+
+ useEffect(() => {
+ const timer = setTimeout(() => {
+ setIsShown(true);
+ }, waitBeforeShow);
+ return () => clearTimeout(timer);
+ }, [waitBeforeShow]);
+
+ return isShown ? children : null;
+};
+
const UnauthorizedModalComponent = ({
users, userAcceptDisclaimer,
}) => {
@@ -27,27 +45,29 @@ const UnauthorizedModalComponent = ({
return (
-
{
- userAcceptDisclaimer();
- sessionStorage.removeItem('pd_access_token');
- window.location.reload();
- }}
- >
-
- {t('Unauthorized Access')}
-
-
-
- {t('User is not permitted to access this instance of PagerDuty Live')}
- {'. '}
- {t('Please contact the associated site owner for access')}
- .
-
-
-
+
+ {
+ userAcceptDisclaimer();
+ sessionStorage.removeItem('pd_access_token');
+ window.location.reload();
+ }}
+ >
+
+ {t('Unauthorized Access')}
+
+
+
+ {t('User is not permitted to access this instance of PagerDuty Live')}
+ {'. '}
+ {t('Please contact the associated site owner for access')}
+ .
+
+
+
+
);
};
diff --git a/src/config/column-generator.jsx b/src/config/column-generator.jsx
index 00d4167b..41bda4a0 100644
--- a/src/config/column-generator.jsx
+++ b/src/config/column-generator.jsx
@@ -644,7 +644,17 @@ export const defaultAlertsColumns = () => [
id: 'severity',
header: 'Severity',
columnType: 'alert',
- accessor: (incident) => incident.alerts?.[0]?.body?.cef_details?.severity || '',
+ accessor: (incident) => {
+ if (
+ incident.alerts
+ && incident.alerts instanceof Array
+ && incident.alerts.length > 0
+ && incident.alerts[0] instanceof Object
+ ) {
+ return incident.alerts[0].severity || '--';
+ }
+ return '--';
+ },
minWidth: 100,
renderer: ({
value, cell,
diff --git a/src/config/constants.js b/src/config/constants.js
index 17a43e4c..1764e19a 100644
--- a/src/config/constants.js
+++ b/src/config/constants.js
@@ -40,14 +40,21 @@ export const DEBUG_UNTIL_DATE = debugParams.get('until') || null;
export const EXTRA_BUTTONS = debugParams
.getAll('button')
.map((button) => {
- const [label, url, width, height] = button.split(',');
+ const [label, url, widthOrTab, height] = button.split(',');
if (!label || !url) {
return null;
}
+ if (widthOrTab === 'tab') {
+ return {
+ label,
+ url,
+ tab: true,
+ };
+ }
return {
label,
url,
- width,
+ width: widthOrTab,
height,
};
})
diff --git a/src/config/version.js b/src/config/version.js
index f885508f..ecff75ff 100644
--- a/src/config/version.js
+++ b/src/config/version.js
@@ -1,2 +1,2 @@
// Generated by genversion.
-export const version = '0.12.2-beta.0';
+export const version = '0.13.0-beta.0';
diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json
index 5886b6cd..d29f676b 100644
--- a/src/locales/de/translation.json
+++ b/src/locales/de/translation.json
@@ -24,11 +24,14 @@
"Age": "Alter",
"Alerts": "Benachrichtigungen",
"Alerts for incident X": "Benachrichtigungen für Vorfall {{incident_number}}",
+ "An unexpected error has occurred:": "Ein unerwarteter Fehler ist aufgetreten:",
"and their alerts have been merged onto incident": "und ihre Warnungen wurden mit dem Vorfall zusammengeführt",
"and X more": "und {{excessIncidents}} mehr",
"Assignees": "Bearbeiter",
"Available": "Verfügbar",
"Cancel": "Abbrechen",
+ "Cannot merge incidents containing more than 1000 alerts": "Vorfälle mit mehr als 1000 Benachrichtigungen können nicht zusammengeführt werden",
+ "Catastrophic Error": "Katastrophaler Fehler",
"characters remaining": "Zeichen verbleibend",
"Class": "Klasse",
"Clear Alerts": "Benachrichtigungen löschen",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Verbindung unter Verwendung von PagerDuty OAuth herstellen, um diese App zu verwenden",
"Connected": "Verbunden",
"Connecting": "Verbinden",
- "Connection": "Verbindung",
"Created At": "Erstellt am",
"critical": "kritisch",
"Current subdomain does not have the correct ability to use PagerDuty Live": "Die aktuelle Subdomain hat nicht die richtige Funktion aktiviert, PagerDuty Live zu verwenden",
@@ -56,6 +58,7 @@
"Description": "Beschreibung",
"Detailed Status": "Detaillierter Status",
"Disclaimer & License": "Haftungsausschluss & Lizenz",
+ "Don't Restart": "Nicht neu starten",
"Download CSV (X alerts)_one": "CSV herunterladen (1 Benachrichtigung)",
"Download CSV (X alerts)_other": "CSV herunterladen ({{count}} Benachrichtigungen)",
"Drag and drop to reorder": "Ziehen und ablegen, um neu zu ordnen",
@@ -98,9 +101,12 @@
"info": "info",
"Invalid presets file": "Ungültige Voreinstellungsdatei",
"JSON Path": "JSON-Pfad",
+ "Last Completed": "Letzter Abschluss",
+ "Last Requested": "Letzte Anforderung",
"Last Status Change At": "Letzte Statusänderung um",
"Last Status Change By": "Letzte Statusänderung durch",
"Latest Alert At": "Neueste Benachrichtigung um",
+ "Latest Log Entry": "Neuester Protokolleintrag",
"Latest Log Entry At": "Neuester Protokolleintrag um",
"Latest Log Entry Type": "Neuester Protokolleintragstyp",
"Latest Note": "Neueste Notiz",
@@ -109,13 +115,13 @@
"Links": "Verlinkungen",
"Live Incidents Console": "Konsole für Live-Vorfälle",
"Live Incidents Console will reload to apply the new presets": "Die Konsole für Live-Vorfälle wird neu geladen, um die neuen Voreinstellungen anzuwenden",
+ "Live Updates": "Live-Updates",
"Live updates disabled": "Live-Updates deaktiviert",
"Live updates enabled": "Live-Updates aktiviert",
"Load Presets from File": "Voreinstellungen aus Datei laden",
"Load/Save Presets": "Voreinstellungen laden/speichern",
"Locale": "Gebietsschema",
"Log App State to console": "App-Status in Konsole protokollieren",
- "Log Entries": "Protokolleinträge",
"Log Out": "Abmelden",
"Low": "Niedrig",
"Main menu": "Hauptmenü",
@@ -131,6 +137,7 @@
"Move to": "Verschieben nach",
"Move X alerts to another incident_one": "1 Benachrichtigung in einen anderen Vorfall verschieben",
"Move X alerts to another incident_other": "{{count}} Benachrichtigungen in einen anderen Vorfall verschieben",
+ "n/a": "n/a",
"New Incidents": "Neue Vorfälle",
"No Incidents Found": "Keine Vorfälle gefunden",
"Not requested": "Nicht angefordert",
@@ -141,6 +148,7 @@
"on": "ein",
"Open Incidents": "Offene Vorfälle",
"Please contact the associated site owner for access": "Bitte wenden Sie sich an den Eigentümer der zugehörigen Website, um Zugriff zu erhalten",
+ "Polling": "Abfragen",
"Presets file is for a different subdomain": "Die Voreinstellungsdatei ist für eine andere Subdomain",
"Presets loaded": "Voreinstellungen geladen",
"Priority": "Priorität",
@@ -151,7 +159,9 @@
"Reassign": "Neu zuweisen",
"Reassign To": "Neu zuweisen zu",
"Reassigning": "Neu zuweisen",
+ "Reauthorize": "Erneut autorisieren",
"Refresh Incidents": "Vorfälle aktualisieren",
+ "Refresh OAuth Token": "OAuth-Token aktualisieren",
"Refreshing": "Aktualisieren",
"Relative Dates": "Relative Daten",
"Requested additional response for": "Zusätzliche Antwort angefordert für",
@@ -162,6 +172,7 @@
"Responders": "Helfer",
"response play for": "Response Play für",
"Response Plays": "Response Play",
+ "Restart canceled": "Neustart abgebrochen",
"Run Action": "Aktion ausführen",
"running": "läuft",
"Running custom action": "Benutzerdefinierte Aktion wird ausgeführt",
@@ -197,6 +208,7 @@
"Teams": "Teams",
"Text to add": "Text hinzufügen",
"The alerts of the selected incidents will be merged into a single incident": "Die Warnungen der ausgewählten Vorfälle werden zu einem einzigen Vorfall zusammengeführt",
+ "The application will restart in X seconds.": "Die Anwendung wird in {{seconds}} Sekunden neu gestartet.",
"The remaining selected incidents will be resolved after the merge is complete": "Die verbleibenden ausgewählten Vorfälle werden nach Abschluss der Zusammenführung als gelöst geschlossen",
"Time": "Zeit",
"Title": "Titel",
@@ -206,14 +218,15 @@
"triggered for": "ausgelöst für",
"Unable to fetch account abilities": "Die dem Konto zugeordneten Funktionen konnten nicht abgerufen werden",
"Unable to fetch current user details": "Aktuelle Benutzerdetails konnten nicht abgerufen werden",
- "Unable to fetch log entries": "Protokolleinträge konnten nicht abgerufen werden",
"Unauthorized Access": "Nicht autorisierter Zugriff",
+ "Unauthorized. Please re-authorize.": "Nicht autorisiert. Bitte erneut autorisieren.",
"Unknown error while using PD API": "Unbekannter Fehler bei der Verwendung der PD-API",
"Until": "Bis",
"Update Priority": "Priorität aktualisieren",
"Updated At": "Aktualisiert um",
"Updated user profile settings": "Benutzerprofileinstellungen aktualisiert",
"Updating priority": "Priorität aktualisieren",
+ "Updating titles": "Titel aktualisieren",
"Urgency": "Dringlichkeit",
"User is not permitted to access this instance of PagerDuty Live": "Benutzer darf nicht auf diese Instanz von PagerDuty Live zugreifen",
"Users": "Benutzer",
diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json
index 61bf2825..653c7800 100644
--- a/src/locales/en/translation.json
+++ b/src/locales/en/translation.json
@@ -24,11 +24,14 @@
"Age": "Age",
"Alerts": "Alerts",
"Alerts for incident X": "Alerts for incident {{incident_number}}",
+ "An unexpected error has occurred:": "An unexpected error has occurred:",
"and their alerts have been merged onto incident": "and their alerts have been merged onto incident",
"and X more": "and {{excessIncidents}} more",
"Assignees": "Assignees",
"Available": "Available",
"Cancel": "Cancel",
+ "Cannot merge incidents containing more than 1000 alerts": "Cannot merge incidents containing more than 1000 alerts",
+ "Catastrophic Error": "Catastrophic Error",
"characters remaining": "characters remaining",
"Class": "Class",
"Clear Alerts": "Clear Alerts",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Connect using PagerDuty OAuth to use this app",
"Connected": "Connected",
"Connecting": "Connecting",
- "Connection": "Connection",
"Created At": "Created At",
"critical": "critical",
"Current subdomain does not have the correct ability to use PagerDuty Live": "Current subdomain does not have the correct ability to use PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Description",
"Detailed Status": "Detailed Status",
"Disclaimer & License": "Disclaimer & License",
+ "Don't Restart": "Don't Restart",
"Download CSV (X alerts)_one": "Download CSV (1 alert)",
"Download CSV (X alerts)_other": "Download CSV ({{count}} alerts)",
"Drag and drop to reorder": "Drag and drop to reorder",
@@ -98,9 +101,12 @@
"info": "info",
"Invalid presets file": "Invalid presets file",
"JSON Path": "JSON Path",
+ "Last Completed": "Last Completed",
+ "Last Requested": "Last Requested",
"Last Status Change At": "Last Status Change At",
"Last Status Change By": "Last Status Change By",
"Latest Alert At": "Latest Alert At",
+ "Latest Log Entry": "Latest Log Entry",
"Latest Log Entry At": "Latest Log Entry At",
"Latest Log Entry Type": "Latest Log Entry Type",
"Latest Note": "Latest Note",
@@ -109,13 +115,13 @@
"Links": "Links",
"Live Incidents Console": "Live Incidents Console",
"Live Incidents Console will reload to apply the new presets": "Live Incidents Console will reload to apply the new presets",
+ "Live Updates": "Live Updates",
"Live updates disabled": "Live updates disabled",
"Live updates enabled": "Live updates enabled",
"Load Presets from File": "Load Presets from File",
"Load/Save Presets": "Load/Save Presets",
"Locale": "Locale",
"Log App State to console": "Log App State to console",
- "Log Entries": "Log Entries",
"Log Out": "Log Out",
"Low": "Low",
"Main menu": "Main menu",
@@ -131,6 +137,7 @@
"Move to": "Move to",
"Move X alerts to another incident_one": "Move 1 alert to another incident",
"Move X alerts to another incident_other": "Move {{count}} alerts to another incident",
+ "n/a": "n/a",
"New Incidents": "New Incidents",
"No Incidents Found": "No Incidents Found",
"Not requested": "Not requested",
@@ -141,6 +148,7 @@
"on": "on",
"Open Incidents": "Open Incidents",
"Please contact the associated site owner for access": "Please contact the associated site owner for access",
+ "Polling": "Polling",
"Presets file is for a different subdomain": "Presets file is for a different subdomain",
"Presets loaded": "Presets loaded",
"Priority": "Priority",
@@ -151,7 +159,9 @@
"Reassign": "Reassign",
"Reassign To": "Reassign To",
"Reassigning": "Reassigning",
+ "Reauthorize": "Reauthorize",
"Refresh Incidents": "Refresh Incidents",
+ "Refresh OAuth Token": "Refresh OAuth Token",
"Refreshing": "Refreshing",
"Relative Dates": "Relative Dates",
"Requested additional response for": "Requested additional response for",
@@ -162,6 +172,7 @@
"Responders": "Responders",
"response play for": "response play for",
"Response Plays": "Response Plays",
+ "Restart canceled": "Restart canceled",
"Run Action": "Run Action",
"running": "running",
"Running custom action": "Running custom action",
@@ -197,6 +208,7 @@
"Teams": "Teams",
"Text to add": "Text to add",
"The alerts of the selected incidents will be merged into a single incident": "The alerts of the selected incidents will be merged into a single incident",
+ "The application will restart in X seconds.": "The application will restart in {{seconds}} seconds.",
"The remaining selected incidents will be resolved after the merge is complete": "The remaining selected incidents will be resolved after the merge is complete",
"Time": "Time",
"Title": "Title",
@@ -206,14 +218,15 @@
"triggered for": "triggered for",
"Unable to fetch account abilities": "Unable to fetch account abilities",
"Unable to fetch current user details": "Unable to fetch current user details",
- "Unable to fetch log entries": "Unable to fetch log entries",
"Unauthorized Access": "Unauthorized Access",
+ "Unauthorized. Please re-authorize.": "Unauthorized. Please re-authorize.",
"Unknown error while using PD API": "Unknown error while using PD API",
"Until": "Until",
"Update Priority": "Update Priority",
"Updated At": "Updated At",
"Updated user profile settings": "Updated user profile settings",
"Updating priority": "Updating priority",
+ "Updating titles": "Updating titles",
"Urgency": "Urgency",
"User is not permitted to access this instance of PagerDuty Live": "User is not permitted to access this instance of PagerDuty Live",
"Users": "Users",
diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json
index 4f963402..2dabdb53 100644
--- a/src/locales/es/translation.json
+++ b/src/locales/es/translation.json
@@ -24,11 +24,14 @@
"Age": "Edad",
"Alerts": "Alertas",
"Alerts for incident X": "Alertas para incidente {{incident_number}}",
+ "An unexpected error has occurred:": "Se ha producido un error inesperado:",
"and their alerts have been merged onto incident": "y sus alertas se han fusionado con el incidente",
"and X more": "y {{excessIncidents}} más",
"Assignees": "Cesionarios",
"Available": "Disponible",
"Cancel": "Cancelar",
+ "Cannot merge incidents containing more than 1000 alerts": "No se pueden combinar incidentes que contengan más de 1000 alertas",
+ "Catastrophic Error": "Error Catastrófico",
"characters remaining": "caracteres restantes",
"Class": "Clase",
"Clear Alerts": "Borrar alertas",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Conectar usando PagerDuty OAuth para usar esta aplicación",
"Connected": "Conectado",
"Connecting": "Conectando",
- "Connection": "Conexión",
"Created At": "Creado En",
"critical": "extremo",
"Current subdomain does not have the correct ability to use PagerDuty Live": "El subdominio actual no tiene la capacidad correcta para usar PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Descripción",
"Detailed Status": "Estado detallado",
"Disclaimer & License": "Aviso legal y licencia",
+ "Don't Restart": "No reiniciar",
"Download CSV (X alerts)_one": "Descargar CSV (1 alerta)",
"Download CSV (X alerts)_many": "Descargar CSV ({{count}} alertas)",
"Download CSV (X alerts)_other": "Descargar CSV ({{count}} alertas)",
@@ -99,9 +102,12 @@
"info": "información",
"Invalid presets file": "Archivo de preajustes no válido",
"JSON Path": "Ruta JSON",
+ "Last Completed": "Último Completado",
+ "Last Requested": "Último Solicitado",
"Last Status Change At": "Último Cambio de Estado en",
"Last Status Change By": "Último Cambio de Estado por",
"Latest Alert At": "Última Alerta en",
+ "Latest Log Entry": "Última Entrada de Registro",
"Latest Log Entry At": "Última Entrada de Registro en",
"Latest Log Entry Type": "Último Tipo de Entrada de Registro",
"Latest Note": "Última Nota",
@@ -110,13 +116,13 @@
"Links": "Enlaces",
"Live Incidents Console": "Consola de incidentes en vivo",
"Live Incidents Console will reload to apply the new presets": "La consola de incidentes en vivo se volverá a cargar para aplicar los nuevos preajustes",
+ "Live Updates": "Actualizaciones en vivo",
"Live updates disabled": "Actualizaciones en vivo deshabilitadas",
"Live updates enabled": "Actualizaciones en vivo habilitadas",
"Load Presets from File": "Cargar preajustes desde archivo",
"Load/Save Presets": "Cargar/Guardar preajustes",
"Locale": "Configuracion regional",
"Log App State to console": "Registrar estado de la aplicación en la consola",
- "Log Entries": "Entradas de registro",
"Log Out": "Cerrar sesión",
"Low": "Bajo",
"Main menu": "Menú principal",
@@ -133,6 +139,7 @@
"Move X alerts to another incident_one": "Mover 1 alerta a otro incidente",
"Move X alerts to another incident_many": "Mover {{count}} alertas a otro incidente",
"Move X alerts to another incident_other": "Mover {{count}} alertas a otro incidente",
+ "n/a": "n/a",
"New Incidents": "Nuevos incidentes",
"No Incidents Found": "No se encontraron incidentes",
"Not requested": "No solicitado",
@@ -143,6 +150,7 @@
"on": "en",
"Open Incidents": "Incidentes abiertos",
"Please contact the associated site owner for access": "Póngase en contacto con el propietario del sitio asociado para obtener acceso",
+ "Polling": "Sondeo",
"Presets file is for a different subdomain": "El archivo de preajustes es para un subdominio diferente",
"Presets loaded": "Preajustes cargados",
"Priority": "Prioridad",
@@ -153,7 +161,9 @@
"Reassign": "Reasignar",
"Reassign To": "Reasignar a",
"Reassigning": "Reasignando",
+ "Reauthorize": "Reautorizar",
"Refresh Incidents": "Actualizar incidentes",
+ "Refresh OAuth Token": "Actualizar token OAuth",
"Refreshing": "Actualizando",
"Relative Dates": "Fechas relativas",
"Requested additional response for": "Solicitó una respuesta adicional para",
@@ -164,6 +174,7 @@
"Responders": "Responsables",
"response play for": "juego de respuesta para",
"Response Plays": "Respuestas de juego",
+ "Restart canceled": "Reinicio cancelado",
"Run Action": "Ejecutar acción",
"running": "ejecutando",
"Running custom action": "Ejecutando acción personalizada",
@@ -199,6 +210,7 @@
"Teams": "Equipos",
"Text to add": "Texto para agregar",
"The alerts of the selected incidents will be merged into a single incident": "Las alertas de los incidentes seleccionados se combinarán en un solo incidente",
+ "The application will restart in X seconds.": "La aplicación se reiniciará en {{seconds}} segundos.",
"The remaining selected incidents will be resolved after the merge is complete": "Los incidentes seleccionados restantes se resolverán después de que se complete la combinación",
"Time": "Hora",
"Title": "Título",
@@ -208,14 +220,15 @@
"triggered for": "iniciado para",
"Unable to fetch account abilities": "No se pueden recuperar las capacidades de la cuenta",
"Unable to fetch current user details": "No se pueden obtener los detalles del usuario actual",
- "Unable to fetch log entries": "No se pueden recuperar las entradas de registro",
"Unauthorized Access": "Acceso no autorizado",
+ "Unauthorized. Please re-authorize.": "No autorizado. Por favor, vuelva a autorizar.",
"Unknown error while using PD API": "Error desconocido al usar la API de PD",
"Until": "Hasta",
"Update Priority": "Actualizar prioridad",
"Updated At": "Actualizado en",
"Updated user profile settings": "Configuración de perfil de usuario actualizada",
"Updating priority": "Actualizando prioridad",
+ "Updating titles": "Actualizando títulos",
"Urgency": "Urgencia",
"User is not permitted to access this instance of PagerDuty Live": "El usuario no tiene permiso para acceder a esta instancia de PagerDuty Live",
"Users": "Usuarios",
diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json
index 46df9dd9..27e600a2 100644
--- a/src/locales/fr/translation.json
+++ b/src/locales/fr/translation.json
@@ -24,11 +24,14 @@
"Age": "Âge",
"Alerts": "Alertes",
"Alerts for incident X": "Alertes pour l'incident {{incident_number}}",
+ "An unexpected error has occurred:": "Une erreur inattendue s'est produite :",
"and their alerts have been merged onto incident": "et leurs alertes ont été fusionnées sur l'incident",
"and X more": "et {{excessIncidents}} de plus",
"Assignees": "Cessionnaires",
"Available": "Disponible",
"Cancel": "Annuler",
+ "Cannot merge incidents containing more than 1000 alerts": "Impossible de fusionner des incidents contenant plus de 1000 alertes",
+ "Catastrophic Error": "Erreur catastrophique",
"characters remaining": "caractères restants",
"Class": "Classe",
"Clear Alerts": "Effacer les alertes",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Connectez-vous en utilisant l'OAuth PagerDuty pour utiliser cette application",
"Connected": "Connecté",
"Connecting": "Connexion",
- "Connection": "Connexion",
"Created At": "Créé à",
"critical": "critique",
"Current subdomain does not have the correct ability to use PagerDuty Live": "Le sous-domaine actuel n'a pas la bonne capacité pour utiliser PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Description",
"Detailed Status": "Statut détaillé",
"Disclaimer & License": "Clause de non-responsabilité et licence (en anglais)",
+ "Don't Restart": "Ne pas redémarrer",
"Download CSV (X alerts)_one": "Télécharger CSV ({{count}} alerte)",
"Download CSV (X alerts)_many": "Télécharger CSV ({{count}} alertes)",
"Download CSV (X alerts)_other": "Télécharger CSV ({{count}} alertes)",
@@ -99,9 +102,12 @@
"info": "info",
"Invalid presets file": "Fichier de préréglages non valide",
"JSON Path": "Chemin JSON",
+ "Last Completed": "Dernière complétée",
+ "Last Requested": "Dernière demandée",
"Last Status Change At": "Dernier changement de statut à",
"Last Status Change By": "Dernier changement de statut par",
"Latest Alert At": "Dernière alerte à",
+ "Latest Log Entry": "Dernière entrée de journal",
"Latest Log Entry At": "Dernière entrée de journal à",
"Latest Log Entry Type": "Dernier type d'entrée de journal",
"Latest Note": "Dernière note",
@@ -110,13 +116,13 @@
"Links": "Liens",
"Live Incidents Console": "Console d'incidents en direct",
"Live Incidents Console will reload to apply the new presets": "La console d'incidents en direct se rechargera pour appliquer les nouveaux préréglages",
+ "Live Updates": "Mises à jour en direct",
"Live updates disabled": "Mises à jour en direct désactivées",
"Live updates enabled": "Mises à jour en direct activées",
"Load Presets from File": "Charger les préréglages à partir du fichier",
"Load/Save Presets": "Charger/enregistrer les préréglages",
"Locale": "Paramètres régionaux",
"Log App State to console": "Journaliser l'état de l'application dans la console",
- "Log Entries": "Entrées de journal",
"Log Out": "Se déconnecter",
"Low": "Basse",
"Main menu": "Menu principal",
@@ -133,6 +139,7 @@
"Move X alerts to another incident_one": "Déplacer {{count}} alerte vers un autre incident",
"Move X alerts to another incident_many": "Déplacer {{count}} alertes vers un autre incident",
"Move X alerts to another incident_other": "Déplacer {{count}} alertes vers un autre incident",
+ "n/a": "n/a",
"New Incidents": "Nouveaux incidents",
"No Incidents Found": "Aucun incident trouvé",
"Not requested": "Non demandé",
@@ -143,6 +150,7 @@
"on": "sur",
"Open Incidents": "Incidents ouverts",
"Please contact the associated site owner for access": "Please contact the associated site owner for access",
+ "Polling": "Interrogation",
"Presets file is for a different subdomain": "Le fichier de préréglages est pour un sous-domaine différent",
"Presets loaded": "Préréglages chargés",
"Priority": "Priorité",
@@ -153,7 +161,9 @@
"Reassign": "Réaffecter",
"Reassign To": "Réaffecter à",
"Reassigning": "Réaffectation",
+ "Reauthorize": "Réautoriser",
"Refresh Incidents": "Actualiser les incidents",
+ "Refresh OAuth Token": "Actualiser le jeton OAuth",
"Refreshing": "Rafraîchissement",
"Relative Dates": "Dates relatives",
"Requested additional response for": "Demande de réponse supplémentaire pour",
@@ -164,6 +174,7 @@
"Responders": "Intervenants",
"response play for": "jouer la réponse pour",
"Response Plays": "Réponses",
+ "Restart canceled": "Redémarrage annulé",
"Run Action": "Actions",
"running": "en cours d'exécution",
"Running custom action": "Exécution d'une action personnalisée",
@@ -199,6 +210,7 @@
"Teams": "Équipes",
"Text to add": "Texte à ajouter",
"The alerts of the selected incidents will be merged into a single incident": "Les alertes des incidents sélectionnés seront fusionnées en un seul incident",
+ "The application will restart in X seconds.": "L'application redémarrera dans {{seconds}} secondes.",
"The remaining selected incidents will be resolved after the merge is complete": "Les incidents restants sélectionnés seront résolus après la fusion",
"Time": "Temps",
"Title": "Titre",
@@ -208,14 +220,15 @@
"triggered for": "triggered pour",
"Unable to fetch account abilities": "Impossible de récupérer les capacités du compte",
"Unable to fetch current user details": "Impossible de récupérer les détails de l'utilisateur actuel",
- "Unable to fetch log entries": "Impossible de récupérer les entrées de journal",
"Unauthorized Access": "Accès non autorisé",
+ "Unauthorized. Please re-authorize.": "Non autorisé. Veuillez réautoriser.",
"Unknown error while using PD API": "Erreur inconnue lors de l'utilisation de l'API PD",
"Until": "Jusqu'à",
"Update Priority": "Priorité",
"Updated At": "Mis à jour à",
"Updated user profile settings": "Paramètres du profil utilisateur mis à jour",
"Updating priority": "Mise à jour de la priorité",
+ "Updating titles": "Mise à jour des titres",
"Urgency": "Urgence",
"User is not permitted to access this instance of PagerDuty Live": "L'utilisateur n'est pas autorisé à accéder à cette instance de PagerDuty Live",
"Users": "Utilisateurs",
diff --git a/src/locales/id/translation.json b/src/locales/id/translation.json
index 24358d8b..cdce0017 100644
--- a/src/locales/id/translation.json
+++ b/src/locales/id/translation.json
@@ -24,11 +24,14 @@
"Age": "Usia",
"Alerts": "Peringatan",
"Alerts for incident X": "Peringatan untuk insiden {{incident_number}}",
+ "An unexpected error has occurred:": "Terjadi error yang tidak terduga:",
"and their alerts have been merged onto incident": "dan peringatan-peringatan (alert) mereka telah digabungkan ke satu insiden",
"and X more": "dan {{excessIncidents}} lagi",
"Assignees": "Penerima tugas",
"Available": "Tersedia",
"Cancel": "Batal",
+ "Cannot merge incidents containing more than 1000 alerts": "Tidak dapat menggabungkan insiden yang berisi lebih dari 1000 peringatan",
+ "Catastrophic Error": "Error Kategori Tinggi",
"characters remaining": "karakter yang tersisa",
"Class": "Kelas",
"Clear Alerts": "Hapus Peringatan",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Untuk menggunakan app ini, hubungkan dengan menggunakan PagerDuty OAuth",
"Connected": "Terhubung",
"Connecting": "Menghubungkan",
- "Connection": "Koneksi",
"Created At": "Dibuat pada",
"critical": "kritis",
"Current subdomain does not have the correct ability to use PagerDuty Live": "Subdomain saat ini tidak memiliki kemampuan untuk menggunakan PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Deskripsi",
"Detailed Status": "Status Detail",
"Disclaimer & License": "Sanggahan & Lisensi",
+ "Don't Restart": "Jangan Mulai Ulang",
"Download CSV (X alerts)_other": "Unduh CSV ({{count}} peringatan)",
"Drag and drop to reorder": "Seret dan lepas untuk mengurutkan ulang",
"error": "error",
@@ -97,9 +100,12 @@
"info": "info",
"Invalid presets file": "File preset tidak valid",
"JSON Path": "Lokasi JSON",
+ "Last Completed": "Terakhir Selesai",
+ "Last Requested": "Terakhir Diminta",
"Last Status Change At": "Perubahan status terakhir pada",
"Last Status Change By": "Perubahan status terakhir oleh",
"Latest Alert At": "Peringatan terakhir pada",
+ "Latest Log Entry": "Entri log terakhir",
"Latest Log Entry At": "Entri log terakhir pada",
"Latest Log Entry Type": "Tipe entri log terakhir",
"Latest Note": "Catatan terkini",
@@ -108,13 +114,13 @@
"Links": "Tautan",
"Live Incidents Console": "Konsol insiden langsung",
"Live Incidents Console will reload to apply the new presets": "Konsol insiden langsung akan dimuat ulang untuk menerapkan preset baru",
+ "Live Updates": "Pembaruan Langsung",
"Live updates disabled": "Pembaruan langsung dinonaktifkan",
"Live updates enabled": "Pembaruan langsung diaktifkan",
"Load Presets from File": "Muat Preset dari File",
"Load/Save Presets": "Muat/Simpan Preset",
"Locale": "Lokal",
"Log App State to console": "Catat status app ke konsol",
- "Log Entries": "Entri Log",
"Log Out": "Keluar",
"Low": "Low",
"Main menu": "Menu utama",
@@ -129,6 +135,7 @@
"Move each selected alert to its own new incident": "Pindahkan setiap peringatan terpilih ke insiden baru masing-masing",
"Move to": "Pindah ke",
"Move X alerts to another incident_other": "Pindahkan {{count}} peringatan ke insiden lain",
+ "n/a": "n/a",
"New Incidents": "Insiden Baru",
"No Incidents Found": "Tidak ada insiden yang ditemukan",
"Not requested": "Tidak diminta",
@@ -139,6 +146,7 @@
"on": "on",
"Open Incidents": "Insiden yang Dibuka",
"Please contact the associated site owner for access": "Silakan hubungi pemilik situs terkait untuk akses",
+ "Polling": "Polling",
"Presets file is for a different subdomain": "File preset untuk subdomain yang berbeda",
"Presets loaded": "Preset dimuat",
"Priority": "Prioritas",
@@ -149,7 +157,9 @@
"Reassign": "Tugaskan ulang",
"Reassign To": "Tugaskan ulang ke",
"Reassigning": "Menugaskan ulang",
+ "Reauthorize": "Otorisasi ulang",
"Refresh Incidents": "Segarkan insiden",
+ "Refresh OAuth Token": "Segarkan Token OAuth",
"Refreshing": "Sedang refresh",
"Relative Dates": "Tanggal Relatif",
"Requested additional response for": "Meminta tanggapan tambahan untuk",
@@ -160,6 +170,7 @@
"Responders": "Penjawab",
"response play for": "response play untuk",
"Response Plays": "Response Plays",
+ "Restart canceled": "Mulai ulang dibatalkan",
"Run Action": "Jalankan Aksi",
"running": "sedang berjalan",
"Running custom action": "Menjalankan aksi khusus",
@@ -195,6 +206,7 @@
"Teams": "Tim-tim",
"Text to add": "Teks yang akan ditambahkan",
"The alerts of the selected incidents will be merged into a single incident": "Peringatan dari insiden yang dipilih akan digabungkan menjadi satu insiden tunggal",
+ "The application will restart in X seconds.": "Aplikasi akan dimulai ulang dalam {{seconds}} detik.",
"The remaining selected incidents will be resolved after the merge is complete": "Insiden terpilih yang tersisa akan diselesaikan setelah penggabungan selesai",
"Time": "Waktu",
"Title": "Judul",
@@ -204,14 +216,15 @@
"triggered for": "terpicu untuk",
"Unable to fetch account abilities": "Tidak dapat mengambil kemampuan akun",
"Unable to fetch current user details": "Tidak dapat mengambil detail pengguna saat ini",
- "Unable to fetch log entries": "Tidak dapat mengambil entri log",
"Unauthorized Access": "Akses tidak sah",
- "Unknown error while using PD API": "Unknown error while using PD API",
+ "Unauthorized. Please re-authorize.": "Tidak diizinkan. Silakan otorisasi ulang.",
+ "Unknown error while using PD API": "Error tidak diketahui saat menggunakan API PD",
"Until": "Sampai",
"Update Priority": "Perbarui Prioritas",
"Updated At": "Diperbarui pada",
"Updated user profile settings": "Pengaturan profil pengguna telah diperbarui",
"Updating priority": "Memperbarui prioritas",
+ "Updating titles": "Memperbarui judul",
"Urgency": "Urgensi",
"User is not permitted to access this instance of PagerDuty Live": "Pengguna tidak diizinkan untuk mengakses instance PagerDuty Live ini",
"Users": "Pengguna",
diff --git a/src/locales/ja/translation.json b/src/locales/ja/translation.json
index 4a73cdc3..96913c19 100644
--- a/src/locales/ja/translation.json
+++ b/src/locales/ja/translation.json
@@ -24,11 +24,14 @@
"Age": "経過時間",
"Alerts": "アラート",
"Alerts for incident X": "インシデント {{incident_number}} のアラート",
+ "An unexpected error has occurred:": "予期しないエラーが発生しました:",
"and their alerts have been merged onto incident": "そして該当アラートはインシデントにマージされました",
"and X more": "とその他{{excessIncidents}}件",
"Assignees": "アサイン先",
"Available": "選択可能",
"Cancel": "キャンセル",
+ "Cannot merge incidents containing more than 1000 alerts": "1000件以上のアラートを含むインシデントはマージできません",
+ "Catastrophic Error": "致命的エラー",
"characters remaining": "文字まで入力可能",
"Class": "クラス",
"Clear Alerts": "アラートをクリア",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "このアプリを利用するのに、PagerDuty OAuthに接続してください",
"Connected": "接続済み",
"Connecting": "接続中",
- "Connection": "接続",
"Created At": "作成日時",
"critical": "critical",
"Current subdomain does not have the correct ability to use PagerDuty Live": "現在のサブドメインはPagerDuty Liveを使用するための十分な権限を持っていません",
@@ -56,6 +58,7 @@
"Description": "説明",
"Detailed Status": "詳細ステータス",
"Disclaimer & License": "免責事項・ライセンス",
+ "Don't Restart": "再起動しない",
"Download CSV (X alerts)_other": "CSVをダウンロード({{count}}件)",
"Drag and drop to reorder": "ドラッグ&ドロップで並び替え",
"error": "error",
@@ -97,9 +100,12 @@
"info": "info",
"Invalid presets file": "無効なプリセットファイル",
"JSON Path": "JSONパス",
+ "Last Completed": "最後に完了した",
+ "Last Requested": "最後にリクエストされた",
"Last Status Change At": "最終ステータス更新日時",
"Last Status Change By": "最終ステータス更新者",
"Latest Alert At": "最新のアラート日時",
+ "Latest Log Entry": "Latest Log Entry",
"Latest Log Entry At": "最新のログエントリー日時",
"Latest Log Entry Type": "最新のログエントリータイプ",
"Latest Note": "最新のメモ",
@@ -108,13 +114,13 @@
"Links": "リンク",
"Live Incidents Console": "ライブインシデントコンソール",
"Live Incidents Console will reload to apply the new presets": "ライブインシデントコンソールは新しいプリセットを適用するためにリロードされます",
+ "Live Updates": "ライブ更新",
"Live updates disabled": "ライブ更新が無効になっています",
"Live updates enabled": "ライブ更新が有効になっています",
"Load Presets from File": "ファイルからプリセットを読み込む",
"Load/Save Presets": "プリセットの読み込み/保存",
"Locale": "ロケール",
"Log App State to console": "アプリの状態をコンソールに記録",
- "Log Entries": "ログエントリー",
"Log Out": "ログアウト",
"Low": "低",
"Main menu": "メインメニュー",
@@ -129,6 +135,7 @@
"Move each selected alert to its own new incident": "選択した各アラートをそれぞれ新しいインシデントに移動",
"Move to": "移動先",
"Move X alerts to another incident_other": "{{count}}件のアラートを別のインシデントに移動",
+ "n/a": "n/a",
"New Incidents": "新規インシデント",
"No Incidents Found": "インシデントが見つかりません",
"Not requested": "リクエストされていません",
@@ -139,6 +146,7 @@
"on": "。対象:",
"Open Incidents": "オープンインシデント",
"Please contact the associated site owner for access": "アクセスするには、サイトオーナーにお問い合わせください",
+ "Polling": "ポーリング中",
"Presets file is for a different subdomain": "プリセットファイルは別のサブドメイン用です",
"Presets loaded": "プリセットがロードされました",
"Priority": "優先度",
@@ -149,7 +157,9 @@
"Reassign": "再アサイン",
"Reassign To": "再アサイン先",
"Reassigning": "再アサイン中",
+ "Reauthorize": "再認証",
"Refresh Incidents": "インシデントを更新",
+ "Refresh OAuth Token": "OAuthトークンをリフレッシュ",
"Refreshing": "リフレッシュ中",
"Relative Dates": "相対日付",
"Requested additional response for": "追加対応を依頼対象",
@@ -160,6 +170,7 @@
"Responders": "レスポンダー",
"response play for": "レスポンスプレイ対象",
"Response Plays": "レスポンスプレイ",
+ "Restart canceled": "再起動がキャンセルされました",
"Run Action": "アクションを実行",
"running": "実行中",
"Running custom action": "カスタムアクションを実行中",
@@ -195,6 +206,7 @@
"Teams": "チーム",
"Text to add": "追加するテキスト",
"The alerts of the selected incidents will be merged into a single incident": "選択したインシデントのアラートはのインシデントにマージされます",
+ "The application will restart in X seconds.": "アプリケーションは{{seconds}}秒後に再起動します。",
"The remaining selected incidents will be resolved after the merge is complete": "残りの選択中のインシデントはマージが完了したら、解決済みになります",
"Time": "時間",
"Title": "件名",
@@ -204,14 +216,15 @@
"triggered for": "トリガー対象",
"Unable to fetch account abilities": "アカウント権限を取得できません",
"Unable to fetch current user details": "現在のユーザーの詳細を取得できません",
- "Unable to fetch log entries": "ログエントリーを取得できません",
"Unauthorized Access": "不正アクセス",
+ "Unauthorized. Please re-authorize.": "権限がありません。再認証してください。",
"Unknown error while using PD API": "PD API使用時に不明なエラーが発生しました",
"Until": "下記の日付まで",
"Update Priority": "優先度を更新する",
"Updated At": "更新日時",
"Updated user profile settings": "ユーザープロフィール設定が更新されました",
"Updating priority": "優先度を更新中",
+ "Updating titles": "タイトルを更新中",
"Urgency": "緊急度",
"User is not permitted to access this instance of PagerDuty Live": "ユーザーはこのPagerDuty Liveのインスタンスへのアクセスは許可されません",
"Users": "ユーザー",
diff --git a/src/locales/pt-br/translation.json b/src/locales/pt-br/translation.json
index 9a1089db..0c5d9bee 100644
--- a/src/locales/pt-br/translation.json
+++ b/src/locales/pt-br/translation.json
@@ -24,11 +24,14 @@
"Age": "Idade",
"Alerts": "Alertas",
"Alerts for incident X": "Alertas para incidente {{incident_number}}",
+ "An unexpected error has occurred:": "Ocorreu um erro inesperado:",
"and their alerts have been merged onto incident": "e os seus alertas foram combinados no incidente",
"and X more": "e mais {{excessIncidents}}",
"Assignees": "Detentores",
"Available": "Disponível",
"Cancel": "Cancelar",
+ "Cannot merge incidents containing more than 1000 alerts": "Não é possível combinar incidentes que contenham mais de 1000 alertas",
+ "Catastrophic Error": "Erro Catastrófico",
"characters remaining": "caracteres restantes",
"Class": "Classe",
"Clear Alerts": "Limpar Alertas",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Conectar usando PagerDuty OAuth para usar esta aplicação",
"Connected": "Conectado",
"Connecting": "Conectando",
- "Connection": "Conexão",
"Created At": "Criado Em",
"critical": "urgente",
"Current subdomain does not have the correct ability to use PagerDuty Live": "O subdomínio atual não tem a capacidade correta para usar PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Descrição",
"Detailed Status": "Estado Detalhado",
"Disclaimer & License": "Aviso Legal & Licença",
+ "Don't Restart": "Não Reiniciar",
"Download CSV (X alerts)_one": "Baixar CSV ({{count}} alerta)",
"Download CSV (X alerts)_many": "Baixar CSV ({{count}} alertas)",
"Download CSV (X alerts)_other": "Baixar CSV ({{count}} alertas)",
@@ -99,9 +102,12 @@
"info": "informação",
"Invalid presets file": "Arquivo de predefinições inválido",
"JSON Path": "Caminho JSON",
+ "Last Completed": "Último Concluído",
+ "Last Requested": "Último Solicitado",
"Last Status Change At": "Última Alteração de Estado às",
"Last Status Change By": "Última Alteração de Estado por",
"Latest Alert At": "Último Alerta às",
+ "Latest Log Entry": "Última Entrada de Registro",
"Latest Log Entry At": "Última Entrada de Registro às",
"Latest Log Entry Type": "Último Tipo de Entrada de Registro",
"Latest Note": "Última Anotação",
@@ -110,13 +116,13 @@
"Links": "Links",
"Live Incidents Console": "Console de Incidentes ao Vivo",
"Live Incidents Console will reload to apply the new presets": "O Console de Incidentes ao Vivo será recarregado para aplicar as novas predefinições",
+ "Live Updates": "Atualizações ao Vivo",
"Live updates disabled": "Atualizações ao Vivo Desativadas",
"Live updates enabled": "Atualizações ao Vivo Ativadas",
"Load Presets from File": "Carregar Predefinições de Arquivo",
"Load/Save Presets": "Carregar/Salvar Predefinições",
"Locale": "Região",
"Log App State to console": "Registrar Estado da Aplicação no console",
- "Log Entries": "Entradas de Registro",
"Log Out": "Terminar Sessão",
"Low": "Baixo",
"Main menu": "Menu principal",
@@ -133,6 +139,7 @@
"Move X alerts to another incident_one": "Mover 1 alerta para outro incidente",
"Move X alerts to another incident_many": "Mover {{count}} alertas para outro incidente",
"Move X alerts to another incident_other": "Mover {{count}} alertas para outro incidente",
+ "n/a": "n/d",
"New Incidents": "Novos Incidentes",
"No Incidents Found": "Nenhum Incidente Encontrado",
"Not requested": "Não solicitado",
@@ -143,6 +150,7 @@
"on": "em",
"Open Incidents": "Incidentes Abertos",
"Please contact the associated site owner for access": "Por favor entre em contato com o proprietário do site associado para obter acesso",
+ "Polling": "Consultando",
"Presets file is for a different subdomain": "O arquivo de predefinições é para um subdomínio diferente",
"Presets loaded": "Predefinições carregadas",
"Priority": "Prioridade",
@@ -153,7 +161,9 @@
"Reassign": "Reatribuir",
"Reassign To": "Reatribuir a",
"Reassigning": "Reass",
+ "Reauthorize": "Reautorizar",
"Refresh Incidents": "Atualizar Incidentes",
+ "Refresh OAuth Token": "Atualizar Token OAuth",
"Refreshing": "Atualizando",
"Relative Dates": "Datas Relativas",
"Requested additional response for": "Resposta adicional solicitada para",
@@ -164,6 +174,7 @@
"Responders": "Respondentes",
"response play for": "conjunto de respostas para",
"Response Plays": "Conjunto de Respostas",
+ "Restart canceled": "Reinício cancelado",
"Run Action": "Executar Ação",
"running": "executando",
"Running custom action": "Executando ação personalizada",
@@ -199,6 +210,7 @@
"Teams": "Equipes",
"Text to add": "Texto a adicionar",
"The alerts of the selected incidents will be merged into a single incident": "Os alertas dos incidentes selecionados serão combinados em um único incidente",
+ "The application will restart in X seconds.": "A aplicação será reiniciada em {{seconds}} segundos.",
"The remaining selected incidents will be resolved after the merge is complete": "Os restantes incidentes selecionados serão resolvidos, uma vez completa a combinação",
"Time": "Hora",
"Title": "Título",
@@ -208,14 +220,15 @@
"triggered for": "acionado para",
"Unable to fetch account abilities": "Não foi possível obter as capacidades da conta",
"Unable to fetch current user details": "Não foi possível obter os dados atuais do usuário",
- "Unable to fetch log entries": "Não foi possível obter as entradas de registro",
"Unauthorized Access": "Acesso não autorizado",
+ "Unauthorized. Please re-authorize.": "Não autorizado. Por favor, reautorize.",
"Unknown error while using PD API": "Erro desconhecido ao usar a API da PD",
"Until": "Até",
"Update Priority": "Atualizar Prioridade",
"Updated At": "Atualizado às",
"Updated user profile settings": "Configurações de perfil de usuário atualizadas",
"Updating priority": "Atualizando prioridade",
+ "Updating titles": "Atualizando títulos",
"Urgency": "Urgência",
"User is not permitted to access this instance of PagerDuty Live": "O usuário não tem permissão para acessar a esta instância do PagerDuty Live",
"Users": "Usuários",
diff --git a/src/locales/pt/translation.json b/src/locales/pt/translation.json
index dc72bc2b..3797a4da 100644
--- a/src/locales/pt/translation.json
+++ b/src/locales/pt/translation.json
@@ -24,11 +24,14 @@
"Age": "Idade",
"Alerts": "Alertas",
"Alerts for incident X": "Alertas para incidente {{incident_number}}",
+ "An unexpected error has occurred:": "Ocorreu um erro inesperado:",
"and their alerts have been merged onto incident": "e os seus alertas foram combinados no incidente",
"and X more": "e mais {{excessIncidents}}",
"Assignees": "Responsáveis",
"Available": "Disponível",
"Cancel": "Cancelar",
+ "Cannot merge incidents containing more than 1000 alerts": "Não é possível combinar incidentes que contenham mais de 1000 alertas",
+ "Catastrophic Error": "Erro Catastrófico",
"characters remaining": "caracteres restantes",
"Class": "Classe",
"Clear Alerts": "Limpar Alertas",
@@ -42,7 +45,6 @@
"Connect using PagerDuty OAuth to use this app": "Ligue usando PagerDuty OAuth para usar esta aplicação",
"Connected": "Ligado",
"Connecting": "A ligar",
- "Connection": "Ligação",
"Created At": "Criado Em",
"critical": "urgente",
"Current subdomain does not have the correct ability to use PagerDuty Live": "O subdomínio atual não tem a capacidade correta para usar PagerDuty Live",
@@ -56,6 +58,7 @@
"Description": "Descrição",
"Detailed Status": "Estado Detalhado",
"Disclaimer & License": "Aviso Legal & Licença",
+ "Don't Restart": "Não Reiniciar",
"Download CSV (X alerts)_one": "Baixar CSV ({{count}} alerta)",
"Download CSV (X alerts)_many": "Baixar CSV ({{count}} alertas)",
"Download CSV (X alerts)_other": "Baixar CSV ({{count}} alertas)",
@@ -99,9 +102,12 @@
"info": "informação",
"Invalid presets file": "Ficheiro de predefinições inválido",
"JSON Path": "Caminho JSON",
+ "Last Completed": "Último Concluído",
+ "Last Requested": "Último Solicitado",
"Last Status Change At": "Última Alteração de Estado às",
"Last Status Change By": "Última Alteração de Estado por",
"Latest Alert At": "Último Alerta às",
+ "Latest Log Entry": "Última Entrada de Registo",
"Latest Log Entry At": "Última Entrada de Registo às",
"Latest Log Entry Type": "Último Tipo de Entrada de Registo",
"Latest Note": "Última Nota",
@@ -110,13 +116,13 @@
"Links": "Links",
"Live Incidents Console": "Consola de Incidentes ao Vivo",
"Live Incidents Console will reload to apply the new presets": "A Consola de Incidentes ao Vivo será recarregada para aplicar as novas predefinições",
+ "Live Updates": "Atualizações ao Vivo",
"Live updates disabled": "Atualizações ao Vivo Desativadas",
"Live updates enabled": "Live updates enabled",
"Load Presets from File": "Carregar Predefinições de Ficheiro",
"Load/Save Presets": "Carregar/Gravar Predefinições",
"Locale": "Região",
"Log App State to console": "Registar Estado da Aplicação na consola",
- "Log Entries": "Entradas de Registo",
"Log Out": "Terminar Sessão",
"Low": "Baixo",
"Main menu": "Menu principal",
@@ -133,6 +139,7 @@
"Move X alerts to another incident_one": "Mover 1 alerta para outro incidente",
"Move X alerts to another incident_many": "Mover {{count}} alertas para outro incidente",
"Move X alerts to another incident_other": "Mover {{count}} alertas para outro incidente",
+ "n/a": "n/d",
"New Incidents": "Novos Incidentes",
"No Incidents Found": "Nenhum Incidente Encontrado",
"Not requested": "Não solicitado",
@@ -143,6 +150,7 @@
"on": "em",
"Open Incidents": "Incidentes Abertos",
"Please contact the associated site owner for access": "Por favor entre em contato com o proprietário do site associado para obter acesso",
+ "Polling": "A sondar",
"Presets file is for a different subdomain": "O ficheiro de predefinições é para um subdomínio diferente",
"Presets loaded": "Predefinições carregadas",
"Priority": "Prioridade",
@@ -153,7 +161,9 @@
"Reassign": "Reatribuir",
"Reassign To": "Reatribuir a",
"Reassigning": "A reatribuir",
+ "Reauthorize": "Reautorizar",
"Refresh Incidents": "Atualizar Incidentes",
+ "Refresh OAuth Token": "Atualizar Token OAuth",
"Refreshing": "Atualizando",
"Relative Dates": "Datas Relativas",
"Requested additional response for": "Resposta adicional solicitada para",
@@ -164,6 +174,7 @@
"Responders": "Respondentes",
"response play for": "conjunto de respostas para",
"Response Plays": "Conjunto de Respostas",
+ "Restart canceled": "Reinício cancelado",
"Run Action": "Executar Ação",
"running": "executando",
"Running custom action": "A executar ação personalizada",
@@ -199,6 +210,7 @@
"Teams": "Equipas",
"Text to add": "Texto a adicionar",
"The alerts of the selected incidents will be merged into a single incident": "Os alertas dos incidentes selecionados serão combinados num único incidente",
+ "The application will restart in X seconds.": "A aplicação será reiniciada em {{seconds}} segundos.",
"The remaining selected incidents will be resolved after the merge is complete": "Os restantes incidentes selecionados serão resolvidos, uma vez completa a combinação",
"Time": "Hora",
"Title": "Título",
@@ -208,14 +220,15 @@
"triggered for": "acionado para",
"Unable to fetch account abilities": "Não foi possível obter as capacidades da conta",
"Unable to fetch current user details": "Não foi possível obter os dados atuais do utilizador",
- "Unable to fetch log entries": "Não foi possível obter as entradas de registro",
"Unauthorized Access": "Acesso não autorizado",
+ "Unauthorized. Please re-authorize.": "Não autorizado. Por favor, reautorize.",
"Unknown error while using PD API": "Erro desconhecido ao usar a API da PD",
"Until": "Até",
"Update Priority": "Atualizar Prioridade",
"Updated At": "Atualizado às",
"Updated user profile settings": "Configurações de perfil de utilizador atualizadas",
"Updating priority": "A atualizar prioridade",
+ "Updating titles": "A atualizar títulos",
"Urgency": "Urgência",
"User is not permitted to access this instance of PagerDuty Live": "O utilizador não tem permissão para aceder a esta instância do PagerDuty Live",
"Users": "Utilizadores",
diff --git a/src/redux/connection/actions.js b/src/redux/connection/actions.js
index a9588325..62eaaf70 100644
--- a/src/redux/connection/actions.js
+++ b/src/redux/connection/actions.js
@@ -4,17 +4,31 @@ export const UPDATE_CONNECTION_STATUS_COMPLETED = 'UPDATE_CONNECTION_STATUS_COMP
export const UPDATE_QUEUE_STATS_REQUESTED = 'UPDATE_QUEUE_STATS_REQUESTED';
export const UPDATE_QUEUE_STATS_COMPLETED = 'UPDATE_QUEUE_STATS_COMPLETED';
+export const START_QUEUE_STATS_POLLING = 'START_QUEUE_STATS_POLLING';
+export const STOP_QUEUE_STATS_POLLING = 'STOP_QUEUE_STATS_POLLING';
export const CHECK_CONNECTION_STATUS_REQUESTED = 'CHECK_CONNECTION_STATUS_REQUESTED';
export const CHECK_CONNECTION_STATUS_COMPLETED = 'CHECK_CONNECTION_STATUS_COMPLETED';
+export const START_CONNECTION_STATUS_POLLING = 'START_CONNECTION_STATUS_POLLING';
+export const STOP_CONNECTION_STATUS_POLLING = 'STOP_CONNECTION_STATUS_POLLING';
export const CHECK_ABILITIES_REQUESTED = 'CHECK_ABILITIES_REQUESTED';
export const CHECK_ABILITIES_COMPLETED = 'CHECK_ABILITIES_COMPLETED';
export const CHECK_ABILITIES_ERROR = 'CHECK_ABILITIES_ERROR';
+export const START_ABILITIES_POLLING = 'START_ABILITIES_POLLING';
+export const STOP_ABILITIES_POLLING = 'STOP_ABILITIES_POLLING';
+
+export const OAUTH_REFRESH_REQUESTED = 'OAUTH_REFRESH_REQUESTED';
+export const OAUTH_REFRESH_COMPLETED = 'OAUTH_REFRESH_COMPLETED';
+export const OAUTH_REFRESH_ERROR = 'OAUTH_REFRESH_ERROR';
+export const START_OAUTH_REFRESH_POLLING = 'START_OAUTH_REFRESH_POLLING';
+export const STOP_OAUTH_REFRESH_POLLING = 'STOP_OAUTH_REFRESH_POLLING';
export const SAVE_ERROR_REQUESTED = 'SAVE_ERROR_REQUESTED';
export const SAVE_ERROR_COMPLETED = 'SAVE_ERROR_COMPLETED';
+export const CATASTROPHE = 'CATASTROPHE';
+
// Define Actions
export const updateConnectionStatus = (
connectionStatus,
diff --git a/src/redux/connection/reducers.js b/src/redux/connection/reducers.js
index ae664876..e14b7235 100644
--- a/src/redux/connection/reducers.js
+++ b/src/redux/connection/reducers.js
@@ -8,13 +8,23 @@ import {
UPDATE_CONNECTION_STATUS_COMPLETED,
UPDATE_QUEUE_STATS_REQUESTED,
UPDATE_QUEUE_STATS_COMPLETED,
+ START_QUEUE_STATS_POLLING,
+ STOP_QUEUE_STATS_POLLING,
CHECK_CONNECTION_STATUS_REQUESTED,
CHECK_CONNECTION_STATUS_COMPLETED,
+ START_CONNECTION_STATUS_POLLING,
+ STOP_CONNECTION_STATUS_POLLING,
CHECK_ABILITIES_REQUESTED,
CHECK_ABILITIES_COMPLETED,
CHECK_ABILITIES_ERROR,
+ START_ABILITIES_POLLING,
+ STOP_ABILITIES_POLLING,
+ OAUTH_REFRESH_REQUESTED,
+ OAUTH_REFRESH_COMPLETED,
+ OAUTH_REFRESH_ERROR,
SAVE_ERROR_REQUESTED,
SAVE_ERROR_COMPLETED,
+ CATASTROPHE,
} from './actions';
const connection = produce(
@@ -45,6 +55,14 @@ const connection = produce(
draft.queueStats = action.queueStats;
break;
+ case START_QUEUE_STATS_POLLING:
+ draft.status = START_QUEUE_STATS_POLLING;
+ break;
+
+ case STOP_QUEUE_STATS_POLLING:
+ draft.status = STOP_QUEUE_STATS_POLLING;
+ break;
+
case CHECK_CONNECTION_STATUS_REQUESTED:
draft.status = CHECK_CONNECTION_STATUS_REQUESTED;
break;
@@ -53,6 +71,14 @@ const connection = produce(
draft.status = CHECK_CONNECTION_STATUS_COMPLETED;
break;
+ case START_CONNECTION_STATUS_POLLING:
+ draft.status = START_CONNECTION_STATUS_POLLING;
+ break;
+
+ case STOP_CONNECTION_STATUS_POLLING:
+ draft.status = STOP_CONNECTION_STATUS_POLLING;
+ break;
+
case CHECK_ABILITIES_REQUESTED:
draft.status = CHECK_ABILITIES_REQUESTED;
break;
@@ -62,6 +88,26 @@ const connection = produce(
draft.abilities = action.abilities;
break;
+ case START_ABILITIES_POLLING:
+ draft.status = START_ABILITIES_POLLING;
+ break;
+
+ case STOP_ABILITIES_POLLING:
+ draft.status = STOP_ABILITIES_POLLING;
+ break;
+
+ case OAUTH_REFRESH_REQUESTED:
+ draft.status = OAUTH_REFRESH_REQUESTED;
+ break;
+
+ case OAUTH_REFRESH_COMPLETED:
+ draft.status = OAUTH_REFRESH_COMPLETED;
+ break;
+
+ case OAUTH_REFRESH_ERROR:
+ draft.status = OAUTH_REFRESH_ERROR;
+ break;
+
case CHECK_ABILITIES_ERROR:
draft.status = CHECK_ABILITIES_ERROR;
break;
@@ -78,6 +124,11 @@ const connection = produce(
}
break;
+ case CATASTROPHE:
+ draft.status = CATASTROPHE;
+ draft.connectionStatusMessage = action.connectionStatusMessage;
+ break;
+
default:
break;
}
diff --git a/src/redux/connection/sagas.js b/src/redux/connection/sagas.js
index c9e0af57..230ba228 100644
--- a/src/redux/connection/sagas.js
+++ b/src/redux/connection/sagas.js
@@ -1,10 +1,11 @@
import {
- put, call, select, takeLatest, take,
+ put, call, select, takeLatest, take, race, delay,
} from 'redux-saga/effects';
import i18next from 'src/i18n';
import {
+ getLimiterStats,
throttledPdAxiosRequest,
} from 'src/util/pd-api-wrapper';
@@ -18,7 +19,10 @@ import {
} from 'src/util/sagas';
import {
- PD_REQUIRED_ABILITY, DEBUG_DISABLE_POLLING,
+ PD_OAUTH_CLIENT_ID,
+ PD_OAUTH_CLIENT_SECRET,
+ PD_REQUIRED_ABILITY,
+ DEBUG_DISABLE_POLLING,
} from 'src/config/constants';
import {
@@ -26,11 +30,22 @@ import {
UPDATE_CONNECTION_STATUS_COMPLETED,
UPDATE_QUEUE_STATS_REQUESTED,
UPDATE_QUEUE_STATS_COMPLETED,
+ START_QUEUE_STATS_POLLING,
+ STOP_QUEUE_STATS_POLLING,
CHECK_CONNECTION_STATUS_REQUESTED,
CHECK_CONNECTION_STATUS_COMPLETED,
+ START_CONNECTION_STATUS_POLLING,
+ STOP_CONNECTION_STATUS_POLLING,
CHECK_ABILITIES_REQUESTED,
CHECK_ABILITIES_COMPLETED,
CHECK_ABILITIES_ERROR,
+ START_ABILITIES_POLLING,
+ STOP_ABILITIES_POLLING,
+ OAUTH_REFRESH_REQUESTED,
+ OAUTH_REFRESH_COMPLETED,
+ OAUTH_REFRESH_ERROR,
+ START_OAUTH_REFRESH_POLLING,
+ STOP_OAUTH_REFRESH_POLLING,
SAVE_ERROR_REQUESTED,
SAVE_ERROR_COMPLETED,
} from './actions';
@@ -65,6 +80,20 @@ export function* updateQueueStatsImpl(action) {
});
}
+export function* updateQueueStatsTask() {
+ while (true) {
+ yield call(updateQueueStatsImpl, { queueStats: getLimiterStats() });
+ yield delay(1000);
+ }
+}
+
+export function* updateQueueStatsTaskWatcher() {
+ while (true) {
+ yield take(START_QUEUE_STATS_POLLING);
+ yield race([call(updateQueueStatsTask), take(STOP_QUEUE_STATS_POLLING)]);
+ }
+}
+
export function* checkConnectionStatus() {
yield takeLatest(CHECK_CONNECTION_STATUS_REQUESTED, checkConnectionStatusImpl);
}
@@ -77,21 +106,31 @@ export function* checkConnectionStatusImpl() {
}
// Check entire store for fulfilled statuses
- const store = yield select();
+ const {
+ incidents: {
+ status: incidentsStatus,
+ },
+ logEntries: {
+ status: logEntriesStatus,
+ },
+ extensions: {
+ status: extensionsStatus,
+ },
+ connection: {
+ abilities,
+ connectionStatusMessage,
+ },
+ } = yield select();
let validConnection = false;
if (
- store.incidents.status.includes('COMPLETED')
- && store.logEntries.status.includes('COMPLETED')
- && store.extensions.status.includes('COMPLETED')
+ incidentsStatus.includes('COMPLETED')
+ && logEntriesStatus.includes('COMPLETED')
+ && extensionsStatus.includes('COMPLETED')
) {
// Ignoring priorities as this is persisted to localcache
validConnection = true;
}
- // Update connection status depending on store state
- const {
- abilities,
- } = store.connection;
if (DEBUG_DISABLE_POLLING) {
yield updateConnectionStatusRequested('negative', i18next.t('Live updates disabled'));
} else if (validConnection) {
@@ -108,11 +147,25 @@ export function* checkConnectionStatusImpl() {
} else if (!abilities.includes(PD_REQUIRED_ABILITY)) {
yield updateConnectionStatusRequested('negative', MISSING_ABILITY_ERROR);
} else {
- yield updateConnectionStatusRequested('neutral', store.connection.connectionStatusMessage);
+ yield updateConnectionStatusRequested('neutral', connectionStatusMessage);
}
yield put({ type: CHECK_CONNECTION_STATUS_COMPLETED });
}
+export function* checkConnectionStatusTask() {
+ while (true) {
+ yield call(checkConnectionStatusImpl);
+ yield delay(1000);
+ }
+}
+
+export function* checkConnectionStatusTaskWatcher() {
+ while (true) {
+ yield take(START_CONNECTION_STATUS_POLLING);
+ yield race([call(checkConnectionStatusTask), take(STOP_CONNECTION_STATUS_POLLING)]);
+ }
+}
+
export function* checkAbilities() {
yield takeLatest(CHECK_ABILITIES_REQUESTED, checkAbilitiesAsync);
}
@@ -146,6 +199,93 @@ export function* checkAbilitiesAsync() {
}
}
+export function* checkAbilitiesTask() {
+ while (true) {
+ yield call(checkAbilitiesAsync);
+ yield delay(300_000);
+ }
+}
+
+export function* checkAbilitiesTaskWatcher() {
+ while (true) {
+ yield take(START_ABILITIES_POLLING);
+ yield race([call(checkAbilitiesTask), take(STOP_ABILITIES_POLLING)]);
+ }
+}
+
+export function* refreshOauth() {
+ yield takeLatest(OAUTH_REFRESH_REQUESTED, refreshOauthImpl);
+}
+
+export function* refreshOauthImpl() {
+ const postData = async (url, data) => {
+ const formData = new URLSearchParams(data); // Convert data to URL-encoded form data
+ const response = await fetch(url, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded', // Set the content type
+ },
+ body: formData.toString(), // Convert the form data to a string
+ });
+ const json = await response.json(); // Parse the response JSON
+ return json;
+ };
+
+ const refreshToken = sessionStorage.getItem('pd_refresh_token');
+ if (!refreshToken) {
+ yield put({ type: OAUTH_REFRESH_ERROR, message: 'No refresh token found' });
+ }
+
+ const requestTokenUrl = 'https://identity.pagerduty.com/oauth/token';
+ const formData = {
+ grant_type: 'refresh_token',
+ client_id: PD_OAUTH_CLIENT_ID,
+ client_secret: PD_OAUTH_CLIENT_SECRET,
+ refresh_token: refreshToken,
+ };
+
+ const response = yield call(postData, requestTokenUrl, formData);
+ const {
+ access_token: accessToken,
+ refresh_token: newRefreshToken,
+ expires_in: expiresIn,
+ } = response;
+ if (!accessToken || !newRefreshToken || !expiresIn) {
+ yield put({ type: OAUTH_REFRESH_ERROR, message: 'Invalid response from OAuth server' });
+ } else {
+ sessionStorage.setItem('pd_access_token', accessToken);
+ sessionStorage.setItem('pd_refresh_token', newRefreshToken);
+ sessionStorage.setItem('pd_token_expires_at', Date.now() + expiresIn * 1000);
+ yield put({ type: OAUTH_REFRESH_COMPLETED });
+ }
+}
+
+export function* checkForTokenExpiry() {
+ while (true) {
+ const tokenExpiresAtStr = sessionStorage.getItem('pd_token_expires_at');
+ const refreshToken = sessionStorage.getItem('pd_refresh_token');
+ if (
+ (typeof refreshToken === 'string')
+ && (refreshToken.startsWith('pd'))
+ && (typeof tokenExpiresAtStr === 'string')
+ && (/^-?\d+$/.test(tokenExpiresAtStr))
+ ) {
+ const tokenExpiresAt = new Date(parseInt(tokenExpiresAtStr, 10));
+ if (tokenExpiresAt && (Date.now() + 60_000 > tokenExpiresAt)) {
+ yield put({ type: OAUTH_REFRESH_REQUESTED });
+ }
+ }
+ yield delay(60_000);
+ }
+}
+
+export function* checkForTokenExpiryWatcher() {
+ while (true) {
+ yield take(START_OAUTH_REFRESH_POLLING);
+ yield race([call(checkForTokenExpiry), take(STOP_OAUTH_REFRESH_POLLING)]);
+ }
+}
+
export function* saveError() {
yield takeLatest(SAVE_ERROR_REQUESTED, saveErrorImpl);
}
diff --git a/src/redux/escalation_policies/sagas.js b/src/redux/escalation_policies/sagas.js
index 94685fc4..8f062a6b 100644
--- a/src/redux/escalation_policies/sagas.js
+++ b/src/redux/escalation_policies/sagas.js
@@ -32,6 +32,7 @@ export function* getEscalationPolicies() {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: FETCH_ESCALATION_POLICIES_ERROR, message: e.message });
yield put({
diff --git a/src/redux/extensions/sagas.js b/src/redux/extensions/sagas.js
index 9bd51549..62da57ae 100644
--- a/src/redux/extensions/sagas.js
+++ b/src/redux/extensions/sagas.js
@@ -45,6 +45,7 @@ export function* getExtensions() {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: FETCH_EXTENSIONS_ERROR, message: e.message });
yield put({
diff --git a/src/redux/incident_actions/actions.js b/src/redux/incident_actions/actions.js
index fef16377..7c8bec7f 100644
--- a/src/redux/incident_actions/actions.js
+++ b/src/redux/incident_actions/actions.js
@@ -34,6 +34,7 @@ export const TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_REQUESTED = 'TOGGLE_DISPLAY_CUST
export const TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_COMPLETED = 'TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_COMPLETED';
export const MERGE_REQUESTED = 'MERGE_REQUESTED';
+export const MERGE_PROGRESS = 'MERGE_PROGRESS';
export const MERGE_COMPLETED = 'MERGE_COMPLETED';
export const MERGE_ERROR = 'MERGE_ERROR';
diff --git a/src/redux/incident_actions/reducers.js b/src/redux/incident_actions/reducers.js
index 544cf127..d20a587a 100644
--- a/src/redux/incident_actions/reducers.js
+++ b/src/redux/incident_actions/reducers.js
@@ -28,6 +28,7 @@ import {
TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_REQUESTED,
TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_COMPLETED,
MERGE_REQUESTED,
+ MERGE_PROGRESS,
MERGE_COMPLETED,
MERGE_ERROR,
TOGGLE_DISPLAY_MERGE_MODAL_REQUESTED,
@@ -168,14 +169,24 @@ const incidentActions = produce(
case MERGE_REQUESTED:
draft.status = MERGE_REQUESTED;
+ draft.mergeProgress = {
+ total: 1,
+ complete: 0,
+ };
+ break;
+
+ case MERGE_PROGRESS:
+ draft.mergeProgress = action.mergeProgress;
break;
case MERGE_COMPLETED:
draft.mergedIncident = action.mergedIncident;
+ draft.mergeProgress = {};
draft.status = MERGE_COMPLETED;
break;
case MERGE_ERROR:
+ draft.mergeProgress = {};
draft.status = MERGE_ERROR;
draft.error = action.message;
break;
@@ -302,6 +313,7 @@ const incidentActions = produce(
displayCustomSnoozeModal: false,
displayAddNoteModal: false,
displayMergeModal: false,
+ mergeProgress: {},
status: '',
fetchingData: false,
error: null,
diff --git a/src/redux/incident_actions/sagas.js b/src/redux/incident_actions/sagas.js
index 6aafeaa4..2b98d7e0 100644
--- a/src/redux/incident_actions/sagas.js
+++ b/src/redux/incident_actions/sagas.js
@@ -64,6 +64,7 @@ import {
TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_REQUESTED,
TOGGLE_DISPLAY_CUSTOM_SNOOZE_MODAL_COMPLETED,
MERGE_REQUESTED,
+ MERGE_PROGRESS,
MERGE_COMPLETED,
MERGE_ERROR,
TOGGLE_DISPLAY_MERGE_MODAL_REQUESTED,
@@ -90,7 +91,7 @@ import {
} from './actions';
import {
- PROCESS_LOG_ENTRIES_COMPLETED, UPDATE_INCIDENTS,
+ PROCESS_LOG_ENTRIES_COMPLETED, UPDATE_INCIDENTS, getIncidentsAsync,
} from '../incidents/actions';
const chunkedPdAxiosRequestCalls = (
@@ -156,7 +157,7 @@ export function* acknowledge(action) {
const errors = responses.filter((response) => response.status !== 200);
if (errors.length > 0) {
- handleMultipleAPIErrorResponses(errors);
+ yield call(handleMultipleAPIErrorResponses, errors);
}
if (acknowledgedIncidents.length > 0) {
@@ -209,7 +210,7 @@ export function* escalate(action) {
const errors = responses.filter((response) => response.status !== 200);
if (errors.length > 0) {
- handleMultipleAPIErrorResponses(errors);
+ yield call(handleMultipleAPIErrorResponses, errors);
}
if (escalatedIncidents.length > 0) {
@@ -278,7 +279,7 @@ export function* reassign(action) {
const errors = responses.filter((response) => response.status !== 200);
if (errors.length > 0) {
- handleMultipleAPIErrorResponses(errors);
+ yield call(handleMultipleAPIErrorResponses, errors);
}
if (reassignedIncidents.length > 0) {
@@ -371,7 +372,7 @@ export function* addResponder(action) {
updatedIncidentResponderRequests: responses,
});
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, ADD_RESPONDER_ERROR, e);
@@ -451,7 +452,7 @@ export function* snooze(action) {
snoozedIncidents: updatedIncidents,
});
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, SNOOZE_ERROR, e);
@@ -481,61 +482,89 @@ export function* mergeAsync() {
export function* merge(action) {
try {
+ const {
+ displayMergeModal,
+ // mergeProgress,
+ } = yield select(selectIncidentActions);
const {
targetIncident, incidents, displayModal, addToTitleText,
} = action;
const incidentsToBeMerged = [...incidents];
- // Build request manually given PUT
- const data = {
- source_incidents: incidentsToBeMerged.map((incident) => ({
+ // split incidentsToBeMerged into chunks
+ const incidentChunks = chunkArray(incidentsToBeMerged, 25);
+ const incidentBodies = incidentChunks.map((chunk) => ({
+ source_incidents: chunk.map((incident) => ({
id: incident.id,
type: 'incident_reference',
})),
- };
+ }));
- const response = yield call(
+ const numRequests = incidentBodies.length + (addToTitleText ? 1 : 0);
+ let complete = 0;
+ yield put({
+ type: MERGE_PROGRESS,
+ mergeProgress: {
+ total: numRequests,
+ complete,
+ },
+ });
+
+ const mergeRequests = incidentBodies.map((incidentBody) => call(
throttledPdAxiosRequest,
'PUT',
`incidents/${targetIncident.id}/merge`,
null,
- data,
+ incidentBody,
{
priority: 1,
expiration: 5 * 60 * 1000,
},
- );
-
- if (response.status >= 200 && response.status < 300) {
- yield toggleDisplayMergeModalImpl();
-
- const mergedIncident = response.data.incident;
- const resolvedIncidents = incidentsToBeMerged.map((incident) => ({
- id: incident.id,
- status: RESOLVED,
- }));
- yield put({
- type: UPDATE_INCIDENTS,
- updatedIncidents: [...resolvedIncidents, mergedIncident],
- });
+ ));
- if (displayModal) {
- const actionAlertsModalType = 'success';
- const actionAlertsModalMessage = `${i18next.t('Incident')}(s) ${incidentsToBeMerged
- .map((i) => i.incident_number)
- .join(', ')} ${i18next.t('and their alerts have been merged onto incident')}
- ${targetIncident.incident_number}`;
- yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
+ // eslint-disable-next-line no-restricted-syntax
+ for (const mergeRequest of mergeRequests) {
+ const response = yield mergeRequest;
+ if (response.status !== 200) {
+ yield call(handleSingleAPIErrorResponse, response);
+ yield put({
+ type: MERGE_ERROR,
+ message: 'Error merging incidents',
+ });
+ yield getIncidentsAsync();
+ return;
}
+ complete += 1;
yield put({
- type: MERGE_COMPLETED,
- mergedIncident,
+ type: MERGE_PROGRESS,
+ mergeProgress: {
+ total: numRequests,
+ complete,
+ },
});
- } else {
- handleSingleAPIErrorResponse(response);
}
+ const mergedIncidentResp = yield getIncidentByIdRequest(targetIncident.id);
+ const mergedIncident = mergedIncidentResp.data.incident;
+ const resolvedIncidents = incidentsToBeMerged.map((incident) => ({
+ id: incident.id,
+ status: RESOLVED,
+ }));
+
+ yield put({
+ type: UPDATE_INCIDENTS,
+ updatedIncidents: [...resolvedIncidents, mergedIncident],
+ });
+
if (addToTitleText) {
+ yield put({
+ type: MERGE_PROGRESS,
+ mergeProgress: {
+ total: numRequests,
+ complete,
+ updatingTitles: true,
+ },
+ });
const titleUpdates = incidentsToBeMerged.map((incident) => call(
throttledPdAxiosRequest,
'PUT',
@@ -553,11 +582,10 @@ export function* merge(action) {
},
));
const titleResponses = yield all(titleUpdates);
+
const successes = titleResponses.filter((r) => r.status >= 200 && r.status < 300);
if (successes.length !== titleResponses.length) {
- handleMultipleAPIErrorResponses(
- titleResponses.filter((r) => !(r.status >= 200 && r.status < 300)),
- );
+ yield call(handleMultipleAPIErrorResponses, titleResponses);
}
const updatedIncidents = successes.map((r) => r.data.incident);
yield put({
@@ -565,6 +593,21 @@ export function* merge(action) {
updatedIncidents,
});
}
+ if (displayModal) {
+ const actionAlertsModalType = 'success';
+ const actionAlertsModalMessage = `${i18next.t('Incident')}(s) ${incidentsToBeMerged
+ .map((i) => i.incident_number)
+ .join(', ')} ${i18next.t('and their alerts have been merged onto incident')}
+ ${targetIncident.incident_number}`;
+ yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
+ }
+ if (displayMergeModal) {
+ yield toggleDisplayMergeModalImpl();
+ }
+ yield put({
+ type: MERGE_COMPLETED,
+ mergedIncident,
+ });
} catch (e) {
yield call(handleSagaError, MERGE_ERROR, e);
}
@@ -614,7 +657,7 @@ export function* resolve(action) {
const errors = responses.filter((response) => response.status !== 200);
if (errors.length > 0) {
- handleMultipleAPIErrorResponses(errors);
+ yield call(handleMultipleAPIErrorResponses, errors);
}
if (resolvedIncidents.length > 0) {
@@ -705,7 +748,7 @@ export function* updatePriority(action) {
yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
}
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, UPDATE_PRIORITY_ERROR, e);
@@ -755,7 +798,7 @@ export function* addNote(action) {
updatedIncidentNotes: responses,
});
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, ADD_NOTE_ERROR, e);
@@ -823,7 +866,7 @@ export function* runCustomIncidentAction(action) {
yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
}
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, RUN_CUSTOM_INCIDENT_ACTION_ERROR, e);
@@ -925,7 +968,7 @@ export function* syncWithExternalSystem(action) {
yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
}
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
yield call(handleSagaError, SYNC_WITH_EXTERNAL_SYSTEM_ERROR, e);
diff --git a/src/redux/incident_table/actions.js b/src/redux/incident_table/actions.js
index f96e0f48..6895c487 100644
--- a/src/redux/incident_table/actions.js
+++ b/src/redux/incident_table/actions.js
@@ -12,6 +12,9 @@ export const UPDATE_INCIDENT_TABLE_STATE_COMPLETED = 'UPDATE_INCIDENT_TABLE_STAT
export const SELECT_INCIDENT_TABLE_ROWS_REQUESTED = 'SELECT_INCIDENT_TABLE_ROWS_REQUESTED';
export const SELECT_INCIDENT_TABLE_ROWS_COMPLETED = 'SELECT_INCIDENT_TABLE_ROWS_COMPLETED';
+export const CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED = 'CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED';
+export const CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED = 'CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED';
+
// Define Actions
export const saveIncidentTable = (updatedIncidentTableColumns) => ({
@@ -35,3 +38,7 @@ export const selectIncidentTableRows = (allSelected, selectedCount, selectedRows
selectedCount,
selectedRows,
});
+
+export const clearIncidentTableFilters = () => ({
+ type: CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED,
+});
diff --git a/src/redux/incident_table/reducers.js b/src/redux/incident_table/reducers.js
index 652115ad..a7f8d3f8 100644
--- a/src/redux/incident_table/reducers.js
+++ b/src/redux/incident_table/reducers.js
@@ -12,6 +12,8 @@ import {
UPDATE_INCIDENT_TABLE_STATE_COMPLETED,
SELECT_INCIDENT_TABLE_ROWS_REQUESTED,
SELECT_INCIDENT_TABLE_ROWS_COMPLETED,
+ CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED,
+ CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED,
} from './actions';
const defaultColumns = [
@@ -70,6 +72,18 @@ const incidentTable = produce(
draft.status = SELECT_INCIDENT_TABLE_ROWS_COMPLETED;
break;
+ case CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED:
+ draft.status = CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED;
+ break;
+
+ case CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED:
+ draft.incidentTableState = {
+ ...draft.incidentTableState,
+ filters: [],
+ };
+ draft.status = CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED;
+ break;
+
default:
break;
}
diff --git a/src/redux/incident_table/sagas.js b/src/redux/incident_table/sagas.js
index 36641803..dcf69ada 100644
--- a/src/redux/incident_table/sagas.js
+++ b/src/redux/incident_table/sagas.js
@@ -16,6 +16,8 @@ import {
UPDATE_INCIDENT_TABLE_STATE_COMPLETED,
SELECT_INCIDENT_TABLE_ROWS_REQUESTED,
SELECT_INCIDENT_TABLE_ROWS_COMPLETED,
+ CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED,
+ CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED,
} from './actions';
import selectIncidentTable from './selectors';
@@ -122,3 +124,13 @@ export function* selectIncidentTableRowsImpl(action) {
selectedRows,
});
}
+
+export function* clearIncidentTableFilters() {
+ yield takeLatest(CLEAR_INCIDENT_TABLE_FILTERS_REQUESTED, clearIncidentTableFiltersImpl);
+}
+
+export function* clearIncidentTableFiltersImpl() {
+ yield put({
+ type: CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED,
+ });
+}
diff --git a/src/redux/incidents/reducers.js b/src/redux/incidents/reducers.js
index 163045ba..4a6114bf 100644
--- a/src/redux/incidents/reducers.js
+++ b/src/redux/incidents/reducers.js
@@ -2,6 +2,8 @@ import {
produce,
} from 'immer';
+import RealUserMonitoring from 'src/config/monitoring';
+
import {
UPDATE_INCIDENT_REDUCER_STATUS,
UPDATE_INCIDENT_LAST_FETCH_DATE,
@@ -37,6 +39,12 @@ import {
const uniqOnId = (arr) => {
const map = new Map();
arr.forEach((item) => {
+ if (!(item?.id)) {
+ RealUserMonitoring.trackError(new Error('incidents/reducers:uniqOnId: item does not have an id'), {
+ item,
+ });
+ return;
+ }
map.set(item.id, item);
});
return [...map.values()];
@@ -48,6 +56,7 @@ const incidents = produce(
case FETCH_INCIDENTS_REQUESTED:
draft.fetchingIncidents = true;
draft.status = FETCH_INCIDENTS_REQUESTED;
+ draft.error = null;
break;
case FETCH_INCIDENTS_COMPLETED:
diff --git a/src/redux/incidents/sagas.js b/src/redux/incidents/sagas.js
index 0a517596..f7614b3e 100644
--- a/src/redux/incidents/sagas.js
+++ b/src/redux/incidents/sagas.js
@@ -4,6 +4,7 @@ import {
import Fuse from 'fuse.js';
+import RealUserMonitoring from 'src/config/monitoring';
import {
pd,
// throttledPdAxiosRequest,
@@ -192,12 +193,27 @@ export function* getAlertsForIncidents(action) {
undefined,
{ priority: 6 },
);
+ if (!(alertsChunk instanceof Array)) {
+ RealUserMonitoring.trackError(new Error('alertsChunk is not an array'), alertsChunk);
+ // eslint-disable-next-line no-continue
+ continue;
+ }
const alertsChunkByIncidentId = incidentIdChunk.reduce((acc, incidentId) => {
- // eslint-disable-next-line no-param-reassign
- acc[incidentId] = [];
+ if (typeof incidentId !== 'string') {
+ RealUserMonitoring.trackError(new Error('incidentId is not a string'), incidentId);
+ } else {
+ // eslint-disable-next-line no-param-reassign
+ acc[incidentId] = [];
+ }
return acc;
}, {});
alertsChunk.forEach((alert) => {
+ if (!(alert?.incident?.id) || !(alertsChunkByIncidentId[alert.incident.id] instanceof Array)) {
+ RealUserMonitoring.trackError(
+ new Error('alert is missing incident id or alertsChunkByIncidentId is not an array'), alert,
+ );
+ return;
+ }
alertsChunkByIncidentId[alert.incident.id].push(alert);
});
yield put({
@@ -232,12 +248,27 @@ export function* getNotesForIncidents(action) {
undefined,
{ priority: 6 },
);
+ if (!(notesChunk instanceof Array)) {
+ RealUserMonitoring.trackError(new Error('notesChunk is not an array'), notesChunk);
+ // eslint-disable-next-line no-continue
+ continue;
+ }
const notesChunkByIncidentId = incidentIdChunk.reduce((acc, incidentId) => {
- // eslint-disable-next-line no-param-reassign
- acc[incidentId] = [];
+ if (typeof incidentId !== 'string') {
+ RealUserMonitoring.trackError(new Error('incidentId is not a string'), incidentId);
+ } else {
+ // eslint-disable-next-line no-param-reassign
+ acc[incidentId] = [];
+ }
return acc;
}, {});
notesChunk.forEach((note) => {
+ if (!(note?.incident?.id) || !(notesChunkByIncidentId[note.incident.id] instanceof Array)) {
+ RealUserMonitoring.trackError(
+ new Error('note is missing incident id or notesChunkByIncidentId is not an array'), note,
+ );
+ return;
+ }
notesChunkByIncidentId[note.incident.id].push(note);
});
// dispatch FETCH_NOTES_FOR_INCIDENTS_COMPLETED
@@ -273,6 +304,12 @@ export function* processLogEntriesImpl(action) {
for (let i = 0; i < logEntries.length; i += 1) {
const logEntry = logEntries[i];
+ if (!logEntry.incident) {
+ // log entry does not have an incident, skip
+ RealUserMonitoring.trackError(new Error('Log entry does not have an incident'), logEntry);
+ // eslint-disable-next-line no-continue
+ continue;
+ }
// update latest log entry
if (
!incidentLatestLogEntryMap[logEntry.incident.id]
@@ -551,7 +588,7 @@ export function* filterIncidentsImpl() {
.map((res) => filteredIncidentsByQuery[res.refIndex]);
} catch (e) {
// eslint-disable-next-line no-console
- console.log('Error in Fuse search', e);
+ console.error('Error in Fuse search', e);
}
}
diff --git a/src/redux/log_entries/actions.js b/src/redux/log_entries/actions.js
index 418dad3e..2b0c89fd 100644
--- a/src/redux/log_entries/actions.js
+++ b/src/redux/log_entries/actions.js
@@ -10,6 +10,12 @@ export const UPDATE_RECENT_LOG_ENTRIES_ERROR = 'UPDATE_RECENT_LOG_ENTRIES_ERROR'
export const CLEAN_RECENT_LOG_ENTRIES = 'CLEAN_RECENT_LOG_ENTRIES';
export const CLEAN_RECENT_LOG_ENTRIES_COMPLETED = 'CLEAN_RECENT_LOG_ENTRIES_COMPLETED';
export const CLEAN_RECENT_LOG_ENTRIES_ERROR = 'CLEAN_RECENT_LOG_ENTRIES_ERROR';
+export const START_CLEAN_RECENT_LOG_ENTRIES_POLLING = 'START_CLEAN_RECENT_LOG_ENTRIES_POLLING';
+export const STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING = 'STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING';
+
+export const START_LOG_ENTRIES_POLLING = 'START_LOG_ENTRIES_POLLING';
+export const UPDATE_LOG_ENTRIES_POLLING = 'UPDATE_LOG_ENTRIES_POLLING';
+export const STOP_LOG_ENTRIES_POLLING = 'STOP_LOG_ENTRIES_POLLING';
// Define Actions
export const getLogEntriesAsync = (since) => ({
diff --git a/src/redux/log_entries/reducers.js b/src/redux/log_entries/reducers.js
index 2050b155..f1da74bc 100644
--- a/src/redux/log_entries/reducers.js
+++ b/src/redux/log_entries/reducers.js
@@ -2,6 +2,10 @@ import {
produce,
} from 'immer';
+import {
+ LOG_ENTRIES_POLLING_INTERVAL_SECONDS,
+} from 'src/config/constants';
+
import {
FETCH_LOG_ENTRIES_REQUESTED,
FETCH_LOG_ENTRIES_COMPLETED,
@@ -12,6 +16,11 @@ import {
CLEAN_RECENT_LOG_ENTRIES,
CLEAN_RECENT_LOG_ENTRIES_COMPLETED,
CLEAN_RECENT_LOG_ENTRIES_ERROR,
+ START_CLEAN_RECENT_LOG_ENTRIES_POLLING,
+ STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING,
+ START_LOG_ENTRIES_POLLING,
+ UPDATE_LOG_ENTRIES_POLLING,
+ STOP_LOG_ENTRIES_POLLING,
} from './actions';
const logEntries = produce(
@@ -65,18 +74,44 @@ const logEntries = produce(
draft.recentLogEntries = action.recentLogEntries;
break;
+ case START_CLEAN_RECENT_LOG_ENTRIES_POLLING:
+ draft.status = START_CLEAN_RECENT_LOG_ENTRIES_POLLING;
+ break;
+
+ case STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING:
+ draft.status = STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING;
+ break;
+
case CLEAN_RECENT_LOG_ENTRIES_ERROR:
draft.fetchingData = false;
draft.status = CLEAN_RECENT_LOG_ENTRIES_ERROR;
draft.error = action.message;
break;
+ case START_LOG_ENTRIES_POLLING:
+ draft.pollingStatus.polling = true;
+ draft.status = START_LOG_ENTRIES_POLLING;
+ break;
+
+ case UPDATE_LOG_ENTRIES_POLLING:
+ draft.pollingStatus = {
+ ...draft.pollingStatus,
+ ...action.pollingStatus,
+ };
+ draft.status = UPDATE_LOG_ENTRIES_POLLING;
+ break;
+
+ case STOP_LOG_ENTRIES_POLLING:
+ draft.pollingStatus.polling = false;
+ draft.status = STOP_LOG_ENTRIES_POLLING;
+ break;
+
default:
break;
}
},
{
- latestLogEntryDate: null,
+ latestLogEntryDate: new Date(new Date() - (2 * LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000)),
logEntries: [],
recentLogEntries: {},
addList: [],
@@ -85,6 +120,12 @@ const logEntries = produce(
status: '',
fetchingData: false,
error: null,
+ pollingStatus: {
+ polling: false,
+ lastPollStarted: null,
+ lastPollCompleted: null,
+ errors: [],
+ },
},
);
diff --git a/src/redux/log_entries/sagas.js b/src/redux/log_entries/sagas.js
index 72ee7ff6..089d9f12 100644
--- a/src/redux/log_entries/sagas.js
+++ b/src/redux/log_entries/sagas.js
@@ -2,16 +2,27 @@
/* eslint-disable max-len */
import {
- put, call, select, takeLatest, take,
+ put, call, select, takeLatest, take, delay, race,
} from 'redux-saga/effects';
import i18next from 'src/i18n';
+import {
+ handleSingleAPIErrorResponse,
+} from 'src/util/sagas';
+
+import {
+ LOG_ENTRIES_POLLING_INTERVAL_SECONDS,
+ LOG_ENTRIES_CLEARING_INTERVAL_SECONDS,
+ DEBUG_DISABLE_POLLING,
+} from 'src/config/constants';
+
import {
pd, pdParallelFetch,
} from 'src/util/pd-api-wrapper';
import {
+ CATASTROPHE,
UPDATE_CONNECTION_STATUS_REQUESTED,
} from 'src/redux/connection/actions';
import {
@@ -25,6 +36,11 @@ import {
CLEAN_RECENT_LOG_ENTRIES,
CLEAN_RECENT_LOG_ENTRIES_COMPLETED,
CLEAN_RECENT_LOG_ENTRIES_ERROR,
+ START_CLEAN_RECENT_LOG_ENTRIES_POLLING,
+ STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING,
+ START_LOG_ENTRIES_POLLING,
+ UPDATE_LOG_ENTRIES_POLLING,
+ STOP_LOG_ENTRIES_POLLING,
} from './actions';
import selectLogEntries from './selectors';
@@ -36,13 +52,16 @@ export function* getLogEntriesAsync() {
export function* getLogEntries(action) {
const {
recentLogEntries,
+ pollingStatus: {
+ errors: pollingErrors,
+ },
} = yield select(selectLogEntries);
-
try {
// Create params and call pd lib
const {
since,
} = action;
+
const params = {
since: since.toISOString().replace(/\.[\d]{3}/, ''),
'include[]': ['incidents', 'linked_incidents', 'external_references', 'channels'],
@@ -51,22 +70,32 @@ export function* getLogEntries(action) {
try {
logEntries = yield call(pdParallelFetch, 'log_entries', params, null, {
priority: 5,
- maxRecords: 1000,
+ maxRecords: 5000,
});
} catch (e) {
if (e.message && e.message.startsWith('Too many records')) {
// eslint-disable-next-line no-console
- console.log(`getLogEntries: ${e.message} - fetching incidents instead`);
+ console.error(`getLogEntries: ${e.message} - fetching incidents instead`);
+ yield put({
+ type: UPDATE_LOG_ENTRIES_POLLING,
+ pollingStatus: {
+ errors: [...pollingErrors, e].slice(-25),
+ },
+ });
+ // put COMPLETED action with empty log entries and update latestLogEntryDate
+ // so that we don't keep polling for older log entries
yield put({
- type: FETCH_LOG_ENTRIES_ERROR,
- message: e.message,
+ type: FETCH_LOG_ENTRIES_COMPLETED,
+ logEntries: [],
+ recentLogEntries,
+ latestLogEntryDate: new Date(),
});
yield put({
type: FETCH_INCIDENTS_REQUESTED,
});
return;
}
- throw Error(i18next.t('Unable to fetch log entries') + e.message ? `: ${e.message}` : '');
+ throw e;
}
// Filter out log entries that are already in recent log entries map
@@ -106,20 +135,88 @@ export function* getLogEntries(action) {
type: PROCESS_LOG_ENTRIES,
logEntries,
});
-
- // Call to update recent log entries with this data.
- // yield call(updateRecentLogEntries);
} catch (e) {
- // Handle API auth failure
- if (e.status === 401) {
- e.message = i18next.t('Unauthorized Access');
- }
+ yield put({
+ type: UPDATE_LOG_ENTRIES_POLLING,
+ pollingStatus: {
+ errors: [...pollingErrors, e].slice(-25),
+ },
+ });
yield put({ type: FETCH_LOG_ENTRIES_ERROR, message: e.message });
yield put({
type: UPDATE_CONNECTION_STATUS_REQUESTED,
connectionStatus: 'neutral',
connectionStatusMessage: e.message,
});
+ // Handle API failure
+ if (e.response) {
+ yield call(handleSingleAPIErrorResponse, e.response);
+ } else {
+ throw e;
+ }
+ }
+}
+
+export function* pollLogEntriesTask() {
+ while (true) {
+ const {
+ logEntries: {
+ latestLogEntryDate,
+ },
+ users: {
+ userAuthorized,
+ userAcceptedDisclaimer,
+ },
+ incidents: {
+ fetchingIncidents,
+ error: incidentsError,
+ },
+ } = yield select();
+
+ const tooManyIncidentsError = (
+ incidentsError
+ && typeof incidentsError === 'string'
+ && incidentsError.startsWith('Too many records')
+ );
+
+ if (userAuthorized && userAcceptedDisclaimer && !fetchingIncidents && !DEBUG_DISABLE_POLLING && !tooManyIncidentsError) {
+ const lastPollStarted = new Date();
+ yield put({
+ type: UPDATE_LOG_ENTRIES_POLLING,
+ pollingStatus: {
+ lastPollStarted,
+ },
+ });
+ yield call(getLogEntries, { since: latestLogEntryDate });
+ const lastPollCompleted = new Date();
+ yield put({
+ type: UPDATE_LOG_ENTRIES_POLLING,
+ pollingStatus: {
+ lastPollCompleted,
+ },
+ });
+
+ let timeTaken = lastPollCompleted - lastPollStarted;
+ if (timeTaken > LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000) {
+ // if the time taken to fetch log entries is greater than the polling interval,
+ // then we should start the next poll immediately
+ timeTaken = LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000;
+ } else if (timeTaken < 0) {
+ timeTaken = 0;
+ }
+ yield delay((LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000) - timeTaken);
+ } else {
+ // eslint-disable-next-line no-console
+ console.log('skipping poll', { userAuthorized, userAcceptedDisclaimer, fetchingIncidents, DEBUG_DISABLE_POLLING, tooManyIncidentsError });
+ yield delay(LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000);
+ }
+ }
+}
+
+export function* pollLogEntriesTaskWatcher() {
+ while (true) {
+ yield take(START_LOG_ENTRIES_POLLING);
+ yield race([call(pollLogEntriesTask), take(STOP_LOG_ENTRIES_POLLING)]);
}
}
@@ -151,3 +248,17 @@ export function* cleanRecentLogEntries() {
yield put({ type: CLEAN_RECENT_LOG_ENTRIES_ERROR, message: e.message });
}
}
+
+export function* cleanRecentLogEntriesTask() {
+ while (true) {
+ yield call(cleanRecentLogEntries);
+ yield delay(LOG_ENTRIES_CLEARING_INTERVAL_SECONDS * 1000);
+ }
+}
+
+export function* cleanRecentLogEntriesTaskWatcher() {
+ while (true) {
+ yield take(START_CLEAN_RECENT_LOG_ENTRIES_POLLING);
+ yield race([call(cleanRecentLogEntriesTask), take(STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING)]);
+ }
+}
diff --git a/src/redux/log_entries/sagas.test.js b/src/redux/log_entries/sagas.test.js
index 0d9d5345..af2f2eb2 100644
--- a/src/redux/log_entries/sagas.test.js
+++ b/src/redux/log_entries/sagas.test.js
@@ -21,7 +21,8 @@ import {
import {
FETCH_LOG_ENTRIES_REQUESTED,
FETCH_LOG_ENTRIES_COMPLETED,
- FETCH_LOG_ENTRIES_ERROR,
+ // FETCH_LOG_ENTRIES_ERROR,
+ UPDATE_LOG_ENTRIES_POLLING,
} from './actions';
import {
@@ -48,7 +49,7 @@ describe('Sagas: Log Entries', () => {
it('fetches log entries', () => expectSaga(getLogEntriesAsync)
.withReducer(logEntries)
.provide([
- [select(selectLogEntries), { logEntries: [], recentLogEntries: {} }],
+ [select(selectLogEntries), { logEntries: [], recentLogEntries: {}, pollingStatus: { errors: [] } }],
[matchers.call.fn(pdParallelFetch), mockLogEntries],
])
.dispatch({
@@ -73,7 +74,7 @@ describe('Sagas: Log Entries', () => {
it('fetches incidents instead when log entries is too long', () => expectSaga(getLogEntriesAsync)
.withReducer(logEntries)
.provide([
- [select(selectLogEntries), { logEntries: [], recentLogEntries: {} }],
+ [select(selectLogEntries), { logEntries: [], recentLogEntries: {}, pollingStatus: { errors: [] } }],
[matchers.call.fn(pdParallelFetch), throwError(new Error('Too many records: 1001 > 1000'))],
])
.dispatch({
@@ -86,8 +87,9 @@ describe('Sagas: Log Entries', () => {
effects,
} = result;
expect(effects.call).toHaveLength(1);
- expect(effects.put).toHaveLength(2);
- expect(effects.put[0].payload.action.type).toEqual(FETCH_LOG_ENTRIES_ERROR);
- expect(effects.put[1].payload.action.type).toEqual(FETCH_INCIDENTS_REQUESTED);
+ expect(effects.put).toHaveLength(3);
+ expect(effects.put[0].payload.action.type).toEqual(UPDATE_LOG_ENTRIES_POLLING);
+ expect(effects.put[1].payload.action.type).toEqual(FETCH_LOG_ENTRIES_COMPLETED);
+ expect(effects.put[2].payload.action.type).toEqual(FETCH_INCIDENTS_REQUESTED);
}));
});
diff --git a/src/redux/priorities/sagas.js b/src/redux/priorities/sagas.js
index baf1dc8d..c89f042e 100644
--- a/src/redux/priorities/sagas.js
+++ b/src/redux/priorities/sagas.js
@@ -55,6 +55,7 @@ export function* getPriorities() {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: FETCH_PRIORITIES_ERROR, message: e.message });
yield put({
diff --git a/src/redux/response_plays/sagas.js b/src/redux/response_plays/sagas.js
index 4678a7d8..51a06749 100644
--- a/src/redux/response_plays/sagas.js
+++ b/src/redux/response_plays/sagas.js
@@ -45,6 +45,7 @@ export function* getResponsePlays() {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
if (e.response?.status === 301) {
// user just doesn't have response plays
@@ -102,7 +103,7 @@ export function* runResponsePlay(action) {
yield displayActionModal(actionAlertsModalType, actionAlertsModalMessage);
}
} else {
- handleMultipleAPIErrorResponses(responses);
+ yield call(handleMultipleAPIErrorResponses, responses);
}
} catch (e) {
handleSagaError(RUN_RESPONSE_PLAY_ERROR, e);
diff --git a/src/redux/rootSaga.js b/src/redux/rootSaga.js
index c9ae841f..cc38aa32 100644
--- a/src/redux/rootSaga.js
+++ b/src/redux/rootSaga.js
@@ -1,7 +1,9 @@
import {
- all, take,
+ all, take, put,
} from 'redux-saga/effects';
+import RealUserMonitoring from 'src/config/monitoring';
+
import {
REHYDRATE,
} from 'redux-persist/lib/constants';
@@ -37,6 +39,8 @@ import {
getLogEntriesAsync,
// updateRecentLogEntriesAsync,
cleanRecentLogEntriesAsync,
+ cleanRecentLogEntriesTaskWatcher,
+ pollLogEntriesTaskWatcher,
} from './log_entries/sagas';
import {
@@ -44,6 +48,7 @@ import {
updateIncidentTableColumns,
updateIncidentTableState,
selectIncidentTableRows,
+ clearIncidentTableFilters,
} from './incident_table/sagas';
import {
@@ -121,11 +126,20 @@ import {
clearLocalCache,
} from './settings/sagas';
+import {
+ CATASTROPHE,
+} from './connection/actions';
+
import {
updateConnectionStatus,
checkConnectionStatus,
+ checkConnectionStatusTaskWatcher,
checkAbilities,
+ checkAbilitiesTaskWatcher,
+ refreshOauth,
+ checkForTokenExpiryWatcher,
updateQueueStats,
+ updateQueueStatsTaskWatcher,
} from './connection/sagas';
import {
@@ -134,120 +148,138 @@ import {
export default function* rootSaga() {
yield take(REHYDRATE); // Wait for rehydrate to prevent sagas from running with empty store
- yield all([
- // Query Settings
- toggleDisplayQuerySettings(),
- updateQuerySettingsSinceDate(),
- updateQuerySettingsUntilDate(),
- updateQuerySettingsIncidentStatus(),
- updateQuerySettingsIncidentUrgency(),
- updateQuerySettingsIncidentPriority(),
- updateQuerySettingsTeams(),
- updateQuerySettingsEscalationPolicies(),
- updateQuerySettingsServices(),
- updateQuerySettingsUsers(),
- updateSearchQuery(),
- validateIncidentQuery(),
- confirmIncidentQuery(),
-
- // Incidents
- getIncidentsAsync(),
- getAlertsForIncidentsAsync(),
- getNotesForIncidentsAsync(),
- processLogEntries(),
- updateIncidents(),
- updateIncidentAlerts(),
- updateIncidentNotes(),
- filterIncidents(),
-
- // Log Entries
- getLogEntriesAsync(),
- cleanRecentLogEntriesAsync(),
-
- // Incident Table
- saveIncidentTable(),
- updateIncidentTableColumns(),
- updateIncidentTableState(),
- selectIncidentTableRows(),
-
- // Incident Actions
- doAction(),
- acknowledgeAsync(),
- escalateAsync(),
- reassignAsync(),
- toggleDisplayReassignModal(),
- addResponderAsync(),
- toggleDisplayAddResponderModal(),
- snoozeAsync(),
- toggleDisplayCustomSnoozeModal(),
- toggleDisplayMergeModal(),
- mergeAsync(),
- resolveAsync(),
- updatePriorityAsync(),
- addNoteAsync(),
- toggleDisplayAddNoteModal(),
- runCustomIncidentActionAsync(),
- syncWithExternalSystemAsync(),
- moveAlertsAsync(),
-
- // Action Alerts Modal
- toggleActionAlertsModal(),
- updateActionAlertsModal(),
-
- // Users
- userAuthorize(),
- userUnauthorize(),
- userAcceptDisclaimer(),
- getUsersAsync(),
- getCurrentUserAsync(),
- updateUserLocale(),
- addUserToUsersMap(),
-
- // Services
- getServicesAsync(),
-
- // Teams
- getTeamsAsync(),
-
- // Priorities
- getPrioritiesAsync(),
-
- // Escalation Policies
- getEscalationPoliciesAsync(),
-
- // Extensions
- getExtensionsAsync(),
- mapServicesToExtensions(),
-
- // Response Plays
- getResponsePlaysAsync(),
- runResponsePlayAsync(),
-
- // Settings
- toggleSettingsModal(),
- toggleLoadSavePresetsModal(),
- toggleColumnsModal(),
- setDefaultSinceDateTenor(),
- setSearchAllCustomDetails(),
- setFuzzySearch(),
- setRespondersInEpFilter(),
- setAlertCustomDetailColumns(),
- setShowIncidentAlertsModalForIncidentId(),
- setMaxRateLimit(),
- setAutoAcceptIncidentsQuery(),
- setAutoRefreshInterval(),
- setDarkMode(),
- setRelativeDates(),
- clearLocalCache(),
-
- // Connection
- updateConnectionStatus(),
- checkConnectionStatus(),
- updateQueueStats(),
- checkAbilities(),
-
- // Monitoring
- startMonitoring(),
- stopMonitoring(),
- ]);
+ try {
+ yield all([
+ // Query Settings
+ toggleDisplayQuerySettings(),
+ updateQuerySettingsSinceDate(),
+ updateQuerySettingsUntilDate(),
+ updateQuerySettingsIncidentStatus(),
+ updateQuerySettingsIncidentUrgency(),
+ updateQuerySettingsIncidentPriority(),
+ updateQuerySettingsTeams(),
+ updateQuerySettingsEscalationPolicies(),
+ updateQuerySettingsServices(),
+ updateQuerySettingsUsers(),
+ updateSearchQuery(),
+ validateIncidentQuery(),
+ confirmIncidentQuery(),
+
+ // Incidents
+ getIncidentsAsync(),
+ getAlertsForIncidentsAsync(),
+ getNotesForIncidentsAsync(),
+ processLogEntries(),
+ updateIncidents(),
+ updateIncidentAlerts(),
+ updateIncidentNotes(),
+ filterIncidents(),
+
+ // Log Entries
+ getLogEntriesAsync(),
+ cleanRecentLogEntriesAsync(),
+ cleanRecentLogEntriesTaskWatcher(),
+ pollLogEntriesTaskWatcher(),
+
+ // Incident Table
+ saveIncidentTable(),
+ updateIncidentTableColumns(),
+ updateIncidentTableState(),
+ selectIncidentTableRows(),
+ clearIncidentTableFilters(),
+
+ // Incident Actions
+ doAction(),
+ acknowledgeAsync(),
+ escalateAsync(),
+ reassignAsync(),
+ toggleDisplayReassignModal(),
+ addResponderAsync(),
+ toggleDisplayAddResponderModal(),
+ snoozeAsync(),
+ toggleDisplayCustomSnoozeModal(),
+ toggleDisplayMergeModal(),
+ mergeAsync(),
+ resolveAsync(),
+ updatePriorityAsync(),
+ addNoteAsync(),
+ toggleDisplayAddNoteModal(),
+ runCustomIncidentActionAsync(),
+ syncWithExternalSystemAsync(),
+ moveAlertsAsync(),
+
+ // Action Alerts Modal
+ toggleActionAlertsModal(),
+ updateActionAlertsModal(),
+
+ // Users
+ userAuthorize(),
+ userUnauthorize(),
+ userAcceptDisclaimer(),
+ getUsersAsync(),
+ getCurrentUserAsync(),
+ updateUserLocale(),
+ addUserToUsersMap(),
+
+ // Services
+ getServicesAsync(),
+
+ // Teams
+ getTeamsAsync(),
+
+ // Priorities
+ getPrioritiesAsync(),
+
+ // Escalation Policies
+ getEscalationPoliciesAsync(),
+
+ // Extensions
+ getExtensionsAsync(),
+ mapServicesToExtensions(),
+
+ // Response Plays
+ getResponsePlaysAsync(),
+ runResponsePlayAsync(),
+
+ // Settings
+ toggleSettingsModal(),
+ toggleLoadSavePresetsModal(),
+ toggleColumnsModal(),
+ setDefaultSinceDateTenor(),
+ setSearchAllCustomDetails(),
+ setFuzzySearch(),
+ setRespondersInEpFilter(),
+ setAlertCustomDetailColumns(),
+ setShowIncidentAlertsModalForIncidentId(),
+ setMaxRateLimit(),
+ setAutoAcceptIncidentsQuery(),
+ setAutoRefreshInterval(),
+ setDarkMode(),
+ setRelativeDates(),
+ clearLocalCache(),
+
+ // Connection
+ updateConnectionStatus(),
+ checkConnectionStatus(),
+ checkConnectionStatusTaskWatcher(),
+ updateQueueStats(),
+ updateQueueStatsTaskWatcher(),
+ checkAbilities(),
+ checkAbilitiesTaskWatcher(),
+ refreshOauth(),
+ checkForTokenExpiryWatcher(),
+
+ // Monitoring
+ startMonitoring(),
+ stopMonitoring(),
+ ]);
+ } catch (e) {
+ RealUserMonitoring.trackError(e);
+ // eslint-disable-next-line no-console
+ console.error('Error in rootSaga:', e);
+ yield put({
+ type: CATASTROPHE,
+ connectionStatusMessage: e.message,
+ });
+ }
}
diff --git a/src/redux/services/sagas.js b/src/redux/services/sagas.js
index 13bb5363..c4922ae3 100644
--- a/src/redux/services/sagas.js
+++ b/src/redux/services/sagas.js
@@ -45,6 +45,7 @@ export function* getServices(action) {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: FETCH_SERVICES_ERROR, message: e.message });
yield put({
diff --git a/src/redux/teams/sagas.js b/src/redux/teams/sagas.js
index 1f793b3d..3d707383 100644
--- a/src/redux/teams/sagas.js
+++ b/src/redux/teams/sagas.js
@@ -30,6 +30,7 @@ export function* getTeams() {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: FETCH_TEAMS_ERROR, message: e.message });
yield put({
diff --git a/src/redux/users/sagas.js b/src/redux/users/sagas.js
index 26d5ef06..d3aa0f87 100644
--- a/src/redux/users/sagas.js
+++ b/src/redux/users/sagas.js
@@ -141,6 +141,7 @@ export function* getUsers(action) {
// Handle API auth failure
if (e.response?.status === 401) {
e.message = i18next.t('Unauthorized Access');
+ throw e;
}
yield put({ type: GET_USERS_ERROR, message: e.message });
yield updateConnectionStatusRequested('neutral', e.message, formatError(e));
diff --git a/src/util/auth.js b/src/util/auth.js
index e1074abc..782276ba 100644
--- a/src/util/auth.js
+++ b/src/util/auth.js
@@ -116,11 +116,7 @@ export const exchangeCodeForToken = async (
};
const data = await postData(requestTokenUrl, formData);
-
- if (data.access_token) {
- return data.access_token;
- }
- return null;
+ return data;
};
// eslint-disable-next-line no-unused-vars
diff --git a/src/util/auth.test.js b/src/util/auth.test.js
index fb7334a5..022cba78 100644
--- a/src/util/auth.test.js
+++ b/src/util/auth.test.js
@@ -22,7 +22,7 @@ const unmockedFetch = global.fetch;
describe('Authentication Helper Suite', () => {
const clientId = PD_OAUTH_CLIENT_ID;
const clientSecret = PD_OAUTH_CLIENT_SECRET;
- const redirectURL = 'http://localhost:3000/';
+ const redirectURL = 'http://127.0.0.1:3000/';
const code = 'SOME_REDIRECT_CODE';
const mockAccessToken = faker.string.alphanumeric();
let codeVerifier;
@@ -86,6 +86,6 @@ describe('Authentication Helper Suite', () => {
codeVerifier,
code,
);
- expect(token).toEqual(mockAccessToken);
+ expect(token.access_token).toEqual(mockAccessToken);
});
});
diff --git a/src/util/pd-api-wrapper.js b/src/util/pd-api-wrapper.js
index a39badf3..69381c4c 100644
--- a/src/util/pd-api-wrapper.js
+++ b/src/util/pd-api-wrapper.js
@@ -9,6 +9,8 @@ import axios from 'axios';
import Bottleneck from 'bottleneck';
+import RealUserMonitoring from 'src/config/monitoring';
+
import {
PD_USER_TOKEN,
} from 'src/config/constants';
@@ -46,7 +48,7 @@ export const getPdAccessTokenObject = () => {
export const pd = api(getPdAccessTokenObject());
-export const pdAxiosRequest = async (method, endpoint, params = {}, data = {}) => axios({
+export const pdAxiosRequest = async (method, endpoint, params = {}, data = {}, throwErrors = false) => axios({
method,
url: `https://api.pagerduty.com/${endpoint}`,
headers: {
@@ -62,8 +64,11 @@ export const pdAxiosRequest = async (method, endpoint, params = {}, data = {}) =
},
params: { ...params, rand: Math.random().toString(36).substring(2, 7) },
data,
- // never throw, just return the error
- validateStatus: () => true,
+}).catch((error) => {
+ if (throwErrors) {
+ throw error;
+ }
+ return error;
});
let currentLimit = 200;
@@ -102,6 +107,10 @@ let watchdogTimeout;
limiter.on('depleted', () => {
// eslint-disable-next-line no-console
console.error('Limiter queue depleted, setting watchdog timeout');
+ RealUserMonitoring.trackError(new Error('LimiterDepleted'), {
+ reservoir: 0,
+ currentLimit,
+ });
if (watchdogTimeout) {
clearTimeout(watchdogTimeout);
}
@@ -112,12 +121,47 @@ limiter.on('depleted', () => {
console.error(
'Watchdog timeout, queue is still depleted after 10 seconds; resetting limiter',
);
+ RealUserMonitoring.trackError(new Error('LimiterWatchdogTimeout'), {
+ reservoir,
+ currentLimit,
+ });
resetLimiterWithRateLimit(currentLimit);
}
});
}, 10 * 1000);
});
+limiter.on('error', (error) => {
+ RealUserMonitoring.trackError(new Error('limiter error'), {
+ error,
+ currentLimit,
+ });
+});
+
+// Listen to the 'failed' event
+limiter.on('failed', async (error, jobInfo) => {
+ const {
+ id,
+ } = jobInfo.options;
+ // eslint-disable-next-line no-console
+ console.error(`Job ${id} failed: ${error}`);
+
+ RealUserMonitoring.trackError(error, {
+ jobInfo,
+ });
+
+ if (jobInfo.retryCount < 3) {
+ // eslint-disable-next-line no-console
+ console.error(`Retrying job ${id} in 100ms!`);
+ return 100;
+ }
+ return undefined;
+});
+
+// Listen to the 'retry' event
+// eslint-disable-next-line no-console
+limiter.on('retry', (error, jobInfo) => console.error(`Now retrying ${jobInfo.options.id}`));
+
/*
Throttled version of Axios requests for direct API calls
*/
@@ -131,10 +175,12 @@ export const throttledPdAxiosRequest = (
priority: 5,
},
) => {
- const qid = `${method}-${endpoint}-${JSON.stringify(params)}-${Date.now()}-${Math.random()
+ const qid = `${method}-${endpoint}-${Date.now()}-${Math.random()
.toString(36)
.substring(2, 7)}`;
+ const throwErrors = options?.throwErrors || false;
+
return limiter.schedule(
{
expiration: options?.expiration || 30 * 1000,
@@ -142,10 +188,26 @@ export const throttledPdAxiosRequest = (
id: qid,
},
async () => {
- const r = await pdAxiosRequest(method, endpoint, params, data);
+ const r = await pdAxiosRequest(method, endpoint, params, data, throwErrors);
return r;
},
- );
+ ).catch((error) => {
+ if (error instanceof Bottleneck.BottleneckError) {
+ RealUserMonitoring.trackError(error, {
+ type: 'limiter error',
+ method,
+ endpoint,
+ currentLimit,
+ });
+ } else {
+ RealUserMonitoring.trackError(error, {
+ type: 'pdAxiosRequest error',
+ method,
+ endpoint,
+ });
+ throw error;
+ }
+ });
};
export const getLimiterStats = () => limiter.counts();
@@ -192,6 +254,16 @@ export const pdParallelFetch = async (
axiosRequestOptions,
);
+ if (!firstPageResponse?.status) {
+ const e = new Error(`Error fetching ${endpoint}: no response object`);
+ RealUserMonitoring.trackError(e, {
+ endpoint,
+ response: firstPageResponse,
+ params: requestParams,
+ });
+ throw e;
+ }
+
if (!(firstPageResponse.status >= 200 && firstPageResponse.status < 300)) {
const e = new Error(
`Error fetching ${endpoint}: ${firstPageResponse.status}`
@@ -207,7 +279,19 @@ export const pdParallelFetch = async (
const fetchedData = firstPage[endpointIdentifier(endpoint)];
+ if (!fetchedData) {
+ const e = new Error(`No data found for endpoint ${endpoint}`);
+ RealUserMonitoring.trackError(e, {
+ endpoint,
+ response: firstPage,
+ params: requestParams,
+ });
+ throw e;
+ }
+
const promises = [];
+ const failed = [];
+
if (firstPage.more) {
for (
let offset = requestParams.limit;
@@ -221,9 +305,23 @@ export const pdParallelFetch = async (
undefined,
axiosRequestOptions,
)
- .then(({
- data,
- }) => {
+ .then((response) => {
+ if (!response?.status || !(response.status >= 200 && response.status < 300) || !response.data) {
+ failed.push({
+ endpoint,
+ response,
+ params: { ...requestParams, offset },
+ });
+ RealUserMonitoring.trackError(new Error('Failed to fetch data'), {
+ endpoint,
+ response,
+ params: { ...requestParams, offset },
+ });
+ return;
+ }
+ const {
+ data,
+ } = response;
fetchedData.push(...data[endpointIdentifier(endpoint)]);
if (progressCallback) {
progressCallback(firstPage.total, fetchedData.length);
@@ -232,6 +330,11 @@ export const pdParallelFetch = async (
.catch((error) => {
// eslint-disable-next-line no-console
console.error(error);
+ RealUserMonitoring.trackError(new Error('Failed to fetch data'), {
+ endpoint,
+ error,
+ params: { ...requestParams, offset },
+ });
});
promises.push(promise);
}
diff --git a/src/util/sagas.js b/src/util/sagas.js
index 4618bd60..8788eb56 100644
--- a/src/util/sagas.js
+++ b/src/util/sagas.js
@@ -2,6 +2,16 @@ import {
put,
} from 'redux-saga/effects';
+import {
+ userUnauthorize,
+} from 'src/redux/users/actions';
+
+import {
+ stopMonitoring,
+} from 'src/redux/monitoring/actions';
+
+import RealUserMonitoring from 'src/config/monitoring';
+
import i18next from 'src/i18n';
import {
@@ -10,6 +20,7 @@ import {
} from 'src/redux/action_alerts/actions';
import {
+ // CATASTROPHE,
UPDATE_CONNECTION_STATUS_REQUESTED,
} from 'src/redux/connection/actions';
@@ -20,12 +31,25 @@ export const MISSING_ABILITY_ERROR = i18next.t(
// Helper function to handle errors while processing saga
export function* handleSagaError(action, exception) {
+ RealUserMonitoring.trackError(exception);
+ if (exception?.response?.status === 401) {
+ yield put(userUnauthorize());
+ yield put(stopMonitoring());
+ sessionStorage.removeItem('pd_access_token');
+ throw Error(i18next.t('Unauthorized. Please re-authorize.'));
+ }
yield displayActionModal('error', exception.message);
yield put({ type: action, message: exception.message });
}
// Helper functions to handle API errors in response
-export const handleSingleAPIErrorResponse = (response) => {
+export function* handleSingleAPIErrorResponse(response) {
+ if (response?.status === 401) {
+ yield put(userUnauthorize());
+ yield put(stopMonitoring());
+ sessionStorage.removeItem('pd_access_token');
+ throw Error(i18next.t('Unauthorized. Please re-authorize.'));
+ }
if (response?.data?.error) {
throw Error(
response.data.error.message
@@ -34,21 +58,30 @@ export const handleSingleAPIErrorResponse = (response) => {
} else {
throw Error(i18next.t('Unknown error while using PD API'));
}
-};
+}
-export const handleMultipleAPIErrorResponses = (responses) => {
- const errors = responses
+export function* handleMultipleAPIErrorResponses(responses) {
+ if (responses.some((response) => response?.status === 401)) {
+ yield put(userUnauthorize());
+ yield put(stopMonitoring());
+ sessionStorage.removeItem('pd_access_token');
+ throw Error(i18next.t('Unauthorized. Please re-authorize.'));
+ }
+ const errorStrs = responses
+ .filter((response) => response?.status < 200 || response?.status >= 300)
.filter((response) => response?.data?.error)
.map(
(response) => response.data.error.message
+ (response.data.error.errors ? `: ${response.data.error.errors.join(', ')}` : ''),
);
+ // dedup errors
+ const errors = [...new Set(errorStrs)];
if (errors.length) {
throw Error(errors);
} else {
throw Error(i18next.t('Unknown error while using PD API'));
}
-};
+}
// Helper function to display modal with API result
export function* displayActionModal(actionAlertsModalType, actionAlertsModalMessage) {
diff --git a/vite.config.js b/vite.config.js
index b137446e..7a16086a 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -25,10 +25,12 @@ function fixAcceptHeader404() {
export default defineConfig(() => ({
base: '/pd-live-react',
server: {
+ host: '127.0.0.1',
port: 3000,
},
build: {
outDir: 'build',
+ sourcemap: true,
},
resolve: {
alias: {
@@ -48,7 +50,7 @@ export default defineConfig(() => ({
}),
EnvironmentPlugin('all', { loadEnvFiles: true }),
// svgr options: https://react-svgr.com/docs/options/
- svgr(),
+ svgr({ include: '**/*.svg' }),
eslint(),
fixAcceptHeader404(),
],
diff --git a/yarn.lock b/yarn.lock
index 0886ac86..0aa27f8b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -25,6 +25,683 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
+"@aws-crypto/crc32@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1"
+ integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==
+ dependencies:
+ "@aws-crypto/util" "^5.2.0"
+ "@aws-sdk/types" "^3.222.0"
+ tslib "^2.6.2"
+
+"@aws-crypto/sha256-browser@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e"
+ integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==
+ dependencies:
+ "@aws-crypto/sha256-js" "^5.2.0"
+ "@aws-crypto/supports-web-crypto" "^5.2.0"
+ "@aws-crypto/util" "^5.2.0"
+ "@aws-sdk/types" "^3.222.0"
+ "@aws-sdk/util-locate-window" "^3.0.0"
+ "@smithy/util-utf8" "^2.0.0"
+ tslib "^2.6.2"
+
+"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042"
+ integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==
+ dependencies:
+ "@aws-crypto/util" "^5.2.0"
+ "@aws-sdk/types" "^3.222.0"
+ tslib "^2.6.2"
+
+"@aws-crypto/supports-web-crypto@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb"
+ integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==
+ dependencies:
+ tslib "^2.6.2"
+
+"@aws-crypto/util@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da"
+ integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==
+ dependencies:
+ "@aws-sdk/types" "^3.222.0"
+ "@smithy/util-utf8" "^2.0.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-cloudwatch-logs@^3.537.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.598.0.tgz#24748eb885bc7a3344e2ed1b476e2b1db74807b4"
+ integrity sha512-BETOmRKBHc6im5YNSvaEBMo5AusxXWRP5ljpT0lRvS+hACuUKoqQb5wuloO5QUOM+1wdXELrSdwayypMiQU6Tg==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/eventstream-serde-browser" "^3.0.2"
+ "@smithy/eventstream-serde-config-resolver" "^3.0.1"
+ "@smithy/eventstream-serde-node" "^3.0.2"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+ uuid "^9.0.1"
+
+"@aws-sdk/client-cognito-identity@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.598.0.tgz#f4c1473ef8368bd240ba85c94d3f99c420439139"
+ integrity sha512-N/1lnkhkzk1Il8WEZBWR713/7sDEqBtl/1AS6dfgw6Zh7NWUYSwBkZx6xdN8KogDu4CFExRHhilNOgI1JMug3w==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-iam@^3.535.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.598.0.tgz#de146dab9042941233304fc248c1119e53979ee6"
+ integrity sha512-pxmwSMPh/WLlBuVVBIIjE0kyFK3DH4TnYkclJaTp3ZOr9fMvRT2bdZoZ2CYOwY02K0q6JKKx/1Y1N8C8SAHeZQ==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ "@smithy/util-waiter" "^3.0.1"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-lambda@^3.536.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.598.0.tgz#c97403e73350295f2deaa6e6feea2b14947efb31"
+ integrity sha512-PtTdBNBp1MFWMdgE3T6/f5ZLLbGcenLwEWlgXBsWzHl5lvHnI4SjH54hhZM17JiqRmoz+0EAufl+JbDd5yqfsg==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/eventstream-serde-browser" "^3.0.2"
+ "@smithy/eventstream-serde-config-resolver" "^3.0.1"
+ "@smithy/eventstream-serde-node" "^3.0.2"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-stream" "^3.0.2"
+ "@smithy/util-utf8" "^3.0.0"
+ "@smithy/util-waiter" "^3.0.1"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-sfn@^3.535.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sfn/-/client-sfn-3.598.0.tgz#b8a2b192c6bb3d1c52ff58e0e7ae4bc17ac448bc"
+ integrity sha512-18a7H+6oQClSTZtQPMmiucK0Mm/F1bu0dzl8gAM55qNnjzSS8asiS65YcuISGDwwL22Ds0m5RZ0xGgu9tdgRUw==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+ uuid "^9.0.1"
+
+"@aws-sdk/client-sso-oidc@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz#17ad1acd1c616ccbd36cda2db1ee80d63ad0aff5"
+ integrity sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-sso@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz#aef58e198e504d3b3d1ba345355650a67d21facb"
+ integrity sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-sts@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz#5b3c082ac14b3f0b7a4c964eb4ba2b320988e1e4"
+ integrity sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/client-sso-oidc" "3.598.0"
+ "@aws-sdk/core" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/middleware-host-header" "3.598.0"
+ "@aws-sdk/middleware-logger" "3.598.0"
+ "@aws-sdk/middleware-recursion-detection" "3.598.0"
+ "@aws-sdk/middleware-user-agent" "3.598.0"
+ "@aws-sdk/region-config-resolver" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@aws-sdk/util-user-agent-browser" "3.598.0"
+ "@aws-sdk/util-user-agent-node" "3.598.0"
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/core" "^2.2.1"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/hash-node" "^3.0.1"
+ "@smithy/invalid-dependency" "^3.0.1"
+ "@smithy/middleware-content-length" "^3.0.1"
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-body-length-browser" "^3.0.0"
+ "@smithy/util-body-length-node" "^3.0.0"
+ "@smithy/util-defaults-mode-browser" "^3.0.4"
+ "@smithy/util-defaults-mode-node" "^3.0.4"
+ "@smithy/util-endpoints" "^2.0.2"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/core@3.598.0", "@aws-sdk/core@^3.535.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.598.0.tgz#82a069d703be0cafe3ddeacb1de51981ee4faa25"
+ integrity sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==
+ dependencies:
+ "@smithy/core" "^2.2.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/signature-v4" "^3.1.0"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ fast-xml-parser "4.2.5"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-cognito-identity@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.598.0.tgz#17cc02ccf038e9e5d086d63ead527747c610efce"
+ integrity sha512-u6oocRReswkA2mFlOwtCetgmEr9B+Yhle3K13x37rb1lQgq1wUuWUvHU7U9v26hUZIhfUpigV/Mgr/RQZB6+Yw==
+ dependencies:
+ "@aws-sdk/client-cognito-identity" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-env@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz#ea1f30cfc9948017dd0608518868d3f50074164f"
+ integrity sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-http@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz#58144440e698aef63b5cb459780325817c0acf10"
+ integrity sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-stream" "^3.0.2"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-ini@3.598.0", "@aws-sdk/credential-provider-ini@^3.535.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz#fd0ba8ab5c3701e05567d1c6f7752cfd9f4ba111"
+ integrity sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.598.0"
+ "@aws-sdk/credential-provider-http" "3.598.0"
+ "@aws-sdk/credential-provider-process" "3.598.0"
+ "@aws-sdk/credential-provider-sso" "3.598.0"
+ "@aws-sdk/credential-provider-web-identity" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/credential-provider-imds" "^3.1.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-node@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz#b24173cf9ae33718c6273c9bac996791c73d9359"
+ integrity sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.598.0"
+ "@aws-sdk/credential-provider-http" "3.598.0"
+ "@aws-sdk/credential-provider-ini" "3.598.0"
+ "@aws-sdk/credential-provider-process" "3.598.0"
+ "@aws-sdk/credential-provider-sso" "3.598.0"
+ "@aws-sdk/credential-provider-web-identity" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/credential-provider-imds" "^3.1.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-process@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz#f48ff6f964cd6726499b207f45bfecda4be922ce"
+ integrity sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-sso@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz#52781e2b60b1f61752829c44a5e0b9fedd0694d6"
+ integrity sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==
+ dependencies:
+ "@aws-sdk/client-sso" "3.598.0"
+ "@aws-sdk/token-providers" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-web-identity@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz#d737e9c2b7c4460b8e31a55b4979bf4d88913900"
+ integrity sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-providers@^3.535.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.598.0.tgz#411d9dad5b3087fe01679b900bddf166f3cea0be"
+ integrity sha512-IFZwH3F2rA2WbpYFUxOeu/M3/9p4+oRbKVLDZlaaDtwwuZ9VHEbnkUm20zOgSXeVExa3qgYhJvg7H5JrqxP97A==
+ dependencies:
+ "@aws-sdk/client-cognito-identity" "3.598.0"
+ "@aws-sdk/client-sso" "3.598.0"
+ "@aws-sdk/client-sts" "3.598.0"
+ "@aws-sdk/credential-provider-cognito-identity" "3.598.0"
+ "@aws-sdk/credential-provider-env" "3.598.0"
+ "@aws-sdk/credential-provider-http" "3.598.0"
+ "@aws-sdk/credential-provider-ini" "3.598.0"
+ "@aws-sdk/credential-provider-node" "3.598.0"
+ "@aws-sdk/credential-provider-process" "3.598.0"
+ "@aws-sdk/credential-provider-sso" "3.598.0"
+ "@aws-sdk/credential-provider-web-identity" "3.598.0"
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/credential-provider-imds" "^3.1.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/middleware-host-header@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz#0a7c4d5a95657bea2d7c4e29b9a8b379952d09b1"
+ integrity sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/middleware-logger@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz#0c0692d2f4f9007c915734ab319db377ca9a3b1b"
+ integrity sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/middleware-recursion-detection@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz#94015d41f8174bd41298fd13f8fb0a8c4576d7c8"
+ integrity sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/middleware-user-agent@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz#6fa26849d256434ca4884c42c1c4755aa2f1556e"
+ integrity sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@aws-sdk/util-endpoints" "3.598.0"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/region-config-resolver@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz#fd8fd6b7bc11b5f81def4db0db9e835d40a8f86e"
+ integrity sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-config-provider" "^3.0.0"
+ "@smithy/util-middleware" "^3.0.1"
+ tslib "^2.6.2"
+
+"@aws-sdk/token-providers@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz#49a94c14ce2e392bb0e84b69986c33ecfad5b804"
+ integrity sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/types@3.598.0", "@aws-sdk/types@^3.222.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.598.0.tgz#b840d2446dee19a2a4731e6166f2327915d846db"
+ integrity sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/util-endpoints@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz#7f78d68524babac7fdacf381590470353d45b959"
+ integrity sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-endpoints" "^2.0.2"
+ tslib "^2.6.2"
+
+"@aws-sdk/util-locate-window@^3.0.0":
+ version "3.568.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff"
+ integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==
+ dependencies:
+ tslib "^2.6.2"
+
+"@aws-sdk/util-user-agent-browser@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz#5039d0335f8a06af5be73c960df85009dda59090"
+ integrity sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/types" "^3.1.0"
+ bowser "^2.11.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/util-user-agent-node@3.598.0":
+ version "3.598.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz#f9bdf1b7cc3a40787c379f7c2ff028de2612c177"
+ integrity sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==
+ dependencies:
+ "@aws-sdk/types" "3.598.0"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
"@babel/cli@^7.21.0":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.5.tgz#eb323bd69f50297792c2b7c205a97306a305d703"
@@ -1383,7 +2060,7 @@
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.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":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.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.23.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885"
integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==
@@ -2297,10 +2974,10 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
-"@cypress/react@^8.0.0":
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/@cypress/react/-/react-8.0.0.tgz#9ed7a04284d149e65ad7ae9dc35aa2a20c2c4e57"
- integrity sha512-3fnW1ow+GZVCdVHikSoYBWMZCKpaRIJe76vA7a1qS7MYXSeX/xs+VgIIrZmnM1fnc23w5nHtWh4bjGCyTfWyXA==
+"@cypress/react@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@cypress/react/-/react-8.0.2.tgz#ae6651f61b2182f4485a21300f320c3efa3cb9ce"
+ integrity sha512-7TgXXEeJ/GnGiIQhO8mAfkyychyMv5hNyISV3ti/vceriTI0uGtbjwRqLQhuVgOSHLtboUZUIoRlR6BkgIdVVg==
"@cypress/request@^3.0.0":
version "3.0.1"
@@ -2334,33 +3011,77 @@
debug "^3.1.0"
lodash.once "^4.1.1"
-"@datadog/browser-core@4.47.0":
- version "4.47.0"
- resolved "https://registry.yarnpkg.com/@datadog/browser-core/-/browser-core-4.47.0.tgz#cc454c05f22839da4d3487b6c4b3c9e1b56e3059"
- integrity sha512-C3qm4kiT8OoK09UnAed2HTY9ecDaz0n7Qm0m4WwC+lpwOR97oduWdggbvgJgLGdJLleQjqEFHyuB8BEvEQ66BQ==
-
-"@datadog/browser-rum-core@4.47.0":
- version "4.47.0"
- resolved "https://registry.yarnpkg.com/@datadog/browser-rum-core/-/browser-rum-core-4.47.0.tgz#7b7e84487ae49a992d705f3bee81525516bdde99"
- integrity sha512-6nOnFPZJ0cYkWV4w7lbtCxVGLiquxw68D1qvwXbMtxZ1q+zroLhPY+lpk7Hd6XN7OT7xmTP2wbTnr0DL5VGwig==
- dependencies:
- "@datadog/browser-core" "4.47.0"
-
-"@datadog/browser-rum@^4.47.0":
- version "4.47.0"
- resolved "https://registry.yarnpkg.com/@datadog/browser-rum/-/browser-rum-4.47.0.tgz#a75542d4f56a433f281b6066babf2608988ee4f6"
- integrity sha512-+CK8Z7w0fZnCN1oK7S3TQq9LfDmpXDnYxzmHw+11INHHdFhWqmUojpKKi+7+XLMaTOvU83yYBfOBFz2DSWvwew==
- dependencies:
- "@datadog/browser-core" "4.47.0"
- "@datadog/browser-rum-core" "4.47.0"
- "@datadog/browser-worker" "4.47.0"
-
-"@datadog/browser-worker@4.47.0":
- version "4.47.0"
- resolved "https://registry.yarnpkg.com/@datadog/browser-worker/-/browser-worker-4.47.0.tgz#9a55cd10961eff8490f14b6629e6d1fd2ca0fea5"
- integrity sha512-7/jiPXiGYStd40zsQl0U6DBkkoKhFPuWgl5R/k4sKaMdZ3YXwhL3M+js7S7MIGsrNvpoZygEQml+McVYZ2Vmyg==
- dependencies:
- "@datadog/browser-core" "4.47.0"
+"@datadog/browser-core@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@datadog/browser-core/-/browser-core-5.14.0.tgz#86ea04e264d3a2af655059576e9a523a2cbf8125"
+ integrity sha512-sr02NfURpidS+FW9JaIDwqG8JfeqNy2GjPhzxZ7q3IITktX0wNxEq+IhwJDfB+2G/2iT9t7WgFBshx/e3Rb0Ow==
+
+"@datadog/browser-rum-core@5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@datadog/browser-rum-core/-/browser-rum-core-5.14.0.tgz#599fd4f21c4269f28ebe1ccd6efb9ac89d842c67"
+ integrity sha512-DwpHwU+7LhuDwUKnOuQczM/QlsgCZofQyPOTEih2Rj9yrVpf6Z1lNQg9TCPNqGLAKs+Q1HqP1fJYa+tBCmgbhw==
+ dependencies:
+ "@datadog/browser-core" "5.14.0"
+
+"@datadog/browser-rum@^5.14.0":
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/@datadog/browser-rum/-/browser-rum-5.14.0.tgz#a6fbd5729c9e26104832f8eb774b33b8efdde55d"
+ integrity sha512-IijqDr1zDWJdNcbasjOMoriXDSf4ILbtt9DJF6+UMidQ32CNoCr524IK0d+9Qoea1uhEDIxIsA5lDN+v8zb6sg==
+ dependencies:
+ "@datadog/browser-core" "5.14.0"
+ "@datadog/browser-rum-core" "5.14.0"
+
+"@datadog/datadog-ci@^2.37.0":
+ version "2.37.0"
+ resolved "https://registry.yarnpkg.com/@datadog/datadog-ci/-/datadog-ci-2.37.0.tgz#8454730a0604e5a22920a655aed37e48277dd8fc"
+ integrity sha512-FkaWw1m7R3wd847ZUOVpB5bk9YWPfonGfGbCR19Ay9HnNddw5t7DqUbXq4WqWNhZnIYVHivFB2XyZWTAwOervw==
+ dependencies:
+ "@aws-sdk/client-cloudwatch-logs" "^3.537.0"
+ "@aws-sdk/client-iam" "^3.535.0"
+ "@aws-sdk/client-lambda" "^3.536.0"
+ "@aws-sdk/client-sfn" "^3.535.0"
+ "@aws-sdk/core" "^3.535.0"
+ "@aws-sdk/credential-provider-ini" "^3.535.0"
+ "@aws-sdk/credential-providers" "^3.535.0"
+ "@google-cloud/logging" "^11.0.0"
+ "@google-cloud/run" "^1.0.2"
+ "@smithy/property-provider" "^2.0.12"
+ "@smithy/util-retry" "^2.0.4"
+ "@types/datadog-metrics" "0.6.1"
+ "@types/retry" "0.12.0"
+ ajv "^8.12.0"
+ ajv-formats "^2.1.1"
+ async-retry "1.3.1"
+ axios "^1.6.8"
+ chalk "3.0.0"
+ clipanion "^3.2.1"
+ datadog-metrics "0.9.3"
+ deep-extend "0.6.0"
+ deep-object-diff "^1.1.9"
+ fast-xml-parser "^4.2.5"
+ form-data "4.0.0"
+ fuzzy "^0.1.3"
+ glob "7.1.4"
+ google-auth-library "^8.9.0"
+ inquirer "^8.2.5"
+ inquirer-checkbox-plus-prompt "^1.4.2"
+ js-yaml "3.13.1"
+ jszip "^3.10.1"
+ ora "5.4.1"
+ proxy-agent "^6.4.0"
+ rimraf "^3.0.2"
+ semver "^7.5.3"
+ simple-git "3.16.0"
+ ssh2 "^1.15.0"
+ ssh2-streams "0.4.10"
+ sshpk "1.16.1"
+ terminal-link "2.1.1"
+ tiny-async-pool "^2.1.0"
+ typanion "^3.14.0"
+ uuid "^9.0.0"
+ ws "7.4.6"
+ xml2js "0.5.0"
+ yamux-js "0.1.2"
"@emotion/babel-plugin@^11.11.0":
version "11.11.0"
@@ -2810,6 +3531,11 @@
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz#fdb1ec4952b689f5f7aa0bffe46180bb35490032"
integrity sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==
+"@fortawesome/fontawesome-common-types@6.5.2":
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz#eaf2f5699f73cef198454ebc0c414e3688898179"
+ integrity sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==
+
"@fortawesome/fontawesome-svg-core@^6.4.2":
version "6.4.2"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz#37f4507d5ec645c8b50df6db14eced32a6f9be09"
@@ -2831,12 +3557,12 @@
dependencies:
"@fortawesome/fontawesome-common-types" "6.5.1"
-"@fortawesome/free-solid-svg-icons@^6.4.2":
- version "6.4.2"
- resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz#33a02c4cb6aa28abea7bc082a9626b7922099df4"
- integrity sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==
+"@fortawesome/free-solid-svg-icons@^6.5.2":
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.5.2.tgz#9b40b077b27400a5e9fcbf2d15b986c7be69e9ca"
+ integrity sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==
dependencies:
- "@fortawesome/fontawesome-common-types" "6.4.2"
+ "@fortawesome/fontawesome-common-types" "6.5.2"
"@fortawesome/react-fontawesome@^0.2.0":
version "0.2.0"
@@ -2845,6 +3571,85 @@
dependencies:
prop-types "^15.8.1"
+"@google-cloud/common@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-5.0.2.tgz#423ad94b125d44263cbed2b5eb1ce1d4d53dc038"
+ integrity sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==
+ dependencies:
+ "@google-cloud/projectify" "^4.0.0"
+ "@google-cloud/promisify" "^4.0.0"
+ arrify "^2.0.1"
+ duplexify "^4.1.1"
+ extend "^3.0.2"
+ google-auth-library "^9.0.0"
+ html-entities "^2.5.2"
+ retry-request "^7.0.0"
+ teeny-request "^9.0.0"
+
+"@google-cloud/logging@^11.0.0":
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/@google-cloud/logging/-/logging-11.1.0.tgz#79e1f05a27a596d154ab475b167b2d98e29e1457"
+ integrity sha512-S3Zsd+HZxIdZgDZByJ+2GaSQ8rA5OLfdZoZ9Ys1iSZ4HRIhO9ZxlXbmGZgGK9JJ2GaXp7Rux4K4LpkqoYPKnEg==
+ dependencies:
+ "@google-cloud/common" "^5.0.0"
+ "@google-cloud/paginator" "^5.0.0"
+ "@google-cloud/projectify" "^4.0.0"
+ "@google-cloud/promisify" "^4.0.0"
+ arrify "^2.0.1"
+ dot-prop "^6.0.0"
+ eventid "^2.0.0"
+ extend "^3.0.2"
+ gcp-metadata "^6.0.0"
+ google-auth-library "^9.0.0"
+ google-gax "^4.0.3"
+ on-finished "^2.3.0"
+ pumpify "^2.0.1"
+ stream-events "^1.0.5"
+ uuid "^9.0.0"
+
+"@google-cloud/paginator@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889"
+ integrity sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==
+ dependencies:
+ arrify "^2.0.0"
+ extend "^3.0.2"
+
+"@google-cloud/projectify@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be"
+ integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==
+
+"@google-cloud/promisify@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1"
+ integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==
+
+"@google-cloud/run@^1.0.2":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@google-cloud/run/-/run-1.3.0.tgz#4aa64b740ee30118b9c2c37fe776e304c12e7a04"
+ integrity sha512-Ke9XZuKbOcA8lDYJ6VqpC1cVg42CWJWBer2R6/ix2EvfX/akDgqQBQMhZ8JwXHc4RtwYy/SeRE838ggQO4TYKQ==
+ dependencies:
+ google-gax "^4.0.3"
+
+"@grpc/grpc-js@~1.10.3":
+ version "1.10.9"
+ resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c"
+ integrity sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==
+ dependencies:
+ "@grpc/proto-loader" "^0.7.13"
+ "@js-sdsl/ordered-map" "^4.4.2"
+
+"@grpc/proto-loader@^0.7.13":
+ version "0.7.13"
+ resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
+ integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
+ dependencies:
+ lodash.camelcase "^4.3.0"
+ long "^5.0.0"
+ protobufjs "^7.2.5"
+ yargs "^17.7.2"
+
"@gulpjs/to-absolute-glob@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz#1fc2460d3953e1d9b9f2dfdb4bcc99da4710c021"
@@ -3202,6 +4007,23 @@
"@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14"
+"@js-sdsl/ordered-map@^4.4.2":
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c"
+ integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==
+
+"@kwsites/file-exists@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99"
+ integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==
+ dependencies:
+ debug "^4.1.1"
+
+"@kwsites/promise-deferred@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919"
+ integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==
+
"@messageformat/core@^3.2.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@messageformat/core/-/core-3.3.0.tgz#31edd52a5f7d017adad85c929809f07741dcfd3f"
@@ -3289,7 +4111,7 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
-"@prettier/eslint@npm:prettier-eslint@^16.1.0", prettier-eslint@^16.1.2:
+"@prettier/eslint@npm:prettier-eslint@^16.1.0":
version "16.1.2"
resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.1.2.tgz#86364fea13dd063f3df715b922678dd8a0fd4be1"
integrity sha512-mGFGZQbAh11FSnwW3H1zngzQYR2QMmHO8vdfgnAuzOFhnDeUZHYtwpqQvOMOMT0k818Dr1X+J4a/sVE0r34RKQ==
@@ -3307,6 +4129,59 @@
typescript "^5.2.2"
vue-eslint-parser "^9.1.0"
+"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
+ integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
+
+"@protobufjs/base64@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
+ integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
+
+"@protobufjs/codegen@^2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
+ integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
+
+"@protobufjs/eventemitter@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
+ integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
+
+"@protobufjs/fetch@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
+ integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.1"
+ "@protobufjs/inquire" "^1.1.0"
+
+"@protobufjs/float@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
+ integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
+
+"@protobufjs/inquire@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
+ integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
+
+"@protobufjs/path@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
+ integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
+
+"@protobufjs/pool@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
+ integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
+
+"@protobufjs/utf8@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
+ integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
+
"@react-aria/ssr@^3.5.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.6.0.tgz#e5d52bd1686ff229f68f806cf94ee29dd9f54fb7"
@@ -3380,10 +4255,10 @@
dependencies:
dequal "^2.0.2"
-"@restart/ui@^1.6.6":
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.6.tgz#3481e2eaf15d7cae55bb2f518624e10d19c75800"
- integrity sha512-eC3puKuWE1SRYbojWHXnvCNHGgf3uzHCb6JOhnF4OXPibOIPEkR1sqDSkL643ydigxwh+ruCa1CmYHlzk7ikKA==
+"@restart/ui@^1.6.8":
+ version "1.6.9"
+ resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.9.tgz#05ec905a56486fa39b62f29c09b3917e57acd62f"
+ integrity sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==
dependencies:
"@babel/runtime" "^7.21.0"
"@popperjs/core" "^2.11.6"
@@ -3403,10 +4278,10 @@
estree-walker "^2.0.1"
picomatch "^2.2.2"
-"@rollup/pluginutils@^5.0.2":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.3.tgz#183126d69aeb1cfa23401d5a71cb4b8c16c4a4e0"
- integrity sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==
+"@rollup/pluginutils@^5.0.5":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0"
+ integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==
dependencies:
"@types/estree" "^1.0.0"
estree-walker "^2.0.2"
@@ -3453,86 +4328,562 @@
dependencies:
"@sinonjs/commons" "^3.0.0"
-"@svgr/babel-plugin-add-jsx-attribute@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz#80856c1b7a3b7422d232f6e079f0beb90c4a13e9"
- integrity sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==
+"@smithy/abort-controller@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.1.tgz#bb8debe1c23ca62a61b33a9ee2918f5a79d81928"
+ integrity sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-remove-jsx-attribute@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz#91da77a009dc38e8d30da45d9b62ef8736f2d90a"
- integrity sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==
+"@smithy/config-resolver@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.2.tgz#ad19331d48d9a6e67bdd43a0099e1d8af1b82a82"
+ integrity sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g==
+ dependencies:
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-config-provider" "^3.0.0"
+ "@smithy/util-middleware" "^3.0.1"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-remove-jsx-empty-expression@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz#5154ff1213509e36ab315974c8c2fd48dafb827b"
- integrity sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==
+"@smithy/core@^2.2.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.2.1.tgz#92ed71eb96ef16d5ac8b23dbdf913bcb225ab875"
+ integrity sha512-R8Pzrr2v2oGUoj4CTZtKPr87lVtBsz7IUBGhSwS1kc6Cj0yPwNdYbkzhFsxhoDE9+BPl09VN/6rFsW9GJzWnBA==
+ dependencies:
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-retry" "^3.0.4"
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-middleware" "^3.0.1"
+ tslib "^2.6.2"
+
+"@smithy/credential-provider-imds@^3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz#8b2b3c9e7e67fd9e3e436a5e1db6652ab339af7b"
+ integrity sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g==
+ dependencies:
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-replace-jsx-attribute-value@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz#7e72f44ee57fdbcb02fb0d4a7629466c5242725e"
- integrity sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==
+"@smithy/eventstream-codec@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.0.tgz#74138287be7e1edd6a72400bb5181f5e1a7b44dd"
+ integrity sha512-XFDl70ZY+FabSnTX3oQGGYvdbEaC8vPEFkCEOoBkumqaZIwR1WjjJCDu2VMXlHbKWKshefWXdT0NYteL5v6uFw==
+ dependencies:
+ "@aws-crypto/crc32" "5.2.0"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-hex-encoding" "^3.0.0"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-svg-dynamic-title@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz#8caf0449c678ea29be756b89960b2b16c9f33f00"
- integrity sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==
+"@smithy/eventstream-serde-browser@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.2.tgz#342fbdbdf99f8fb7c247024716c5236bffae043e"
+ integrity sha512-6147vdedQGaWn3Nt4P1KV0LuV8IH4len1SAeycyko0p8oRLWFyYyx0L8JHGclePDSphkjxZqBHtyIfyupCaTGg==
+ dependencies:
+ "@smithy/eventstream-serde-universal" "^3.0.2"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-svg-em-dimensions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz#4db6b5af6d29e93db236b1a013fa953754071d41"
- integrity sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==
+"@smithy/eventstream-serde-config-resolver@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.1.tgz#74e9cb3992edc03319ffa05eb6008aacaaca4f71"
+ integrity sha512-6+B8P+5Q1mll4u7IoI7mpmYOSW3/c2r3WQoYLdqOjbIKMixJFGmN79ZjJiNMy4X2GZ4We9kQ6LfnFuczSlhcyw==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-transform-react-native-svg@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz#236995e58b5e36ff06365d5310509ce5391aeec9"
- integrity sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==
+"@smithy/eventstream-serde-node@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.2.tgz#fff9e92983c97f07174c1bbcf7f1af47fc478a6e"
+ integrity sha512-DLtmGAfqxZAql8rB+HqyPlUne22u3EEVj+hxlUjgXk0hXt+SfLGK0ljzRFmiWQ3qGpHu1NdJpJA9e5JE/dJxFw==
+ dependencies:
+ "@smithy/eventstream-serde-universal" "^3.0.2"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
-"@svgr/babel-plugin-transform-svg-component@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz#a9b62730acf10d22a2aa57e0f701c0ecbc270430"
- integrity sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==
+"@smithy/eventstream-serde-universal@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.2.tgz#d1704c14b0a691d0d8b4f68def68adaa20bb96d8"
+ integrity sha512-d3SgAIQ/s4EbU8HAHJ8m2MMJPAL30nqJktyVgvqZWNznA8PJl61gJw5gj/yjIt/Fvs3d4fU8FmPPAhdp2yr/7A==
+ dependencies:
+ "@smithy/eventstream-codec" "^3.1.0"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
-"@svgr/babel-preset@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-7.0.0.tgz#55aaca4cec2ff6515a571715b6b6fa98675b66d9"
- integrity sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ==
- dependencies:
- "@svgr/babel-plugin-add-jsx-attribute" "^7.0.0"
- "@svgr/babel-plugin-remove-jsx-attribute" "^7.0.0"
- "@svgr/babel-plugin-remove-jsx-empty-expression" "^7.0.0"
- "@svgr/babel-plugin-replace-jsx-attribute-value" "^7.0.0"
- "@svgr/babel-plugin-svg-dynamic-title" "^7.0.0"
- "@svgr/babel-plugin-svg-em-dimensions" "^7.0.0"
- "@svgr/babel-plugin-transform-react-native-svg" "^7.0.0"
- "@svgr/babel-plugin-transform-svg-component" "^7.0.0"
-
-"@svgr/core@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/core/-/core-7.0.0.tgz#def863d2670c682615583c80b408e83c095c2233"
- integrity sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw==
+"@smithy/fetch-http-handler@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.2.tgz#eff4056e819b3591d1c5d472ee58c2981886920a"
+ integrity sha512-0nW6tLK0b7EqSsfKvnOmZCgJqnodBAnvqcrlC5dotKfklLedPTRGsQamSVbVDWyuU/QGg+YbZDJUQ0CUufJXZQ==
+ dependencies:
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/querystring-builder" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-base64" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/hash-node@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.1.tgz#52924bcbd6a02c7f7e2d9c332f59d5adc09688a3"
+ integrity sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-buffer-from" "^3.0.0"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/invalid-dependency@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz#921787acfbe136af7ded46ae6f4b3d81c9b7e05e"
+ integrity sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/is-array-buffer@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111"
+ integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/is-array-buffer@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a"
+ integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/middleware-content-length@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz#90bce78dfd0db978df7920ae58e420ce9ed2f79a"
+ integrity sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ==
+ dependencies:
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/middleware-endpoint@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz#93bb575a25bb0bd5d1d18cd77157ccb2ba15112a"
+ integrity sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w==
+ dependencies:
+ "@smithy/middleware-serde" "^3.0.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/url-parser" "^3.0.1"
+ "@smithy/util-middleware" "^3.0.1"
+ tslib "^2.6.2"
+
+"@smithy/middleware-retry@^3.0.4":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.4.tgz#4f1a23c218fe279659c3d88ec1c18bf19938eba6"
+ integrity sha512-Tu+FggbLNF5G9L6Wi8o32Mg4bhlBInWlhhaFKyytGRnkfxGopxFVXJQn7sjZdFYJyTz6RZZa06tnlvavUgtoVg==
+ dependencies:
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/service-error-classification" "^3.0.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-retry" "^3.0.1"
+ tslib "^2.6.2"
+ uuid "^9.0.1"
+
+"@smithy/middleware-serde@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz#566ec46ee84873108c1cea26b3f3bd2899a73249"
+ integrity sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/middleware-stack@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz#9418f1295efda318c181bf3bca65173a75d133e5"
+ integrity sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/node-config-provider@^3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz#a361ab228d2229b03cc2fbdfd304055c38127614"
+ integrity sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==
+ dependencies:
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/shared-ini-file-loader" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/node-http-handler@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz#40e1ebe00aeb628a46a3a12b14ad6cabb69b576e"
+ integrity sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA==
+ dependencies:
+ "@smithy/abort-controller" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/querystring-builder" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/property-provider@^2.0.12":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0"
+ integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==
+ dependencies:
+ "@smithy/types" "^2.12.0"
+ tslib "^2.6.2"
+
+"@smithy/property-provider@^3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.1.tgz#4849b69b83ac97e68e80d2dc0c2b98ce5950dffe"
+ integrity sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/protocol-http@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.1.tgz#7b57080565816f229d2391726f537e13371c7e38"
+ integrity sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/querystring-builder@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz#8fb20e1d13154661612954c5ba448e0875be6118"
+ integrity sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-uri-escape" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/querystring-parser@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz#68589196fedf280aad2c0a69a2a016f78b2137cf"
+ integrity sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/service-error-classification@^2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005"
+ integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==
+ dependencies:
+ "@smithy/types" "^2.12.0"
+
+"@smithy/service-error-classification@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz#23db475d3cef726e8bf3435229e6e04e4de92430"
+ integrity sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+
+"@smithy/shared-ini-file-loader@^3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz#752ecd8962a660ded75d25341a48feb94f145a6f"
+ integrity sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/signature-v4@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.1.0.tgz#cc819568c4fcbadce107901680a96e662bccc86a"
+ integrity sha512-m0/6LW3IQ3/JBcdhqjpkpABPTPhcejqeAn0U877zxBdNLiWAnG2WmCe5MfkUyVuvpFTPQnQwCo/0ZBR4uF5kxg==
+ dependencies:
+ "@smithy/is-array-buffer" "^3.0.0"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-hex-encoding" "^3.0.0"
+ "@smithy/util-middleware" "^3.0.1"
+ "@smithy/util-uri-escape" "^3.0.0"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/smithy-client@^3.1.2":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.2.tgz#1c27ab4910bbfd6c0bc04ddd8412494e7a7daba7"
+ integrity sha512-f3eQpczBOFUtdT/ptw2WpUKu1qH1K7xrssrSiHYtd9TuLXkvFqb88l9mz9FHeUVNSUxSnkW1anJnw6rLwUKzQQ==
+ dependencies:
+ "@smithy/middleware-endpoint" "^3.0.2"
+ "@smithy/middleware-stack" "^3.0.1"
+ "@smithy/protocol-http" "^4.0.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-stream" "^3.0.2"
+ tslib "^2.6.2"
+
+"@smithy/types@^2.12.0":
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041"
+ integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/types@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.1.0.tgz#e2eb2e2130026a8a0631b2605c17df1975aa99d6"
+ integrity sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/url-parser@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.1.tgz#5451fc7034e9eda112696d1a9508746a7f8b0521"
+ integrity sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg==
+ dependencies:
+ "@smithy/querystring-parser" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/util-base64@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017"
+ integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==
+ dependencies:
+ "@smithy/util-buffer-from" "^3.0.0"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/util-body-length-browser@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded"
+ integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/util-body-length-node@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d"
+ integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/util-buffer-from@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b"
+ integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==
+ dependencies:
+ "@smithy/is-array-buffer" "^2.2.0"
+ tslib "^2.6.2"
+
+"@smithy/util-buffer-from@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3"
+ integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==
+ dependencies:
+ "@smithy/is-array-buffer" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/util-config-provider@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe"
+ integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/util-defaults-mode-browser@^3.0.4":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.4.tgz#4392db3d96aa08ae161bb987ecfedc094d84b88d"
+ integrity sha512-sXtin3Mue3A3xo4+XkozpgPptgmRwvNPOqTvb3ANGTCzzoQgAPBNjpE+aXCINaeSMXwHmv7E2oEn2vWdID+SAQ==
+ dependencies:
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ bowser "^2.11.0"
+ tslib "^2.6.2"
+
+"@smithy/util-defaults-mode-node@^3.0.4":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.4.tgz#794b8bb3facb5f6581af8d02fcf1b42b34c103e5"
+ integrity sha512-CUF6TyxLh3CgBRVYgZNOPDfzHQjeQr0vyALR6/DkQkOm7rNfGEzW1BRFi88C73pndmfvoiIT7ochuT76OPz9Dw==
+ dependencies:
+ "@smithy/config-resolver" "^3.0.2"
+ "@smithy/credential-provider-imds" "^3.1.1"
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/property-provider" "^3.1.1"
+ "@smithy/smithy-client" "^3.1.2"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/util-endpoints@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz#f995cca553569af43bef82f59d63b4969516df95"
+ integrity sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg==
+ dependencies:
+ "@smithy/node-config-provider" "^3.1.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/util-hex-encoding@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6"
+ integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/util-middleware@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.1.tgz#3e0eabaf936e62651a0b9a7c7c3bbe43d3971c91"
+ integrity sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ==
+ dependencies:
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/util-retry@^2.0.4":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85"
+ integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==
+ dependencies:
+ "@smithy/service-error-classification" "^2.1.5"
+ "@smithy/types" "^2.12.0"
+ tslib "^2.6.2"
+
+"@smithy/util-retry@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.1.tgz#24037ff87a314a1ac99f80da43f579ae2352fe18"
+ integrity sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw==
+ dependencies:
+ "@smithy/service-error-classification" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@smithy/util-stream@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.2.tgz#ed1377bfe824d8acfc105ab2d17ec4f376382cb2"
+ integrity sha512-n5Obp5AnlI6qHo8sbupwrcpBe6vFp4qkl0SRNuExKPNrH3ABAMG2ZszRTIUIv2b4AsFrCO+qiy4uH1Q3z1dxTA==
+ dependencies:
+ "@smithy/fetch-http-handler" "^3.0.2"
+ "@smithy/node-http-handler" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ "@smithy/util-base64" "^3.0.0"
+ "@smithy/util-buffer-from" "^3.0.0"
+ "@smithy/util-hex-encoding" "^3.0.0"
+ "@smithy/util-utf8" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/util-uri-escape@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54"
+ integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==
+ dependencies:
+ tslib "^2.6.2"
+
+"@smithy/util-utf8@^2.0.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5"
+ integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==
+ dependencies:
+ "@smithy/util-buffer-from" "^2.2.0"
+ tslib "^2.6.2"
+
+"@smithy/util-utf8@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a"
+ integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==
+ dependencies:
+ "@smithy/util-buffer-from" "^3.0.0"
+ tslib "^2.6.2"
+
+"@smithy/util-waiter@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.0.1.tgz#62d8ff58374032aa8c7e573b1ca4234407c605bd"
+ integrity sha512-wwnrVQdjQxvWGOAiLmqlEhENGCcDIN+XJ/+usPOgSZObAslrCXgKlkX7rNVwIWW2RhPguTKthvF+4AoO0Z6KpA==
+ dependencies:
+ "@smithy/abort-controller" "^3.0.1"
+ "@smithy/types" "^3.1.0"
+ tslib "^2.6.2"
+
+"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22"
+ integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==
+
+"@svgr/babel-plugin-remove-jsx-attribute@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186"
+ integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==
+
+"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44"
+ integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==
+
+"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27"
+ integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==
+
+"@svgr/babel-plugin-svg-dynamic-title@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0"
+ integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==
+
+"@svgr/babel-plugin-svg-em-dimensions@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501"
+ integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==
+
+"@svgr/babel-plugin-transform-react-native-svg@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754"
+ integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==
+
+"@svgr/babel-plugin-transform-svg-component@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e"
+ integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==
+
+"@svgr/babel-preset@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece"
+ integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==
+ dependencies:
+ "@svgr/babel-plugin-add-jsx-attribute" "8.0.0"
+ "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0"
+ "@svgr/babel-plugin-svg-dynamic-title" "8.0.0"
+ "@svgr/babel-plugin-svg-em-dimensions" "8.0.0"
+ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0"
+ "@svgr/babel-plugin-transform-svg-component" "8.0.0"
+
+"@svgr/core@^8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88"
+ integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==
dependencies:
"@babel/core" "^7.21.3"
- "@svgr/babel-preset" "^7.0.0"
+ "@svgr/babel-preset" "8.1.0"
camelcase "^6.2.0"
cosmiconfig "^8.1.3"
+ snake-case "^3.0.4"
-"@svgr/hast-util-to-babel-ast@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz#d457dfbe74ebc1e5a6daf97ded49e9576a3a00cf"
- integrity sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ==
+"@svgr/hast-util-to-babel-ast@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4"
+ integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==
dependencies:
"@babel/types" "^7.21.3"
entities "^4.4.0"
-"@svgr/plugin-jsx@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz#b9e0c7d05bc890d70163ac0490ba8c41f1afab90"
- integrity sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw==
+"@svgr/plugin-jsx@^8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928"
+ integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==
dependencies:
"@babel/core" "^7.21.3"
- "@svgr/babel-preset" "^7.0.0"
- "@svgr/hast-util-to-babel-ast" "^7.0.0"
+ "@svgr/babel-preset" "8.1.0"
+ "@svgr/hast-util-to-babel-ast" "8.0.0"
svg-parser "^2.0.4"
"@swc/helpers@^0.4.14":
@@ -3597,6 +4948,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@tootallnate/quickjs-emscripten@^0.23.0":
+ version "0.23.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
+ integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
+
"@types/aria-query@^5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc"
@@ -3635,6 +4991,16 @@
dependencies:
"@babel/types" "^7.20.7"
+"@types/caseless@*":
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5"
+ integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==
+
+"@types/datadog-metrics@0.6.1":
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/@types/datadog-metrics/-/datadog-metrics-0.6.1.tgz#9957ad75fe3a4742c87b94273e94c40228c8dd4c"
+ integrity sha512-p6zVpfmNcXwtcXjgpz7do/fKyfndGhU5sGJVtb5Gn5PvLDiQUAgD0mI/itf/99sBi9DRxeyhFQ9dQF6OxxQNbA==
+
"@types/eslint@^8.4.5":
version "8.44.2"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a"
@@ -3668,14 +5034,6 @@
dependencies:
"@types/node" "*"
-"@types/hoist-non-react-statics@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
- integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
- dependencies:
- "@types/react" "*"
- hoist-non-react-statics "^3.3.0"
-
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@@ -3748,15 +5106,20 @@
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76"
integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==
+"@types/long@^4.0.0":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
+ integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
+
"@types/minimatch@^3.0.3":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
-"@types/node@*", "@types/node@^20.10.8":
- version "20.10.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.8.tgz#f1e223cbde9e25696661d167a5b93a9b2a5d57c7"
- integrity sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==
+"@types/node@*", "@types/node@>=13.7.0":
+ version "20.14.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18"
+ integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==
dependencies:
undici-types "~5.26.4"
@@ -3767,6 +5130,13 @@
dependencies:
undici-types "~5.26.4"
+"@types/node@^20.10.8":
+ version "20.10.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.8.tgz#f1e223cbde9e25696661d167a5b93a9b2a5d57c7"
+ integrity sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==
+ dependencies:
+ undici-types "~5.26.4"
+
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
@@ -3800,6 +5170,21 @@
"@types/scheduler" "*"
csstype "^3.0.2"
+"@types/request@^2.48.8":
+ version "2.48.12"
+ resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30"
+ integrity sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==
+ dependencies:
+ "@types/caseless" "*"
+ "@types/node" "*"
+ "@types/tough-cookie" "*"
+ form-data "^2.5.0"
+
+"@types/retry@0.12.0":
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
+ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
+
"@types/scheduler@*":
version "0.16.3"
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
@@ -3841,9 +5226,9 @@
integrity sha512-Lja2xYuuf2B3knEsga8ShbOdsfNOtzT73GyJmZyY7eGl2+ajOqrs8yM5ze0fsSoYwvA6bw7/Qr7OZ7PEEmYwWg==
"@types/tough-cookie@*":
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
- integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304"
+ integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
"@types/use-sync-external-store@^0.0.3":
version "0.0.3"
@@ -4065,6 +5450,13 @@ abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
acorn-globals@^7.0.0:
version "7.0.1"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
@@ -4105,6 +5497,13 @@ agent-base@6:
dependencies:
debug "4"
+agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
+ integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
+ dependencies:
+ debug "^4.3.4"
+
aggregate-error@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
@@ -4113,6 +5512,13 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+ajv-formats@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+ integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+ dependencies:
+ ajv "^8.0.0"
+
ajv@^6.10.0, ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -4123,6 +5529,16 @@ ajv@^6.10.0, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
+ajv@^8.0.0, ajv@^8.12.0:
+ version "8.16.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4"
+ integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.4.1"
+
ansi-colors@^4.1.1:
version "4.1.3"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
@@ -4321,12 +5737,12 @@ arraybuffer.prototype.slice@^1.0.2:
is-array-buffer "^3.0.2"
is-shared-array-buffer "^1.0.2"
-arrify@^2.0.1:
+arrify@^2.0.0, arrify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
-asn1@~0.2.3:
+asn1@^0.2.6, asn1@~0.2.0, asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
@@ -4343,11 +5759,25 @@ ast-types-flow@^0.0.8:
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6"
integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==
+ast-types@^0.13.4:
+ version "0.13.4"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
+ integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==
+ dependencies:
+ tslib "^2.0.1"
+
astral-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+async-retry@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55"
+ integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==
+ dependencies:
+ retry "0.12.0"
+
async@^3.2.0, async@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
@@ -4399,6 +5829,15 @@ axios@^1.6.1, axios@^1.6.7:
form-data "^4.0.0"
proxy-from-env "^1.1.0"
+axios@^1.6.8:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+ integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
+ dependencies:
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
axobject-query@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a"
@@ -4568,7 +6007,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-js@^1.3.1:
+base64-js@^1.3.0, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -4594,18 +6033,37 @@ bash-path@^1.0.1:
arr-union "^3.1.0"
is-windows "^1.0.1"
-bcrypt-pbkdf@^1.0.0:
+basic-ftp@^5.0.2:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0"
+ integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==
+
+bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
dependencies:
tweetnacl "^0.14.3"
+bignumber.js@^9.0.0:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+ integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
+
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+bl@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
bl@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273"
@@ -4645,6 +6103,11 @@ bottleneck@^2.19.5:
resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91"
integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==
+bowser@^2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
+ integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -4736,12 +6199,17 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+buffer-equal-constant-time@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+ integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-buffer@^5.6.0:
+buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -4757,6 +6225,11 @@ buffer@^6.0.3:
base64-js "^1.3.1"
ieee754 "^1.2.1"
+buildcheck@~0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238"
+ integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==
+
cachedir@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8"
@@ -4836,7 +6309,15 @@ chakra-react-select@^4.7.0:
dependencies:
react-select "5.7.4"
-chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+chalk@3.0.0, chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -4864,14 +6345,6 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
- integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
chalk@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
@@ -4882,6 +6355,11 @@ char-regex@^1.0.2:
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
check-more-types@^2.24.0:
version "2.24.0"
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
@@ -4954,6 +6432,11 @@ cli-cursor@^3.1.0:
dependencies:
restore-cursor "^3.1.0"
+cli-spinners@^2.5.0:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
+ integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
+
cli-table3@~0.6.1:
version "0.6.3"
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2"
@@ -4971,6 +6454,18 @@ cli-truncate@^2.1.0:
slice-ansi "^3.0.0"
string-width "^4.2.0"
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+
+clipanion@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-3.2.1.tgz#2887db4cb232e80ba57cf19347a4e3a1c4a74133"
+ integrity sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==
+ dependencies:
+ typanion "^3.8.0"
+
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
@@ -4985,6 +6480,11 @@ clone-stats@^1.0.0:
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+
clone@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
@@ -5171,6 +6671,14 @@ cosmiconfig@^8.1.3:
parse-json "^5.0.0"
path-type "^4.0.0"
+cpu-features@~0.0.9:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
+ integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
+ dependencies:
+ buildcheck "~0.0.6"
+ nan "^2.19.0"
+
create-jest@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
@@ -5351,6 +6859,11 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
+data-uri-to-buffer@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b"
+ integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==
+
data-urls@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
@@ -5360,6 +6873,14 @@ data-urls@^3.0.2:
whatwg-mimetype "^3.0.0"
whatwg-url "^11.0.0"
+datadog-metrics@0.9.3:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/datadog-metrics/-/datadog-metrics-0.9.3.tgz#e62d92b9619129805802d82111c8bcc4439fc859"
+ integrity sha512-BVsBX2t+4yA3tHs7DnB5H01cHVNiGJ/bHA8y6JppJDyXG7s2DLm6JaozPGpgsgVGd42Is1CHRG/yMDQpt877Xg==
+ dependencies:
+ debug "3.1.0"
+ dogapi "2.8.4"
+
date-fns@^2.29.3, date-fns@^2.30.0:
version "2.30.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
@@ -5377,10 +6898,17 @@ de-indent@^1.0.2:
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+debug@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4.1.1, debug@^4.3.4:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e"
+ integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
dependencies:
ms "2.1.2"
@@ -5398,6 +6926,13 @@ debug@^3.1.0, debug@^3.2.7:
dependencies:
ms "^2.1.1"
+debug@^4.1.0, debug@^4.3.1, debug@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
decimal.js@^10.4.2:
version "10.4.3"
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
@@ -5432,16 +6967,33 @@ deep-equal@^2.0.5:
which-collection "^1.0.1"
which-typed-array "^1.1.9"
+deep-extend@0.6.0, deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+deep-object-diff@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595"
+ integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==
+
deepmerge@^4.2.2:
version "4.3.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+defaults@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
+ integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
+ dependencies:
+ clone "^1.0.2"
+
define-data-property@^1.0.1, define-data-property@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
@@ -5468,6 +7020,15 @@ define-properties@^1.2.1:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
+degenerator@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5"
+ integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==
+ dependencies:
+ ast-types "^0.13.4"
+ escodegen "^2.1.0"
+ esprima "^4.0.1"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -5533,6 +7094,17 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dogapi@2.8.4:
+ version "2.8.4"
+ resolved "https://registry.yarnpkg.com/dogapi/-/dogapi-2.8.4.tgz#ada64f20c6acdea206b9fd9e70df0c96241b6621"
+ integrity sha512-065fsvu5dB0o4+ENtLjZILvXMClDNH/yA9H6L8nsdcNiz9l0Hzpn7aQaCOPYXxqyzq4CRPOdwkFXUjDOXfRGbg==
+ dependencies:
+ extend "^3.0.2"
+ json-bigint "^1.0.0"
+ lodash "^4.17.21"
+ minimist "^1.2.5"
+ rc "^1.2.8"
+
dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
version "0.5.16"
resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
@@ -5583,11 +7155,36 @@ domutils@^3.0.1:
domelementtype "^2.3.0"
domhandler "^5.0.3"
+dot-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+ integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+dot-prop@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
+ integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
+ dependencies:
+ is-obj "^2.0.0"
+
dotenv@^16.4.4:
version "16.4.4"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1"
integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==
+duplexify@^4.0.0, duplexify@^4.1.1:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f"
+ integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==
+ dependencies:
+ end-of-stream "^1.4.1"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+ stream-shift "^1.0.2"
+
each-parallel-async@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b"
@@ -5606,6 +7203,18 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
+ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+ integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
+ dependencies:
+ safe-buffer "^5.0.1"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
electron-to-chromium@^1.4.431:
version "1.4.461"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz#6b14af66042732bf883ab63a4d82cac8f35eb252"
@@ -5636,7 +7245,7 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-end-of-stream@^1.1.0:
+end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -5874,9 +7483,9 @@ esbuild@^0.19.0:
"@esbuild/win32-x64" "0.19.2"
escalade@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
- integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
@@ -5893,7 +7502,7 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-escodegen@^2.0.0:
+escodegen@^2.0.0, escodegen@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
@@ -6343,11 +7952,23 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+event-target-shim@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
eventemitter2@6.4.7:
version "6.4.7"
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
+eventid@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/eventid/-/eventid-2.0.1.tgz#574e860149457a79a2efe788c459f0c3062d02ec"
+ integrity sha512-sPNTqiMokAvV048P2c9+foqVJzk49o6d4e0D/sq5jog3pw+4kBgyR0gaM1FM7Mx6Kzd9dztesh9oYz1LWWOpzw==
+ dependencies:
+ uuid "^8.0.0"
+
execa@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
@@ -6408,11 +8029,20 @@ extend-shallow@^2.0.1:
dependencies:
is-extendable "^0.1.0"
-extend@~3.0.2:
+extend@^3.0.2, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+external-editor@^3.0.3:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
extract-zip@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
@@ -6470,6 +8100,25 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+fast-text-encoding@^1.0.0:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867"
+ integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==
+
+fast-xml-parser@4.2.5:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f"
+ integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==
+ dependencies:
+ strnum "^1.0.5"
+
+fast-xml-parser@^4.2.5:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501"
+ integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==
+ dependencies:
+ strnum "^1.0.5"
+
fastq@^1.13.0, fastq@^1.6.0:
version "1.15.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
@@ -6491,7 +8140,7 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
-figures@^3.2.0:
+figures@^3.0.0, figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
@@ -6613,7 +8262,7 @@ focus-lock@^0.11.6:
dependencies:
tslib "^2.0.3"
-follow-redirects@^1.15.4:
+follow-redirects@^1.15.4, follow-redirects@^1.15.6:
version "1.15.6"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
@@ -6643,7 +8292,7 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
-form-data@^4.0.0:
+form-data@4.0.0, form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
@@ -6652,6 +8301,15 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+form-data@^2.5.0:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
+ integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -6686,6 +8344,15 @@ fs-extra@^11.1.0, fs-extra@^11.1.1:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-extra@^11.2.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
+ integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^8.0.1, fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -6795,6 +8462,48 @@ fuse.js@^6.6.2:
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.6.2.tgz#fe463fed4b98c0226ac3da2856a415576dc9a111"
integrity sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==
+fuzzy@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8"
+ integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==
+
+gaxios@^5.0.0, gaxios@^5.0.1:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013"
+ integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==
+ dependencies:
+ extend "^3.0.2"
+ https-proxy-agent "^5.0.0"
+ is-stream "^2.0.0"
+ node-fetch "^2.6.9"
+
+gaxios@^6.0.0, gaxios@^6.1.1:
+ version "6.6.0"
+ resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4"
+ integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==
+ dependencies:
+ extend "^3.0.2"
+ https-proxy-agent "^7.0.1"
+ is-stream "^2.0.0"
+ node-fetch "^2.6.9"
+ uuid "^9.0.1"
+
+gcp-metadata@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408"
+ integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==
+ dependencies:
+ gaxios "^5.0.0"
+ json-bigint "^1.0.0"
+
+gcp-metadata@^6.0.0, gcp-metadata@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c"
+ integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==
+ dependencies:
+ gaxios "^6.0.0"
+ json-bigint "^1.0.0"
+
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -6877,6 +8586,16 @@ get-symbol-description@^1.0.0:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
+get-uri@^6.0.1:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.3.tgz#0d26697bc13cf91092e519aa63aa60ee5b6f385a"
+ integrity sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==
+ dependencies:
+ basic-ftp "^5.0.2"
+ data-uri-to-buffer "^6.0.2"
+ debug "^4.3.4"
+ fs-extra "^11.2.0"
+
getos@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
@@ -6932,6 +8651,18 @@ glob-stream@^8.0.0:
normalize-path "^3.0.0"
streamx "^2.12.5"
+glob@7.1.4:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+ 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"
+
glob@^10.3.10:
version "10.3.10"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
@@ -7004,6 +8735,58 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+google-auth-library@^8.9.0:
+ version "8.9.0"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0"
+ integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==
+ dependencies:
+ arrify "^2.0.0"
+ base64-js "^1.3.0"
+ ecdsa-sig-formatter "^1.0.11"
+ fast-text-encoding "^1.0.0"
+ gaxios "^5.0.0"
+ gcp-metadata "^5.3.0"
+ gtoken "^6.1.0"
+ jws "^4.0.0"
+ lru-cache "^6.0.0"
+
+google-auth-library@^9.0.0, google-auth-library@^9.3.0:
+ version "9.11.0"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd"
+ integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==
+ dependencies:
+ base64-js "^1.3.0"
+ ecdsa-sig-formatter "^1.0.11"
+ gaxios "^6.1.1"
+ gcp-metadata "^6.1.0"
+ gtoken "^7.0.0"
+ jws "^4.0.0"
+
+google-gax@^4.0.3:
+ version "4.3.6"
+ resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.6.tgz#aed8cb1ffc8072615c7ec0cf557ade7343136413"
+ integrity sha512-z3MR+pE6WqU+tnKtkJl4c723EYY7Il4fcSNgEbehzUJpcNWkca9AyoC2pdBWmEa0cda21VRpUBb4s6VSATiUKg==
+ dependencies:
+ "@grpc/grpc-js" "~1.10.3"
+ "@grpc/proto-loader" "^0.7.13"
+ "@types/long" "^4.0.0"
+ abort-controller "^3.0.0"
+ duplexify "^4.0.0"
+ google-auth-library "^9.3.0"
+ node-fetch "^2.6.1"
+ object-hash "^3.0.0"
+ proto3-json-serializer "^2.0.0"
+ protobufjs "7.3.0"
+ retry-request "^7.0.0"
+ uuid "^9.0.1"
+
+google-p12-pem@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a"
+ integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==
+ dependencies:
+ node-forge "^1.3.1"
+
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@@ -7026,6 +8809,23 @@ graphemer@^1.4.0:
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+gtoken@^6.1.0:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc"
+ integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==
+ dependencies:
+ gaxios "^5.0.1"
+ google-p12-pem "^4.0.0"
+ jws "^4.0.0"
+
+gtoken@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26"
+ integrity sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==
+ dependencies:
+ gaxios "^6.0.0"
+ jws "^4.0.0"
+
gulp-sort@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/gulp-sort/-/gulp-sort-2.0.0.tgz#c6762a2f1f0de0a3fc595a21599d3fac8dba1aca"
@@ -7118,7 +8918,7 @@ heimdalljs@^0.2.6:
dependencies:
rsvp "~3.2.1"
-hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
+hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -7132,6 +8932,11 @@ html-encoding-sniffer@^3.0.0:
dependencies:
whatwg-encoding "^2.0.0"
+html-entities@^2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f"
+ integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==
+
html-escaper@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
@@ -7168,6 +8973,14 @@ http-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
+http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e"
+ integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
+ dependencies:
+ agent-base "^7.1.0"
+ debug "^4.3.4"
+
http-signature@~1.3.6:
version "1.3.6"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
@@ -7177,7 +8990,7 @@ http-signature@~1.3.6:
jsprim "^2.0.2"
sshpk "^1.14.1"
-https-proxy-agent@^5.0.1:
+https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
@@ -7185,6 +8998,14 @@ https-proxy-agent@^5.0.1:
agent-base "6"
debug "4"
+https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.3:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168"
+ integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "4"
+
human-signals@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
@@ -7239,6 +9060,13 @@ iconv-lite@0.6.3, iconv-lite@^0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
+iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
identity-obj-proxy@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14"
@@ -7261,6 +9089,11 @@ ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
+immediate@~3.0.5:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+ integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
+
immer@^10.0.2:
version "10.0.2"
resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.2.tgz#11636c5b77acf529e059582d76faf338beb56141"
@@ -7315,6 +9148,43 @@ ini@2.0.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+ini@~1.3.0:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+inquirer-checkbox-plus-prompt@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/inquirer-checkbox-plus-prompt/-/inquirer-checkbox-plus-prompt-1.4.2.tgz#5a5bb42a3f4bca2f6f4e582d163733eb59f4b195"
+ integrity sha512-W8/NL9x5A81Oq9ZfbYW5c1LuwtAhc/oB/u9YZZejna0pqrajj27XhnUHygJV0Vn5TvcDy1VJcD2Ld9kTk40dvg==
+ dependencies:
+ chalk "4.1.2"
+ cli-cursor "^3.1.0"
+ figures "^3.0.0"
+ lodash "^4.17.5"
+ rxjs "^6.6.7"
+
+inquirer@^8.2.5:
+ version "8.2.6"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562"
+ integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.1"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.21"
+ mute-stream "0.0.8"
+ ora "^5.4.1"
+ run-async "^2.4.0"
+ rxjs "^7.5.5"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+ wrap-ansi "^6.0.1"
+
internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
@@ -7331,6 +9201,14 @@ invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
+ip-address@^9.0.5:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
+ integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==
+ dependencies:
+ jsbn "1.1.0"
+ sprintf-js "^1.1.3"
+
is-arguments@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
@@ -7457,6 +9335,11 @@ is-installed-globally@~0.4.0:
global-dirs "^3.0.0"
is-path-inside "^3.0.2"
+is-interactive@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+ integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+
is-map@^2.0.1, is-map@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
@@ -7484,6 +9367,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
is-path-inside@^3.0.2, is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -8147,6 +10035,14 @@ js-sdsl@^4.1.4:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+js-yaml@3.13.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
js-yaml@4.1.0, js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@@ -8162,6 +10058,11 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+jsbn@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
+ integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -8209,6 +10110,13 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
+json-bigint@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1"
+ integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==
+ dependencies:
+ bignumber.js "^9.0.0"
+
json-parse-even-better-errors@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
@@ -8219,6 +10127,11 @@ json-schema-traverse@^0.4.1:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
json-schema@0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
@@ -8287,6 +10200,33 @@ jsprim@^2.0.2:
object.assign "^4.1.4"
object.values "^1.1.6"
+jszip@^3.10.1:
+ version "3.10.1"
+ resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2"
+ integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
+ dependencies:
+ lie "~3.3.0"
+ pako "~1.0.2"
+ readable-stream "~2.3.6"
+ setimmediate "^1.0.5"
+
+jwa@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc"
+ integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==
+ dependencies:
+ buffer-equal-constant-time "1.0.1"
+ ecdsa-sig-formatter "1.0.11"
+ safe-buffer "^5.0.1"
+
+jws@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4"
+ integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==
+ dependencies:
+ jwa "^2.0.0"
+ safe-buffer "^5.0.1"
+
kleur@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
@@ -8332,6 +10272,13 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
+lie@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
+ integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
+ dependencies:
+ immediate "~3.0.5"
+
lilconfig@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.0.tgz#aabf03fd46934d0566d75b4b64ce41a2cdea1167"
@@ -8392,6 +10339,11 @@ lodash-es@^4.17.21:
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -8432,12 +10384,12 @@ lodash.once@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
-lodash@4.17.21, lodash@^4, lodash@^4.17.15, lodash@^4.17.21:
+lodash@4.17.21, lodash@^4, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.5:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@^4.0.0:
+log-symbols@^4.0.0, log-symbols@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
@@ -8468,6 +10420,11 @@ loglevel@^1.4.1:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4"
integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==
+long@^5.0.0:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
+ integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
+
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -8475,6 +10432,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
+lower-case@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+ integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+ dependencies:
+ tslib "^2.0.3"
+
lru-cache@^4.0.1:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -8497,6 +10461,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lru-cache@^7.14.1:
+ version "7.18.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
+ integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+
"lru-cache@^9.1.1 || ^10.0.0":
version "10.0.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c"
@@ -8618,7 +10587,7 @@ minimatch@^9.0.1:
dependencies:
brace-expansion "^2.0.1"
-minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8:
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -8665,6 +10634,16 @@ ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
+nan@^2.18.0, nan@^2.19.0:
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3"
+ integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
+
nanoid@^3.3.6:
version "3.3.6"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
@@ -8680,6 +10659,11 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+netmask@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
+ integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
+
nmtree@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63"
@@ -8687,6 +10671,14 @@ nmtree@^1.0.6:
dependencies:
commander "^2.11.0"
+no-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+ integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+ dependencies:
+ lower-case "^2.0.2"
+ tslib "^2.0.3"
+
node-fetch@2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -8694,6 +10686,18 @@ node-fetch@2.6.7:
dependencies:
whatwg-url "^5.0.0"
+node-fetch@^2.6.1, node-fetch@^2.6.9:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-forge@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
+ integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -8745,6 +10749,11 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
+
object-inspect@^1.12.3, object-inspect@^1.9.0:
version "1.12.3"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
@@ -8823,6 +10832,13 @@ object.values@^1.1.6, object.values@^1.1.7:
define-properties "^1.2.0"
es-abstract "^1.22.1"
+on-finished@^2.3.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -8849,6 +10865,26 @@ optionator@^0.9.1, optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
+ora@5.4.1, ora@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+ integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
+ dependencies:
+ bl "^4.1.0"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-spinners "^2.5.0"
+ is-interactive "^1.0.0"
+ is-unicode-supported "^0.1.0"
+ log-symbols "^4.1.0"
+ strip-ansi "^6.0.0"
+ wcwidth "^1.0.1"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
ospath@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b"
@@ -8908,6 +10944,33 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+pac-proxy-agent@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75"
+ integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==
+ dependencies:
+ "@tootallnate/quickjs-emscripten" "^0.23.0"
+ agent-base "^7.0.2"
+ debug "^4.3.4"
+ get-uri "^6.0.1"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.2"
+ pac-resolver "^7.0.0"
+ socks-proxy-agent "^8.0.2"
+
+pac-resolver@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6"
+ integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==
+ dependencies:
+ degenerator "^5.0.0"
+ netmask "^2.0.2"
+
+pako@~1.0.2:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -9106,6 +11169,24 @@ prettier-eslint-cli@^8.0.1:
rxjs "^7.8.1"
yargs "^17.7.2"
+prettier-eslint@^16.1.2:
+ version "16.1.2"
+ resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.1.2.tgz#86364fea13dd063f3df715b922678dd8a0fd4be1"
+ integrity sha512-mGFGZQbAh11FSnwW3H1zngzQYR2QMmHO8vdfgnAuzOFhnDeUZHYtwpqQvOMOMT0k818Dr1X+J4a/sVE0r34RKQ==
+ dependencies:
+ "@typescript-eslint/parser" "^6.7.5"
+ common-tags "^1.4.0"
+ dlv "^1.1.0"
+ eslint "^8.7.0"
+ indent-string "^4.0.0"
+ lodash.merge "^4.6.0"
+ loglevel-colored-level-prefix "^1.0.0"
+ prettier "^3.0.1"
+ pretty-format "^29.7.0"
+ require-relative "^0.8.7"
+ typescript "^5.2.2"
+ vue-eslint-parser "^9.1.0"
+
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
@@ -9188,6 +11269,63 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+proto3-json-serializer@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd"
+ integrity sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==
+ dependencies:
+ protobufjs "^7.2.5"
+
+protobufjs@7.3.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c"
+ integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/node" ">=13.7.0"
+ long "^5.0.0"
+
+protobufjs@^7.2.5:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4"
+ integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/node" ">=13.7.0"
+ long "^5.0.0"
+
+proxy-agent@^6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.4.0.tgz#b4e2dd51dee2b377748aef8d45604c2d7608652d"
+ integrity sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "^4.3.4"
+ http-proxy-agent "^7.0.1"
+ https-proxy-agent "^7.0.3"
+ lru-cache "^7.14.1"
+ pac-proxy-agent "^7.0.1"
+ proxy-from-env "^1.1.0"
+ socks-proxy-agent "^8.0.2"
+
proxy-from-env@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
@@ -9216,7 +11354,21 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
-punycode@^2.1.0, punycode@^2.1.1:
+pumpify@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e"
+ integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==
+ dependencies:
+ duplexify "^4.1.1"
+ inherits "^2.0.3"
+ pump "^3.0.0"
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+punycode@^2.1.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
@@ -9262,14 +11414,24 @@ quick-temp@^0.1.8:
rimraf "^2.5.4"
underscore.string "~3.3.4"
-react-bootstrap@^2.9.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.9.1.tgz#c1ab48ae2b2cfe6d5ac957c2042eb36fcafdb1d2"
- integrity sha512-ezgmh/ARCYp18LbZEqPp0ppvy+ytCmycDORqc8vXSKYV3cer4VH7OReV8uMOoKXmYzivJTxgzGHalGrHamryHA==
+rc@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+react-bootstrap@^2.10.2:
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.10.2.tgz#3b609eb0170e31b3d9ace297d3a016c202a42642"
+ integrity sha512-UvB7mRqQjivdZNxJNEA2yOQRB7L9N43nBnKc33K47+cH90/ujmnMwatTCwQLu83gLhrzAl8fsa6Lqig/KLghaA==
dependencies:
"@babel/runtime" "^7.22.5"
"@restart/hooks" "^0.4.9"
- "@restart/ui" "^1.6.6"
+ "@restart/ui" "^1.6.8"
"@types/react-transition-group" "^4.4.6"
classnames "^2.3.2"
dom-helpers "^5.2.1"
@@ -9340,6 +11502,13 @@ react-error-boundary@^3.1.0:
dependencies:
"@babel/runtime" "^7.12.5"
+react-error-boundary@^4.0.13:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.13.tgz#80386b7b27b1131c5fbb7368b8c0d983354c7947"
+ integrity sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+
react-fast-compare@3.2.1, react-fast-compare@^3.0.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.1.tgz#53933d9e14f364281d6cba24bfed7a4afb808b5f"
@@ -9365,10 +11534,10 @@ react-i18next@^13.2.0:
"@babel/runtime" "^7.22.5"
html-parse-stringify "^3.0.1"
-react-icons@^4.9.0:
- version "4.10.1"
- resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.10.1.tgz#3f3b5eec1f63c1796f6a26174a1091ca6437a500"
- integrity sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==
+react-icons@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.2.1.tgz#28c2040917b2a2eda639b0f797bff1888e018e4a"
+ integrity sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==
react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0:
version "16.13.1"
@@ -9410,16 +11579,12 @@ react-popper@^2.3.0:
react-fast-compare "^3.0.1"
warning "^4.0.2"
-react-redux@^8.1.2:
- version "8.1.2"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.2.tgz#9076bbc6b60f746659ad6d51cb05de9c5e1e9188"
- integrity sha512-xJKYI189VwfsFc4CJvHqHlDrzyFTY/3vZACbE+rr/zQ34Xx1wQfB4OTOSeOSNrF6BDVe8OOdxIrAnMGXA3ggfw==
+react-redux@^9.1.2:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.1.2.tgz#deba38c64c3403e9abd0c3fbeab69ffd9d8a7e4b"
+ integrity sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==
dependencies:
- "@babel/runtime" "^7.12.1"
- "@types/hoist-non-react-statics" "^3.3.1"
"@types/use-sync-external-store" "^0.0.3"
- hoist-non-react-statics "^3.3.2"
- react-is "^18.0.0"
use-sync-external-store "^1.0.0"
react-refresh@^0.14.0:
@@ -9515,7 +11680,7 @@ react@^18:
dependencies:
loose-envify "^1.1.0"
-readable-stream@^3.4.0:
+readable-stream@^3.1.1, readable-stream@^3.4.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -9682,6 +11847,11 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
require-relative@^0.8.7:
version "0.8.7"
resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
@@ -9756,6 +11926,20 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
+retry-request@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3"
+ integrity sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==
+ dependencies:
+ "@types/request" "^2.48.8"
+ extend "^3.0.2"
+ teeny-request "^9.0.0"
+
+retry@0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -9804,6 +11988,11 @@ rsvp@~3.2.1:
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a"
integrity sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==
+run-async@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+ integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -9811,7 +12000,14 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
-rxjs@^7.5.1, rxjs@^7.8.1:
+rxjs@^6.6.7:
+ version "6.6.7"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+ integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+ dependencies:
+ tslib "^1.9.0"
+
+rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.8.1:
version "7.8.1"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
@@ -9852,20 +12048,25 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"
-"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-sass@^1.66.1:
- version "1.66.1"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1"
- integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==
+sass@^1.77.5:
+ version "1.77.5"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.5.tgz#5f9009820297521356e962c0bed13ee36710edfe"
+ integrity sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
+sax@>=0.6.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
+ integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
+
saxes@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
@@ -9890,13 +12091,18 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4:
+semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies:
lru-cache "^6.0.0"
+semver@^7.5.3:
+ version "7.6.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+ integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
+
set-function-length@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
@@ -9916,6 +12122,11 @@ set-function-name@^2.0.0, set-function-name@^2.0.1:
functions-have-names "^1.2.3"
has-property-descriptors "^1.0.0"
+setimmediate@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
+
shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
@@ -9964,6 +12175,15 @@ signal-exit@^4.0.1:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+simple-git@3.16.0:
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.0.tgz#421773e24680f5716999cc4a1d60127b4b6a9dec"
+ integrity sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==
+ dependencies:
+ "@kwsites/file-exists" "^1.1.1"
+ "@kwsites/promise-deferred" "^1.1.1"
+ debug "^4.3.4"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -9997,6 +12217,36 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+snake-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
+ integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
+socks-proxy-agent@^8.0.2:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz#6b2da3d77364fde6292e810b496cb70440b9b89d"
+ integrity sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==
+ dependencies:
+ agent-base "^7.1.1"
+ debug "^4.3.4"
+ socks "^2.7.1"
+
+socks@^2.7.1:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+ integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
+ dependencies:
+ ip-address "^9.0.5"
+ smart-buffer "^4.2.0"
+
sort-keys@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446"
@@ -10037,11 +12287,51 @@ sprintf-js@^1.1.1:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
+sprintf-js@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
+ integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+ssh2-streams@0.4.10:
+ version "0.4.10"
+ resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34"
+ integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ==
+ dependencies:
+ asn1 "~0.2.0"
+ bcrypt-pbkdf "^1.0.2"
+ streamsearch "~0.1.2"
+
+ssh2@^1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b"
+ integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==
+ dependencies:
+ asn1 "^0.2.6"
+ bcrypt-pbkdf "^1.0.2"
+ optionalDependencies:
+ cpu-features "~0.0.9"
+ nan "^2.18.0"
+
+sshpk@1.16.1:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
sshpk@^1.14.1:
version "1.17.0"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
@@ -10078,6 +12368,23 @@ stream-composer@^1.0.2:
dependencies:
streamx "^2.13.2"
+stream-events@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5"
+ integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==
+ dependencies:
+ stubs "^3.0.0"
+
+stream-shift@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b"
+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
+
+streamsearch@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
+ integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==
+
streamx@^2.12.0, streamx@^2.13.2, streamx@^2.14.0:
version "2.15.2"
resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.2.tgz#680eacebdc9c43ede7362c2e6695b34dd413c741"
@@ -10107,7 +12414,16 @@ string-natural-compare@^3.0.1:
resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4"
integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
-"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -10219,7 +12535,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -10233,6 +12549,13 @@ strip-ansi@^3.0.0:
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -10267,6 +12590,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
+
strip-outer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
@@ -10274,6 +12602,16 @@ strip-outer@^1.0.1:
dependencies:
escape-string-regexp "^1.0.2"
+strnum@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
+ integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
+
+stubs@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b"
+ integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==
+
styled-components@^6.0.4:
version "6.0.7"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0"
@@ -10321,7 +12659,7 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.1.0:
+supports-color@^7.0.0, supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -10335,6 +12673,14 @@ supports-color@^8.0.0, supports-color@^8.1.1:
dependencies:
has-flag "^4.0.0"
+supports-hyperlinks@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624"
+ integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==
+ dependencies:
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
@@ -10375,6 +12721,17 @@ synp@^1.9.10:
semver "^7.3.5"
sort-object-keys "^1.1.3"
+teeny-request@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d"
+ integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==
+ dependencies:
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.0"
+ node-fetch "^2.6.9"
+ stream-events "^1.0.5"
+ uuid "^9.0.0"
+
teex@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12"
@@ -10382,6 +12739,14 @@ teex@^1.0.1:
dependencies:
streamx "^2.12.5"
+terminal-link@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -10409,16 +12774,28 @@ through2@^2.0.1:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@^2.3.8:
+through@^2.3.6, through@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+tiny-async-pool@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-async-pool/-/tiny-async-pool-2.1.0.tgz#3ec126568c18a7916912fb9fbecf812337ec6b84"
+ integrity sha512-ltAHPh/9k0STRQqaoUX52NH4ZQYAJz24ZAEwf1Zm+HYg3l9OXTWeqWKyYsHu40wF/F0rxd2N2bk5sLvX2qlSvg==
+
tiny-invariant@^1.0.6:
version "1.3.1"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
tmp@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
@@ -10504,16 +12881,21 @@ tslib@2.4.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
-tslib@^1.8.1:
+tslib@^1.8.1, tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0:
+tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3"
integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==
+tslib@^2.0.1, tslib@^2.1.0, tslib@^2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
+ integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -10533,6 +12915,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+typanion@^3.14.0, typanion@^3.8.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/typanion/-/typanion-3.14.0.tgz#a766a91810ce8258033975733e836c43a2929b94"
+ integrity sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -10700,9 +13087,9 @@ universalify@^0.2.0:
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
universalify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
- integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
+ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
untildify@^4.0.0:
version "4.0.0"
@@ -10725,7 +13112,7 @@ update-browserslist-db@^1.0.13:
escalade "^3.1.1"
picocolors "^1.0.0"
-uri-js@^4.2.2:
+uri-js@^4.2.2, uri-js@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
@@ -10775,11 +13162,16 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-uuid@^8.3.2:
+uuid@^8.0.0, uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^9.0.0, uuid@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+ integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
+
v8-to-istanbul@^9.0.1:
version "9.1.0"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265"
@@ -10873,19 +13265,19 @@ vite-plugin-eslint@^1.8.1:
"@types/eslint" "^8.4.5"
rollup "^2.77.2"
-vite-plugin-svgr@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz#920375aaf6635091c9ac8e467825f92d32544476"
- integrity sha512-Uvq6niTvhqJU6ga78qLKBFJSDvxWhOnyfQSoKpDPMAGxJPo5S3+9hyjExE5YDj6Lpa4uaLkGc1cBgxXov+LjSw==
+vite-plugin-svgr@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz#9f3bf5206b0ec510287e56d16f1915e729bb4e6b"
+ integrity sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==
dependencies:
- "@rollup/pluginutils" "^5.0.2"
- "@svgr/core" "^7.0.0"
- "@svgr/plugin-jsx" "^7.0.0"
+ "@rollup/pluginutils" "^5.0.5"
+ "@svgr/core" "^8.1.0"
+ "@svgr/plugin-jsx" "^8.1.0"
-vite@^4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.2.tgz#d6ea8610e099851dad8c7371599969e0f8b97e82"
- integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==
+vite@^4.5.3:
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a"
+ integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==
dependencies:
esbuild "^0.18.10"
postcss "^8.4.27"
@@ -10961,6 +13353,13 @@ warning@^4.0.0, warning@^4.0.2, warning@^4.0.3:
dependencies:
loose-envify "^1.0.0"
+wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
+ dependencies:
+ defaults "^1.0.3"
+
web-vitals@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9"
@@ -11080,7 +13479,7 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -11089,7 +13488,7 @@ which@^2.0.1:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^6.2.0:
+wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
@@ -11098,6 +13497,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
@@ -11120,6 +13528,11 @@ write-file-atomic@^4.0.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
+ws@7.4.6:
+ version "7.4.6"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+ integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+
ws@^8.11.0:
version "8.13.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
@@ -11130,6 +13543,19 @@ xml-name-validator@^4.0.0:
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+xml2js@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7"
+ integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==
+ dependencies:
+ sax ">=0.6.0"
+ xmlbuilder "~11.0.0"
+
+xmlbuilder@~11.0.0:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
+ integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+
xmlchars@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
@@ -11165,6 +13591,11 @@ yaml@^1.10.0:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+yamux-js@0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/yamux-js/-/yamux-js-0.1.2.tgz#a157e4922f8f0393725955c352b418f16259fd48"
+ integrity sha512-bhsPlPZ9xB4Dawyf6nkS58u4F3IvGCaybkEKGnneUeepcI7MPoG3Tt6SaKCU5x/kP2/2w20Qm/GqbpwAM16vYw==
+
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"