From 4d91f19d557439f086b1cab14687b17e4aa8a84d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 01:53:27 +0000 Subject: [PATCH 01/28] Bump vite from 4.5.2 to 4.5.3 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.2 to 4.5.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.3/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index dbdbee68..8c6deedf 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "redux-saga-test-plan": "^4.0.6", "sass": "^1.66.1", "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", diff --git a/yarn.lock b/yarn.lock index 0886ac86..ad7d4efa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10882,10 +10882,10 @@ vite-plugin-svgr@^3.2.0: "@svgr/core" "^7.0.0" "@svgr/plugin-jsx" "^7.0.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" From 57708c33da65274e827a6f4cec6105d1868159cf Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Thu, 4 Apr 2024 17:34:42 -0400 Subject: [PATCH 02/28] improve merge behavior, disallow merge >1000 alerts --- .../subcomponents/MergeButton.jsx | 35 +++++- .../MergeModal/MergeModalComponent.jsx | 60 +++++++++- src/redux/incident_actions/actions.js | 1 + src/redux/incident_actions/reducers.js | 12 ++ src/redux/incident_actions/sagas.js | 110 +++++++++++++----- 5 files changed, 179 insertions(+), 39 deletions(-) diff --git a/src/components/IncidentActions/subcomponents/MergeButton.jsx b/src/components/IncidentActions/subcomponents/MergeButton.jsx index 26621162..36330b63 100644 --- a/src/components/IncidentActions/subcomponents/MergeButton.jsx +++ b/src/components/IncidentActions/subcomponents/MergeButton.jsx @@ -1,4 +1,5 @@ import React, { + // useEffect, useMemo, } from 'react'; @@ -18,6 +19,11 @@ import { useTranslation, } from 'react-i18next'; +import { + updateActionAlertsModal as updateActionAlertsModalConnected, + toggleDisplayActionAlertsModal as toggleDisplayActionAlertsModalConnected, +} from 'src/redux/action_alerts/actions'; + import { toggleDisplayMergeModal as toggleDisplayMergeModalConnected, } from 'src/redux/incident_actions/actions'; @@ -27,10 +33,37 @@ const MergeButton = () => { t, } = useTranslation(); const selectedCount = useSelector((state) => state.incidentTable.selectedCount); + const { + selectedRows, + } = useSelector((state) => state.incidentTable); const dispatch = useDispatch(); + const updateActionAlertsModal = (actionAlertsModalType, actionAlertsModalMessage) => ( + dispatch(updateActionAlertsModalConnected(actionAlertsModalType, actionAlertsModalMessage)) + ); + const toggleDisplayActionAlertsModal = () => dispatch(toggleDisplayActionAlertsModalConnected()); const toggleDisplayMergeModal = () => dispatch(toggleDisplayMergeModalConnected()); + const displayActionModal = (actionAlertsModalType, actionAlertsModalMessage) => { + updateActionAlertsModal(actionAlertsModalType, actionAlertsModalMessage); + toggleDisplayActionAlertsModal(); + }; + const enabled = useMemo(() => selectedCount > 0, [selectedCount]); + const selectedIncidentsTotalAlerts = useMemo(() => { + if (!(selectedRows instanceof Array)) { + return 0; + } + return selectedRows.reduce((acc, incident) => acc + (incident.alert_counts?.all || 0), 0); + }, [selectedRows]); + + const handleClick = () => { + if (selectedIncidentsTotalAlerts > 1000) { + displayActionModal('error', t('Cannot merge incidents containing more than 1000 alerts')); + } else { + toggleDisplayMergeModal(); + } + }; + return ( - 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..7d30a992 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 = ( @@ -481,61 +482,90 @@ 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 of 100 + 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, + }, + }); + + // Build individual requests as the endpoint supports singular PUT + 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) { + 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,6 +583,7 @@ 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( @@ -565,6 +596,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); } From 43bdecef98bf8ab65de429e6ea4a5dd4a4520329 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Thu, 4 Apr 2024 17:38:22 -0400 Subject: [PATCH 03/28] more RUM, move polling to sagas, polling visibility in status overlay, catastrophe modal, i18n --- package.json | 2 +- src/App.jsx | 162 ++++------- .../CatastropheModal/CatastropheModal.jsx | 55 ++++ .../DetailedStatusOverlay.jsx | 67 ++++- src/locales/de/translation.json | 13 +- src/locales/en/translation.json | 13 +- src/locales/es/translation.json | 13 +- src/locales/fr/translation.json | 13 +- src/locales/id/translation.json | 13 +- src/locales/ja/translation.json | 13 +- src/locales/pt-br/translation.json | 13 +- src/locales/pt/translation.json | 13 +- src/redux/connection/actions.js | 8 + src/redux/connection/reducers.js | 36 +++ src/redux/connection/sagas.js | 79 +++++- src/redux/incidents/sagas.js | 2 +- src/redux/log_entries/actions.js | 6 + src/redux/log_entries/reducers.js | 43 ++- src/redux/log_entries/sagas.js | 102 ++++++- src/redux/rootSaga.js | 260 ++++++++++-------- src/util/pd-api-wrapper.js | 10 + src/util/sagas.js | 3 + yarn.lock | 38 +-- 23 files changed, 684 insertions(+), 293 deletions(-) create mode 100644 src/components/CatastropheModal/CatastropheModal.jsx diff --git a/package.json b/package.json index dbdbee68..36226419 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "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", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", diff --git a/src/App.jsx b/src/App.jsx index f6f911e4..3c8bf66e 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, @@ -18,6 +18,7 @@ import { 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 +41,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 +58,53 @@ 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, + 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_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 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 +115,10 @@ const App = () => { userAuthorize(); if (token && userAuthorized) { startMonitoring(); - checkAbilities(); getPrioritiesAsync(); getIncidentsAsync(); getExtensionsAsync(); getResponsePlaysAsync(); - checkConnectionStatus(); } }, [userAuthorized]); @@ -137,84 +127,32 @@ 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); + // Set up API polling 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 - 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 }); + } else { + dispatch({ type: STOP_LOG_ENTRIES_POLLING }); + dispatch({ type: STOP_CLEAN_RECENT_LOG_ENTRIES_POLLING }); + dispatch({ type: STOP_ABILITIES_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) { return ( @@ -245,11 +183,11 @@ const App = () => { return (
- + - - + + @@ -263,7 +201,7 @@ const App = () => { - + diff --git a/src/components/CatastropheModal/CatastropheModal.jsx b/src/components/CatastropheModal/CatastropheModal.jsx new file mode 100644 index 00000000..295fcad7 --- /dev/null +++ b/src/components/CatastropheModal/CatastropheModal.jsx @@ -0,0 +1,55 @@ +import React, { + useEffect, + useState, +} from 'react'; + +import { + Code, + Modal, + ModalOverlay, + ModalContent, + ModalHeader, + ModalBody, + Text, +} from '@chakra-ui/react'; + +import { + useTranslation, +} from 'react-i18next'; + +const CatastropheOverlay = ({ + errorMessage, + countdownSeconds = 10, +}) => { + const { + t, + } = useTranslation(); + const [seconds, setSeconds] = useState(countdownSeconds); + + useEffect(() => { + if (seconds > 0) { + const timerId = setTimeout(() => setSeconds(seconds - 1), 1000); + return () => clearTimeout(timerId); + } + window.location.reload(true); + return undefined; + }, [seconds]); + + return ( + + + + {t('Catastrophic Error')} + + {t('An unexpected error has occurred:')} + {errorMessage} + + {t('The application will restart in X seconds.', { seconds })} + + + + + ); +}; + +export default CatastropheOverlay; diff --git a/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx b/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx index 01afead8..7e0e72c0 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,6 +35,10 @@ import { useTranslation, } from 'react-i18next'; +import { + DATE_FORMAT, +} from 'src/config/constants'; + import { getIncidentsAsync as getIncidentsAsyncAction, UPDATE_INCIDENT_ALERTS, @@ -46,11 +52,7 @@ const DetailedStatusOverlay = ({ const { t, } = useTranslation(); - const { - status: connectionStatus, - error: connectionError, - // errors, - } = useSelector((state) => state.connection); + const { status: incidentStatus, error: incidentError, @@ -59,7 +61,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 +104,7 @@ const DetailedStatusOverlay = ({ const badgeText = status.split('_').pop(); switch (badgeText) { case 'COMPLETED': + case 'STARTED': badgeProps.colorScheme = 'green'; break; case 'REQUESTED': @@ -102,6 +112,7 @@ const DetailedStatusOverlay = ({ break; case 'FAILED': case 'ERROR': + case 'STOPPED': badgeProps.colorScheme = 'red'; break; default: @@ -126,7 +137,6 @@ const DetailedStatusOverlay = ({ {badgeForStatus(status)} - {/* {error && !(['REQUESTED', 'COMPLETED'].includes(status.split('_').pop())) && ( */} {error && ( {error} @@ -268,13 +278,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)} diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index 5886b6cd..81a715e6 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", @@ -98,9 +100,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 +114,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 +136,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 +147,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", @@ -197,6 +204,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", @@ -214,6 +222,7 @@ "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..4793d172 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", @@ -98,9 +100,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 +114,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 +136,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 +147,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", @@ -197,6 +204,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", @@ -214,6 +222,7 @@ "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..0815a42b 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", @@ -99,9 +101,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 +115,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 +138,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 +149,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", @@ -199,6 +206,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", @@ -216,6 +224,7 @@ "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..06b1da24 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", @@ -99,9 +101,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 +115,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 +138,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 +149,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é", @@ -199,6 +206,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", @@ -216,6 +224,7 @@ "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..d6e682ea 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", @@ -97,9 +99,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 +113,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 +134,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 +145,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", @@ -195,6 +202,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", @@ -212,6 +220,7 @@ "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..f29fea17 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を使用するための十分な権限を持っていません", @@ -97,9 +99,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 +113,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 +134,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 +145,7 @@ "on": "。対象:", "Open Incidents": "オープンインシデント", "Please contact the associated site owner for access": "アクセスするには、サイトオーナーにお問い合わせください", + "Polling": "ポーリング中", "Presets file is for a different subdomain": "プリセットファイルは別のサブドメイン用です", "Presets loaded": "プリセットがロードされました", "Priority": "優先度", @@ -195,6 +202,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": "件名", @@ -212,6 +220,7 @@ "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..0e46ac5b 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", @@ -99,9 +101,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 +115,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 +138,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 +149,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", @@ -199,6 +206,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", @@ -216,6 +224,7 @@ "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..16d8269b 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", @@ -99,9 +101,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 +115,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 +138,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 +149,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", @@ -199,6 +206,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", @@ -216,6 +224,7 @@ "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..4e5bb03d 100644 --- a/src/redux/connection/actions.js +++ b/src/redux/connection/actions.js @@ -4,17 +4,25 @@ 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 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..abae076a 100644 --- a/src/redux/connection/reducers.js +++ b/src/redux/connection/reducers.js @@ -8,13 +8,20 @@ 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, SAVE_ERROR_REQUESTED, SAVE_ERROR_COMPLETED, + CATASTROPHE, } from './actions'; const connection = produce( @@ -45,6 +52,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 +68,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 +85,14 @@ 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 CHECK_ABILITIES_ERROR: draft.status = CHECK_ABILITIES_ERROR; break; @@ -78,6 +109,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..a0be4c8a 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'; @@ -26,11 +27,17 @@ 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, SAVE_ERROR_REQUESTED, SAVE_ERROR_COMPLETED, } from './actions'; @@ -65,6 +72,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 +98,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 +139,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 +191,20 @@ 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* saveError() { yield takeLatest(SAVE_ERROR_REQUESTED, saveErrorImpl); } diff --git a/src/redux/incidents/sagas.js b/src/redux/incidents/sagas.js index 0a517596..2a111fda 100644 --- a/src/redux/incidents/sagas.js +++ b/src/redux/incidents/sagas.js @@ -551,7 +551,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..0d6dfb58 100644 --- a/src/redux/log_entries/sagas.js +++ b/src/redux/log_entries/sagas.js @@ -2,11 +2,17 @@ /* 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 { + 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'; @@ -25,6 +31,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,6 +47,9 @@ export function* getLogEntriesAsync() { export function* getLogEntries(action) { const { recentLogEntries, + pollingStatus: { + errors: pollingErrors, + }, } = yield select(selectLogEntries); try { @@ -43,6 +57,7 @@ export function* getLogEntries(action) { const { since, } = action; + const params = { since: since.toISOString().replace(/\.[\d]{3}/, ''), 'include[]': ['incidents', 'linked_incidents', 'external_references', 'channels'], @@ -51,12 +66,18 @@ 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), + }, + }); yield put({ type: FETCH_LOG_ENTRIES_ERROR, message: e.message, @@ -110,6 +131,12 @@ export function* getLogEntries(action) { // Call to update recent log entries with this data. // yield call(updateRecentLogEntries); } catch (e) { + yield put({ + type: UPDATE_LOG_ENTRIES_POLLING, + pollingStatus: { + errors: [...pollingErrors, e].slice(-25), + }, + }); // Handle API auth failure if (e.status === 401) { e.message = i18next.t('Unauthorized Access'); @@ -123,6 +150,61 @@ export function* getLogEntries(action) { } } +export function* pollLogEntriesTask() { + while (true) { + const { + logEntries: { + latestLogEntryDate, + }, + users: { + userAuthorized, + userAcceptedDisclaimer, + }, + incidents: { + fetchingIncidents, + }, + } = yield select(); + if (userAuthorized && userAcceptedDisclaimer && !fetchingIncidents && !DEBUG_DISABLE_POLLING) { + 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 }); + 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)]); + } +} + export function* cleanRecentLogEntriesAsync() { yield takeLatest(CLEAN_RECENT_LOG_ENTRIES, cleanRecentLogEntries); } @@ -151,3 +233,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/rootSaga.js b/src/redux/rootSaga.js index c9ae841f..74d7d6d2 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 { @@ -121,11 +125,18 @@ import { clearLocalCache, } from './settings/sagas'; +import { + CATASTROPHE, +} from './connection/actions'; + import { updateConnectionStatus, checkConnectionStatus, + checkConnectionStatusTaskWatcher, checkAbilities, + checkAbilitiesTaskWatcher, updateQueueStats, + updateQueueStatsTaskWatcher, } from './connection/sagas'; import { @@ -134,120 +145,135 @@ 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(), + + // 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(), + + // Monitoring + startMonitoring(), + stopMonitoring(), + ]); + } catch (e) { + RealUserMonitoring.trackError(e); + // eslint-disable-next-line no-console + console.log('Error in rootSaga:', e); + yield put({ + type: CATASTROPHE, + connectionStatusMessage: e.message, + }); + } } diff --git a/src/util/pd-api-wrapper.js b/src/util/pd-api-wrapper.js index a39badf3..e12c743f 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'; @@ -102,6 +104,10 @@ let watchdogTimeout; limiter.on('depleted', () => { // eslint-disable-next-line no-console console.error('Limiter queue depleted, setting watchdog timeout'); + RealUserMonitoring.trackError('LimiterDepleted', { + reservoir: 0, + currentLimit, + }); if (watchdogTimeout) { clearTimeout(watchdogTimeout); } @@ -112,6 +118,10 @@ limiter.on('depleted', () => { console.error( 'Watchdog timeout, queue is still depleted after 10 seconds; resetting limiter', ); + RealUserMonitoring.trackError('LimiterWatchdogTimeout', { + reservoir, + currentLimit, + }); resetLimiterWithRateLimit(currentLimit); } }); diff --git a/src/util/sagas.js b/src/util/sagas.js index 4618bd60..ecc09dba 100644 --- a/src/util/sagas.js +++ b/src/util/sagas.js @@ -2,6 +2,8 @@ import { put, } from 'redux-saga/effects'; +import RealUserMonitoring from 'src/config/monitoring'; + import i18next from 'src/i18n'; import { @@ -20,6 +22,7 @@ export const MISSING_ABILITY_ERROR = i18next.t( // Helper function to handle errors while processing saga export function* handleSagaError(action, exception) { + RealUserMonitoring.trackError(exception); yield displayActionModal('error', exception.message); yield put({ type: action, message: exception.message }); } diff --git a/yarn.lock b/yarn.lock index 0886ac86..59b70135 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2334,33 +2334,25 @@ 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-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@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== +"@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" "4.47.0" + "@datadog/browser-core" "5.14.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== +"@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" "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" + "@datadog/browser-rum-core" "5.14.0" "@emotion/babel-plugin@^11.11.0": version "11.11.0" From 054a7a6e3cd02d74cc0cce2681075a5be5b16da3 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Thu, 4 Apr 2024 21:22:09 -0400 Subject: [PATCH 04/28] oauth refresh --- src/App.jsx | 6 +- src/components/Auth/AuthComponent.jsx | 23 +++-- .../DetailedStatusOverlay.jsx | 16 ++++ src/redux/connection/actions.js | 6 ++ src/redux/connection/reducers.js | 15 ++++ src/redux/connection/sagas.js | 83 ++++++++++++++++++- src/redux/incident_actions/sagas.js | 3 +- src/redux/rootSaga.js | 4 + src/util/auth.js | 6 +- src/util/auth.test.js | 2 +- 10 files changed, 148 insertions(+), 16 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 3c8bf66e..7f873437 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -62,6 +62,8 @@ import { 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 { @@ -133,10 +135,12 @@ const App = () => { 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]); @@ -154,7 +158,7 @@ const App = () => { ); } - if (!token) { + if (typeof token !== 'string' || !token.startsWith('pd')) { return (
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/DetailedStatusOverlay/DetailedStatusOverlay.jsx b/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx index 7e0e72c0..aab303a8 100644 --- a/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx +++ b/src/components/DetailedStatusOverlay/DetailedStatusOverlay.jsx @@ -45,6 +45,10 @@ import { UPDATE_INCIDENT_NOTES, } from 'src/redux/incidents/actions'; +import { + OAUTH_REFRESH_REQUESTED, +} from 'src/redux/connection/actions'; + const DetailedStatusOverlay = ({ btnRef, isOpen, onOpen, onClose, }) => { @@ -331,6 +335,18 @@ const DetailedStatusOverlay = ({ {t('Debugging Actions')} + 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/IncidentTable/IncidentTableComponent.jsx b/src/components/IncidentTable/IncidentTableComponent.jsx index 0f707b8d..6649d9cf 100644 --- a/src/components/IncidentTable/IncidentTableComponent.jsx +++ b/src/components/IncidentTable/IncidentTableComponent.jsx @@ -406,7 +406,10 @@ const IncidentTableComponent = () => { // Therefore, clearing the checkbox in the UI before it is filtered out is the best we can do for now const isActionRequested = incidentActionsStatus === 'ACTION_REQUESTED'; const isToggleAction = incidentActionsStatus.includes('TOGGLE'); - const isRequestedOrCompleted = incidentActionsStatus.includes('REQUESTED') || incidentActionsStatus.includes('COMPLETED'); + const isRequestedOrCompleted = ( + incidentActionsStatus.includes('REQUESTED') + || incidentActionsStatus.includes('COMPLETED') + ); if (isActionRequested || (!isToggleAction && isRequestedOrCompleted)) { toggleAllRowsSelected(false); 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/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/sagas.js b/src/redux/incident_actions/sagas.js index 2dca19a1..2b98d7e0 100644 --- a/src/redux/incident_actions/sagas.js +++ b/src/redux/incident_actions/sagas.js @@ -157,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) { @@ -210,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) { @@ -279,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) { @@ -372,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); @@ -452,7 +452,7 @@ export function* snooze(action) { snoozedIncidents: updatedIncidents, }); } else { - handleMultipleAPIErrorResponses(responses); + yield call(handleMultipleAPIErrorResponses, responses); } } catch (e) { yield call(handleSagaError, SNOOZE_ERROR, e); @@ -526,7 +526,7 @@ export function* merge(action) { for (const mergeRequest of mergeRequests) { const response = yield mergeRequest; if (response.status !== 200) { - handleSingleAPIErrorResponse(response); + yield call(handleSingleAPIErrorResponse, response); yield put({ type: MERGE_ERROR, message: 'Error merging incidents', @@ -585,9 +585,7 @@ export function* merge(action) { 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({ @@ -659,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) { @@ -750,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); @@ -800,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); @@ -868,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); @@ -970,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/log_entries/sagas.js b/src/redux/log_entries/sagas.js index 0d6dfb58..7aad15e2 100644 --- a/src/redux/log_entries/sagas.js +++ b/src/redux/log_entries/sagas.js @@ -7,6 +7,10 @@ import { import i18next from 'src/i18n'; +import { + handleSingleAPIErrorResponse, +} from 'src/util/sagas'; + import { LOG_ENTRIES_POLLING_INTERVAL_SECONDS, LOG_ENTRIES_CLEARING_INTERVAL_SECONDS, @@ -18,6 +22,7 @@ import { } from 'src/util/pd-api-wrapper'; import { + CATASTROPHE, UPDATE_CONNECTION_STATUS_REQUESTED, } from 'src/redux/connection/actions'; import { @@ -51,7 +56,6 @@ export function* getLogEntries(action) { errors: pollingErrors, }, } = yield select(selectLogEntries); - try { // Create params and call pd lib const { @@ -87,7 +91,7 @@ export function* getLogEntries(action) { }); 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 @@ -127,9 +131,6 @@ export function* getLogEntries(action) { type: PROCESS_LOG_ENTRIES, logEntries, }); - - // Call to update recent log entries with this data. - // yield call(updateRecentLogEntries); } catch (e) { yield put({ type: UPDATE_LOG_ENTRIES_POLLING, @@ -137,16 +138,18 @@ export function* getLogEntries(action) { errors: [...pollingErrors, e].slice(-25), }, }); - // Handle API auth failure - if (e.status === 401) { - e.message = i18next.t('Unauthorized Access'); - } 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; + } } } diff --git a/src/redux/pd/actions.js b/src/redux/pd/actions.js new file mode 100644 index 00000000..139056ab --- /dev/null +++ b/src/redux/pd/actions.js @@ -0,0 +1,20 @@ +export const PD_API_SET_AUTH = 'PD_API_SET_AUTH'; + +export const PD_API_CALL_REQUESTED = 'PD_API_CALL_REQUESTED'; +export const PD_API_CALL_COMPLETED = 'PD_API_CALL_COMPLETED'; +export const PD_API_CALL_ERROR = 'PD_API_CALL_ERROR'; + +export const pdApiSetAuth = (accessToken, refreshToken, expiresAt) => ({ + type: PD_API_SET_AUTH, + accessToken, + refreshToken, + expiresAt, +}); + +export const pdApiCall = (method, endpoint, params = {}, data = {}) => ({ + type: PD_API_CALL_REQUESTED, + method, + endpoint, + params, + data, +}); diff --git a/src/redux/pd/reducers.js b/src/redux/pd/reducers.js new file mode 100644 index 00000000..65da34eb --- /dev/null +++ b/src/redux/pd/reducers.js @@ -0,0 +1,47 @@ +import { + produce, +} from 'immer'; + +import { + PD_API_SET_AUTH, + PD_API_CALL_REQUESTED, + PD_API_CALL_COMPLETED, + PD_API_CALL_ERROR, +} from './actions'; + +const pd = produce( + (draft, action) => { + switch (action.type) { + case PD_API_SET_AUTH: + draft.accessToken = action.accessToken; + draft.refreshToken = action.refreshToken; + draft.expiresAt = action.expiresAt; + break; + + case PD_API_CALL_REQUESTED: + draft.status = PD_API_CALL_REQUESTED; + break; + + case PD_API_CALL_COMPLETED: + draft.status = PD_API_CALL_COMPLETED; + break; + + case PD_API_CALL_ERROR: + draft.status = PD_API_CALL_ERROR; + draft.errors.push(action.error); + break; + + default: + break; + } + }, + { + accessToken: null, + refreshToken: null, + expiresAt: null, + status: '', + errors: [], + }, +); + +export default pd; diff --git a/src/redux/pd/sagas.js b/src/redux/pd/sagas.js new file mode 100644 index 00000000..f4484b06 --- /dev/null +++ b/src/redux/pd/sagas.js @@ -0,0 +1,26 @@ +import { + put, + takeLatest, +} from 'redux-saga/effects'; + +import { + PD_API_CALL_REQUESTED, + PD_API_CALL_COMPLETED, + PD_API_CALL_ERROR, +} from './actions'; + +export function* pdApiCallAsync() { + yield takeLatest(PD_API_CALL_REQUESTED, pdApiCall); +} + +export function* pdApiCall(action) { + try { + console.log('pdApiCall', action); + yield put({ + type: PD_API_CALL_COMPLETED, + response: {}, + }); + } catch (e) { + yield put({ type: PD_API_CALL_ERROR, message: e.message }); + } +} 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/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/pd-api-wrapper.js b/src/util/pd-api-wrapper.js index e12c743f..48050322 100644 --- a/src/util/pd-api-wrapper.js +++ b/src/util/pd-api-wrapper.js @@ -48,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: { @@ -64,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; @@ -145,6 +148,8 @@ export const throttledPdAxiosRequest = ( .toString(36) .substring(2, 7)}`; + const throwErrors = options?.throwErrors || false; + return limiter.schedule( { expiration: options?.expiration || 30 * 1000, @@ -152,7 +157,7 @@ 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; }, ); diff --git a/src/util/sagas.js b/src/util/sagas.js index ecc09dba..8788eb56 100644 --- a/src/util/sagas.js +++ b/src/util/sagas.js @@ -2,6 +2,14 @@ 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'; @@ -12,6 +20,7 @@ import { } from 'src/redux/action_alerts/actions'; import { + // CATASTROPHE, UPDATE_CONNECTION_STATUS_REQUESTED, } from 'src/redux/connection/actions'; @@ -23,12 +32,24 @@ 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 @@ -37,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/yarn.lock b/yarn.lock index 59b70135..a5747873 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9332,6 +9332,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" From 7f3d423e75c7627ca55e4403f9c5ec129fd95e65 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Mon, 29 Apr 2024 13:14:18 -0400 Subject: [PATCH 06/28] more better error handling --- package.json | 2 + src/App.jsx | 6 +- .../CatastropheModal/CatastropheModal.jsx | 39 +- .../subcomponents/IncidentAlertsModal.jsx | 6 +- .../PersonInitialsComponents.jsx | 35 +- .../MergeModal/MergeModalComponent.jsx | 2 +- src/redux/incidents/reducers.js | 8 + src/redux/incidents/sagas.js | 45 +- src/redux/log_entries/sagas.js | 8 +- src/redux/log_entries/sagas.test.js | 12 +- src/redux/pd/actions.js | 20 - src/redux/pd/reducers.js | 47 - src/redux/pd/sagas.js | 26 - src/redux/rootSaga.js | 2 +- src/util/pd-api-wrapper.js | 102 +- vite.config.js | 1 + yarn.lock | 2348 ++++++++++++++++- 17 files changed, 2547 insertions(+), 162 deletions(-) delete mode 100644 src/redux/pd/actions.js delete mode 100644 src/redux/pd/reducers.js delete mode 100644 src/redux/pd/sagas.js diff --git a/package.json b/package.json index 744956fa..f3df802d 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.0", "@datadog/browser-rum": "^5.14.0", + "@datadog/datadog-ci": "^2.33.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", @@ -62,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=0.12.2-beta.0 --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", diff --git a/src/App.jsx b/src/App.jsx index ca3eec52..b2e494c2 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -77,6 +77,7 @@ import { } from 'src/redux/monitoring/actions'; import { + PD_USER_TOKEN, PD_OAUTH_CLIENT_ID, PD_OAUTH_CLIENT_SECRET, } from 'src/config/constants'; @@ -169,7 +170,10 @@ const App = () => { ); } - if (typeof token !== 'string' || !token.startsWith('pd')) { + if ( + !PD_USER_TOKEN + && (typeof token !== 'string' || !token.startsWith('pd')) + ) { return (
diff --git a/src/components/CatastropheModal/CatastropheModal.jsx b/src/components/CatastropheModal/CatastropheModal.jsx index cdff2687..75f9c1be 100644 --- a/src/components/CatastropheModal/CatastropheModal.jsx +++ b/src/components/CatastropheModal/CatastropheModal.jsx @@ -1,6 +1,7 @@ import React, { useEffect, useState, + useRef, } from 'react'; import { @@ -43,16 +44,31 @@ const CatastropheOverlay = ({ const stopMonitoring = () => dispatch(stopMonitoringConnected()); const [seconds, setSeconds] = useState(countdownSeconds); + const timerIdRef = useRef(null); useEffect(() => { if (seconds > 0) { - const timerId = setTimeout(() => setSeconds(seconds - 1), 1000); - return () => clearTimeout(timerId); + timerIdRef.current = setTimeout(() => { + setSeconds(seconds - 1); + }, 1000); + } else { + window.location.reload(true); } - window.location.reload(true); - return undefined; + return () => { + if (timerIdRef.current) { + clearTimeout(timerIdRef.current); + timerIdRef.current = null; + } + }; }, [seconds]); + const cancelTimer = () => { + if (timerIdRef.current) { + clearTimeout(timerIdRef.current); + timerIdRef.current = null; + } + }; + return ( @@ -62,7 +78,11 @@ const CatastropheOverlay = ({ {t('An unexpected error has occurred:')} {errorMessage} - {t('The application will restart in X seconds.', { seconds })} + { + timerIdRef.current + ? t('The application will restart in X seconds.', { seconds }) + : t('Restart canceled') + } + diff --git a/src/components/IncidentTable/subcomponents/IncidentAlertsModal.jsx b/src/components/IncidentTable/subcomponents/IncidentAlertsModal.jsx index df982b7b..6eef50b5 100644 --- a/src/components/IncidentTable/subcomponents/IncidentAlertsModal.jsx +++ b/src/components/IncidentTable/subcomponents/IncidentAlertsModal.jsx @@ -257,8 +257,10 @@ const IncidentAlertsModal = () => { id="alerts-modal-checkbox-all" isChecked={selectedAlerts.length === alertsSortedDescendingDate.length} isIndeterminate={ - selectedAlerts.length > 0 - && selectedAlerts.length < alertsSortedDescendingDate.length + ( + selectedAlerts.length > 0 + && selectedAlerts.length < alertsSortedDescendingDate.length + ) ? 'true' : null } onChange={(e) => { if (e.target.checked) { diff --git a/src/components/IncidentTable/subcomponents/PersonInitialsComponents.jsx b/src/components/IncidentTable/subcomponents/PersonInitialsComponents.jsx index 58d5c5ec..5aa8169a 100644 --- a/src/components/IncidentTable/subcomponents/PersonInitialsComponents.jsx +++ b/src/components/IncidentTable/subcomponents/PersonInitialsComponents.jsx @@ -29,6 +29,7 @@ import { import { throttledPdAxiosRequest, } from 'src/util/pd-api-wrapper'; +import RealUserMonitoring from 'src/config/monitoring'; const PersonInitialsComponent = ({ displayedUsers, @@ -67,15 +68,31 @@ const PersonInitialsComponent = ({ color: user.color?.replace('-', '') || 'Loading...', }); const r = await throttledPdAxiosRequest('GET', `users/${user.id}`); - const fetchedUser = r.data.user; - addUserToUsersMap(fetchedUser); - retval = { - summary: fetchedUser.summary, - id: user.id, - html_url: fetchedUser.html_url, - email: fetchedUser.email, - color: fetchedUser.color.replace('-', ''), - }; + const fetchedUser = r?.data?.user; + if (fetchedUser) { + addUserToUsersMap(fetchedUser); + retval = { + summary: fetchedUser.summary, + id: user.id, + html_url: fetchedUser.html_url, + email: fetchedUser.email, + color: fetchedUser.color.replace('-', ''), + }; + } else { + RealUserMonitoring.trackError(new Error('Error fetching user'), + { + user_id: user.id, + endpoint: `users/${user.id}`, + response: r, + }); + retval = { + summary: 'Error fetching user', + id: user.id, + html_url: 'Error fetching user', + email: 'Error fetching user', + color: 'black', + }; + } } if (CSS.supports && !CSS.supports('color', retval.color)) { retval.color = 'black'; diff --git a/src/components/MergeModal/MergeModalComponent.jsx b/src/components/MergeModal/MergeModalComponent.jsx index 8874d52f..d322e24b 100644 --- a/src/components/MergeModal/MergeModalComponent.jsx +++ b/src/components/MergeModal/MergeModalComponent.jsx @@ -260,7 +260,7 @@ const MergeModalComponent = () => { {status === MERGE_REQUESTED && ( <> { 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()]; diff --git a/src/redux/incidents/sagas.js b/src/redux/incidents/sagas.js index 2a111fda..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] diff --git a/src/redux/log_entries/sagas.js b/src/redux/log_entries/sagas.js index 7aad15e2..5125af1f 100644 --- a/src/redux/log_entries/sagas.js +++ b/src/redux/log_entries/sagas.js @@ -82,9 +82,13 @@ export function* getLogEntries(action) { 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, diff --git a/src/redux/log_entries/sagas.test.js b/src/redux/log_entries/sagas.test.js index 0d9d5345..28a58aef 100644 --- a/src/redux/log_entries/sagas.test.js +++ b/src/redux/log_entries/sagas.test.js @@ -22,6 +22,7 @@ import { FETCH_LOG_ENTRIES_REQUESTED, FETCH_LOG_ENTRIES_COMPLETED, 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_ERROR); + expect(effects.put[2].payload.action.type).toEqual(FETCH_INCIDENTS_REQUESTED); })); }); diff --git a/src/redux/pd/actions.js b/src/redux/pd/actions.js deleted file mode 100644 index 139056ab..00000000 --- a/src/redux/pd/actions.js +++ /dev/null @@ -1,20 +0,0 @@ -export const PD_API_SET_AUTH = 'PD_API_SET_AUTH'; - -export const PD_API_CALL_REQUESTED = 'PD_API_CALL_REQUESTED'; -export const PD_API_CALL_COMPLETED = 'PD_API_CALL_COMPLETED'; -export const PD_API_CALL_ERROR = 'PD_API_CALL_ERROR'; - -export const pdApiSetAuth = (accessToken, refreshToken, expiresAt) => ({ - type: PD_API_SET_AUTH, - accessToken, - refreshToken, - expiresAt, -}); - -export const pdApiCall = (method, endpoint, params = {}, data = {}) => ({ - type: PD_API_CALL_REQUESTED, - method, - endpoint, - params, - data, -}); diff --git a/src/redux/pd/reducers.js b/src/redux/pd/reducers.js deleted file mode 100644 index 65da34eb..00000000 --- a/src/redux/pd/reducers.js +++ /dev/null @@ -1,47 +0,0 @@ -import { - produce, -} from 'immer'; - -import { - PD_API_SET_AUTH, - PD_API_CALL_REQUESTED, - PD_API_CALL_COMPLETED, - PD_API_CALL_ERROR, -} from './actions'; - -const pd = produce( - (draft, action) => { - switch (action.type) { - case PD_API_SET_AUTH: - draft.accessToken = action.accessToken; - draft.refreshToken = action.refreshToken; - draft.expiresAt = action.expiresAt; - break; - - case PD_API_CALL_REQUESTED: - draft.status = PD_API_CALL_REQUESTED; - break; - - case PD_API_CALL_COMPLETED: - draft.status = PD_API_CALL_COMPLETED; - break; - - case PD_API_CALL_ERROR: - draft.status = PD_API_CALL_ERROR; - draft.errors.push(action.error); - break; - - default: - break; - } - }, - { - accessToken: null, - refreshToken: null, - expiresAt: null, - status: '', - errors: [], - }, -); - -export default pd; diff --git a/src/redux/pd/sagas.js b/src/redux/pd/sagas.js deleted file mode 100644 index f4484b06..00000000 --- a/src/redux/pd/sagas.js +++ /dev/null @@ -1,26 +0,0 @@ -import { - put, - takeLatest, -} from 'redux-saga/effects'; - -import { - PD_API_CALL_REQUESTED, - PD_API_CALL_COMPLETED, - PD_API_CALL_ERROR, -} from './actions'; - -export function* pdApiCallAsync() { - yield takeLatest(PD_API_CALL_REQUESTED, pdApiCall); -} - -export function* pdApiCall(action) { - try { - console.log('pdApiCall', action); - yield put({ - type: PD_API_CALL_COMPLETED, - response: {}, - }); - } catch (e) { - yield put({ type: PD_API_CALL_ERROR, message: e.message }); - } -} diff --git a/src/redux/rootSaga.js b/src/redux/rootSaga.js index d0c11bf0..629370c5 100644 --- a/src/redux/rootSaga.js +++ b/src/redux/rootSaga.js @@ -274,7 +274,7 @@ export default function* rootSaga() { } catch (e) { RealUserMonitoring.trackError(e); // eslint-disable-next-line no-console - console.log('Error in rootSaga:', e); + console.error('Error in rootSaga:', e); yield put({ type: CATASTROPHE, connectionStatusMessage: e.message, diff --git a/src/util/pd-api-wrapper.js b/src/util/pd-api-wrapper.js index 48050322..69381c4c 100644 --- a/src/util/pd-api-wrapper.js +++ b/src/util/pd-api-wrapper.js @@ -107,7 +107,7 @@ let watchdogTimeout; limiter.on('depleted', () => { // eslint-disable-next-line no-console console.error('Limiter queue depleted, setting watchdog timeout'); - RealUserMonitoring.trackError('LimiterDepleted', { + RealUserMonitoring.trackError(new Error('LimiterDepleted'), { reservoir: 0, currentLimit, }); @@ -121,7 +121,7 @@ limiter.on('depleted', () => { console.error( 'Watchdog timeout, queue is still depleted after 10 seconds; resetting limiter', ); - RealUserMonitoring.trackError('LimiterWatchdogTimeout', { + RealUserMonitoring.trackError(new Error('LimiterWatchdogTimeout'), { reservoir, currentLimit, }); @@ -131,6 +131,37 @@ limiter.on('depleted', () => { }, 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 */ @@ -144,7 +175,7 @@ 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)}`; @@ -160,7 +191,23 @@ export const throttledPdAxiosRequest = ( 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(); @@ -207,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}` @@ -222,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; @@ -236,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); @@ -247,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/vite.config.js b/vite.config.js index b137446e..1dfa1df9 100644 --- a/vite.config.js +++ b/vite.config.js @@ -29,6 +29,7 @@ export default defineConfig(() => ({ }, build: { outDir: 'build', + sourcemap: true, }, resolve: { alias: { diff --git a/yarn.lock b/yarn.lock index a5747873..518b423e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,6 +25,692 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-cloudwatch-logs@^3.537.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.549.0.tgz#91051149aaeb869113764600289446164ed4ad65" + integrity sha512-LAB4MWkx41wF+IImj4nucMmgAkGFD51sR5JkXsUoB5leLo0Oz84ZEFZ8RfqshF6ReoW5lmSRyB8x1663KdRcLA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/eventstream-serde-browser" "^2.2.0" + "@smithy/eventstream-serde-config-resolver" "^2.2.0" + "@smithy/eventstream-serde-node" "^2.2.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + uuid "^9.0.1" + +"@aws-sdk/client-cognito-identity@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.549.0.tgz#9bdcdd9189569129e9db796b6e1cac27f251d5f9" + integrity sha512-KrmjksANuWZTLx8JGtHXsHJ8bA72DoH5rMXhAUQSeSwGYlJKQWeBN9um4XtOOP6fMO9FtEorsG9cxJRk92M7Yw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-iam@^3.535.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.549.0.tgz#91225ce31611d810f54f976035b89320e8f4c205" + integrity sha512-jjsnjjKOBKvVi/oJ4w9i4IJByYjNk7W4YvpCXzNkB5ospUuG6oiQjcKhOU9mjagpAjgrWpcNTddBcPGmNDV+JA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + "@smithy/util-waiter" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-lambda@^3.536.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.549.0.tgz#19250fa69b4aff359e7f3cb33090909d931640e1" + integrity sha512-VdLltPf6fUDBFHPJBtYsWnM+nvdau7KuRlwwGnYzmYap79ifE538JTXE6AGyGcIp3YP44BlFtWgvW26kvDbX9g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/eventstream-serde-browser" "^2.2.0" + "@smithy/eventstream-serde-config-resolver" "^2.2.0" + "@smithy/eventstream-serde-node" "^2.2.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-stream" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + "@smithy/util-waiter" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-sfn@^3.535.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sfn/-/client-sfn-3.549.0.tgz#d491b01db86a70c346ab72b5871bbb1bd65cecbc" + integrity sha512-B/oOBedp51wY6bbw8pSZJeTCWbzvc9OAgLm+mTgZk0xHq3o24hEjtH+b6BcwCS24UtiYDRRWkUwWj8rITv2FuQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + uuid "^9.0.1" + +"@aws-sdk/client-sso-oidc@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.549.0.tgz#1a0f4ea4d5d34d2bccea5f0f4db27231f9c299a7" + integrity sha512-FbB4A78ILAb8sM4TfBd+3CrQcfZIhe0gtVZNbaxpq5cJZh1K7oZ8vPfKw4do9JWkDUXPLsD9Bwz12f8/JpAb6Q== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.549.0.tgz#fa493de7366946971dc82bd07c181f23d4cb6be9" + integrity sha512-lz+yflOAj5Q263FlCsKpNqttaCb2NPh8jC76gVCqCt7TPxRDBYVaqg0OZYluDaETIDNJi4DwN2Azcck7ilwuPw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.549.0.tgz#d8b6034c80f190dded7add83e99d2da209b61699" + integrity sha512-63IreJ598Dzvpb+6sy81KfIX5iQxnrWSEtlyeCdC2GO6gmSQVwJzc9kr5pAC83lHmlZcm/Q3KZr3XBhRQqP0og== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.549.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.1" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.0" + "@smithy/middleware-retry" "^2.3.0" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.0" + "@smithy/util-defaults-mode-node" "^2.3.0" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.549.0", "@aws-sdk/core@^3.535.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.549.0.tgz#1c40b7abbea37479db5e5ac39957f26f0a7e2119" + integrity sha512-jC61OxJn72r/BbuDRCcluiw05Xw9eVLG0CwxQpF3RocxfxyZqlrGYaGecZ8Wy+7g/3sqGRC/Ar5eUhU1YcLx7w== + dependencies: + "@smithy/core" "^1.4.1" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.2.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-cognito-identity@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.549.0.tgz#d87382911b70f460232baed86a4b53e2970f1fa2" + integrity sha512-EADYw4JimdZ3mGhxtAXSdARNunw/4T7Vd82vvsvqavqL3S9jt5+2SrZ2/PYrweJHLRFggMHcBs82FRql1efMaA== + dependencies: + "@aws-sdk/client-cognito-identity" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf" + integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz#0a42f6b1a61d927bbce9f4afd25112f486bd05da" + integrity sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.549.0", "@aws-sdk/credential-provider-ini@^3.535.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.549.0.tgz#261654741e1c75f2adf888e06a443aa60ec32bad" + integrity sha512-k6IIrluZjQpzui5Din8fW3bFFhHaJ64XrsfYx0Ks1mb7xan84dJxmYP3tdDDmLzUeJv5h95ag88taHfjY9rakA== + dependencies: + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/credential-provider-env" "3.535.0" + "@aws-sdk/credential-provider-process" "3.535.0" + "@aws-sdk/credential-provider-sso" "3.549.0" + "@aws-sdk/credential-provider-web-identity" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.549.0.tgz#765b3d00b3771ff35f0aa333c3c3891eff22afb6" + integrity sha512-f3YgalsMuywEAVX4AUm9tojqrBdfpAac0+D320ePzas0Ntbp7ItYu9ceKIhgfzXO3No7P3QK0rCrOxL+ABTn8Q== + dependencies: + "@aws-sdk/credential-provider-env" "3.535.0" + "@aws-sdk/credential-provider-http" "3.535.0" + "@aws-sdk/credential-provider-ini" "3.549.0" + "@aws-sdk/credential-provider-process" "3.535.0" + "@aws-sdk/credential-provider-sso" "3.549.0" + "@aws-sdk/credential-provider-web-identity" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659" + integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.549.0.tgz#1aa9f148715230233cb130afd8af3fea0b8947c7" + integrity sha512-BGopRKHs7W8zkoH8qmSHrjudj263kXbhVkAUPxVUz0I28+CZNBgJC/RfVCbOpzmysIQEpwSqvOv1y0k+DQzIJQ== + dependencies: + "@aws-sdk/client-sso" "3.549.0" + "@aws-sdk/token-providers" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.549.0.tgz#5c11204dd00a3d0dfbeb0392a22e429251685826" + integrity sha512-QzclVXPxuwSI7515l34sdvliVq5leroO8P7RQFKRgfyQKO45o1psghierwG3PgV6jlMiv78FIAGJBr/n4qZ7YA== + dependencies: + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-providers@^3.535.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.549.0.tgz#26e7279ea18b84bf6f96462cdcd82d0b6556fa93" + integrity sha512-icbw8zCX2eSGPGBZLD6HKSgUMnpL95KzUikr94sVN81UuP1EnueaWj6gnErqP2Dr05ZEF9wMZxwd91qu8kVTNw== + dependencies: + "@aws-sdk/client-cognito-identity" "3.549.0" + "@aws-sdk/client-sso" "3.549.0" + "@aws-sdk/client-sts" "3.549.0" + "@aws-sdk/credential-provider-cognito-identity" "3.549.0" + "@aws-sdk/credential-provider-env" "3.535.0" + "@aws-sdk/credential-provider-http" "3.535.0" + "@aws-sdk/credential-provider-ini" "3.549.0" + "@aws-sdk/credential-provider-node" "3.549.0" + "@aws-sdk/credential-provider-process" "3.535.0" + "@aws-sdk/credential-provider-sso" "3.549.0" + "@aws-sdk/credential-provider-web-identity" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db" + integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee" + integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d" + integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.540.0": + version "3.540.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d" + integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ== + dependencies: + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec" + integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.549.0": + version "3.549.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.549.0.tgz#0e4aa04d6d50d633c34c78bbed62e3924bc10103" + integrity sha512-rJyeXkXknLukRFGuMQOgKnPBa+kLODJtOqEBf929SpQ96f1I6ytdndmWbB5B/OQN5Fu5DOOQUQqJypDQVl5ibQ== + dependencies: + "@aws-sdk/client-sso-oidc" "3.549.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.535.0", "@aws-sdk/types@^3.222.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04" + integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.540.0": + version "3.540.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8" + integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + "@smithy/util-endpoints" "^1.2.0" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7" + integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f" + integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b" + integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + "@babel/cli@^7.21.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.5.tgz#eb323bd69f50297792c2b7c205a97306a305d703" @@ -2354,6 +3040,58 @@ "@datadog/browser-core" "5.14.0" "@datadog/browser-rum-core" "5.14.0" +"@datadog/datadog-ci@^2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@datadog/datadog-ci/-/datadog-ci-2.33.0.tgz#e672e2ee286bceac62ffea230250b3edc1c9a724" + integrity sha512-WTyOH7PIDOkXOZez0pKVN1l/z5/+AmxquWK5OZl4YLvPz7aXw8NBguBn+96x1NdjbHJYz/viiBvBCaE25V7dIQ== + 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" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" @@ -2837,6 +3575,85 @@ dependencies: prop-types "^15.8.1" +"@google-cloud/common@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-5.0.1.tgz#762e598b0ef61e28d20e5b627141125ef73df957" + integrity sha512-7NBC5vD0au75nkctVs2vEGpdUPFs1BaHTMpeI+RVEgQSMe5/wEU6dx9p0fmZA0bj4HgdpobMKeegOcLUiEoxng== + dependencies: + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" + arrify "^2.0.1" + duplexify "^4.1.1" + ent "^2.2.0" + extend "^3.0.2" + google-auth-library "^9.0.0" + retry-request "^7.0.0" + teeny-request "^9.0.0" + +"@google-cloud/logging@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/logging/-/logging-11.0.0.tgz#f5a408d411ccdaac6d2738ef4cb4046cc2bcff86" + integrity sha512-uQeReiVICoV5yt9J/cczNxHxqzTkLLG7yGHXCMAk/wQNVZGevT4Bi7CBWpt0aXxm044a76Aj6V08cCAlBj7UZw== + 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.0" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.0.tgz#b8cc62f151685095d11467402cbf417c41bf14e6" + integrity sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w== + 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.1.0" + resolved "https://registry.yarnpkg.com/@google-cloud/run/-/run-1.1.0.tgz#d416d76c3ee41fe6b36cded8ae524b57bd86facc" + integrity sha512-87RiYnU6jCf/3OXkME9Wiz7YgxkQ2SvEJE2WcsGSoGeoYDbM2xgcn4TfmA+Mwdu//Jbi9sMMzbcnU8Ny8qa5kw== + dependencies: + google-gax "^4.0.3" + +"@grpc/grpc-js@~1.10.0": + version "1.10.6" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.6.tgz#1e3eb1af911dc888fbef7452f56a7573b8284d54" + integrity sha512-xP58G7wDQ4TCmN/cMUHh00DS7SRDv/+lC+xFLrTkMIN8h55X5NhZMLYbvy7dSELP15qlI6hPhNCRWVMtZMwqLA== + dependencies: + "@grpc/proto-loader" "^0.7.10" + "@js-sdsl/ordered-map" "^4.4.2" + +"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.10": + version "0.7.12" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911" + integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + 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" @@ -3194,6 +4011,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" @@ -3299,6 +4133,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" @@ -3445,6 +4332,427 @@ dependencies: "@sinonjs/commons" "^3.0.0" +"@smithy/abort-controller@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" + integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/config-resolver@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" + integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/core@^1.4.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.2.tgz#1c3ed886d403041ce5bd2d816448420c57baa19c" + integrity sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" + integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4" + integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.12.0" + "@smithy/util-hex-encoding" "^2.2.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz#69c93cc0210f04caeb0770856ef88c9a82564e11" + integrity sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw== + dependencies: + "@smithy/eventstream-serde-universal" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz#23c8698ce594a128bcc556153efb7fecf6d04f87" + integrity sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz#b82870a838b1bd32ad6e0cf33a520191a325508e" + integrity sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz#a75e330040d5e2ca2ac0d8bccde3e390ac5afd38" + integrity sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA== + dependencies: + "@smithy/eventstream-codec" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" + integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + tslib "^2.6.2" + +"@smithy/hash-node@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" + integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" + integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== + dependencies: + "@smithy/types" "^2.12.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/middleware-content-length@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" + integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^2.5.0", "@smithy/middleware-endpoint@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" + integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== + dependencies: + "@smithy/middleware-serde" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/middleware-retry@^2.3.0", "@smithy/middleware-retry@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" + integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/service-error-classification" "^2.1.5" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + tslib "^2.6.2" + uuid "^9.0.1" + +"@smithy/middleware-serde@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" + integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" + integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" + integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" + integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/property-provider@^2.0.12", "@smithy/property-provider@^2.2.0": + 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/protocol-http@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" + integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" + integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-uri-escape" "^2.2.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" + integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== + dependencies: + "@smithy/types" "^2.12.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/shared-ini-file-loader@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" + integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.2.1.tgz#9b32571e9785c8f69aa4115517bf2a784f690c4d" + integrity sha512-j5fHgL1iqKTsKJ1mTcw88p0RUcidDu95AWSeZTgiYJb+QcfwWU/UpBnaqiB59FNH5MiAZuSbOBnZlwzeeY2tIw== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-uri-escape" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^2.5.0", "@smithy/smithy-client@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" + integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + 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/url-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" + integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== + dependencies: + "@smithy/querystring-parser" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-base64@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" + integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c" + integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f" + integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw== + 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-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" + integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" + integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^2.3.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" + integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== + dependencies: + "@smithy/config-resolver" "^2.2.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" + integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" + integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" + integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-retry@^2.0.4", "@smithy/util-retry@^2.2.0": + 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-stream@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" + integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== + dependencies: + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" + integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.3.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-waiter@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.2.0.tgz#d11baf50637bfaadb9641d6ca1619da413dd2612" + integrity sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@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" @@ -3589,6 +4897,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" @@ -3627,6 +4940,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" @@ -3740,6 +5063,11 @@ 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" @@ -3752,6 +5080,13 @@ dependencies: undici-types "~5.26.4" +"@types/node@>=13.7.0": + version "20.12.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.6.tgz#72d068870518d7da1d97b49db401e2d6a1805294" + integrity sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ== + dependencies: + undici-types "~5.26.4" + "@types/node@^18.17.5": version "18.18.10" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.10.tgz#4971bffdf3a43977c4c8166aa714b2c0b05b3256" @@ -3792,6 +5127,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" @@ -4057,6 +5407,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" @@ -4097,6 +5454,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" @@ -4105,6 +5469,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" @@ -4115,6 +5486,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.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -4313,12 +5694,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== @@ -4335,11 +5716,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" @@ -4391,6 +5786,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.6.8" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" + integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== + 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" @@ -4560,7 +5964,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== @@ -4586,18 +5990,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" @@ -4637,6 +6060,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" @@ -4728,12 +6156,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== @@ -4749,6 +6182,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" @@ -4828,7 +6266,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== @@ -4856,14 +6302,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" @@ -4874,6 +6312,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" @@ -4946,6 +6389,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" @@ -4963,6 +6411,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" @@ -4977,6 +6437,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" @@ -5163,6 +6628,14 @@ cosmiconfig@^8.1.3: parse-json "^5.0.0" path-type "^4.0.0" +cpu-features@~0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" + integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== + dependencies: + buildcheck "~0.0.6" + nan "^2.17.0" + create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -5343,6 +6816,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" @@ -5352,6 +6830,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" @@ -5369,6 +6855,13 @@ 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@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.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" @@ -5424,16 +6917,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" @@ -5460,6 +6970,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" @@ -5525,6 +7044,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" @@ -5575,11 +7105,28 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.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" @@ -5598,6 +7145,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" @@ -5628,7 +7187,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== @@ -5647,6 +7206,11 @@ ensure-posix-path@^1.1.0: resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== +ent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + entities@^4.2.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -5885,7 +7449,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== @@ -6335,11 +7899,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" @@ -6400,11 +7976,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" @@ -6462,6 +8047,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.3.6" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz#190f9d99097f0c8f2d3a0e681a10404afca052ff" + integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw== + 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" @@ -6483,7 +8087,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== @@ -6605,7 +8209,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== @@ -6635,7 +8239,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== @@ -6644,6 +8248,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" @@ -6678,6 +8291,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" @@ -6787,6 +8409,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.4.0" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.4.0.tgz#08a42cb44d5123a72efaaf9f786c266e7f18be70" + integrity sha512-apAloYrY4dlBGlhauDAYSZveafb5U6+L9titing1wox6BvWM0TSXBp603zTrLpyLMGkrcFgohnUN150dFN/zOA== + 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" @@ -6869,6 +8533,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" @@ -6924,6 +8598,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" @@ -6996,6 +8682,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.7.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.7.0.tgz#dd99a08e2e3f70778de8be4ed8556460e237550a" + integrity sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A== + 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.2" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.2.tgz#417cbee97f2e68d78f641af19c0f15234c0dbd9c" + integrity sha512-2mw7qgei2LPdtGrmd1zvxQviOcduTnsvAWYzCxhOWXK4IQKmQztHnDQwD0ApB690fBQJemFKSU7DnceAy3RLzw== + dependencies: + "@grpc/grpc-js" "~1.10.0" + "@grpc/proto-loader" "^0.7.0" + "@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.2.6" + 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" @@ -7018,6 +8756,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" @@ -7160,6 +8915,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" @@ -7169,7 +8932,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== @@ -7177,6 +8940,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" @@ -7231,6 +9002,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" @@ -7253,6 +9031,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" @@ -7307,6 +9090,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" @@ -7323,6 +9143,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" @@ -7449,6 +9277,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" @@ -7476,6 +9309,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" @@ -8139,6 +9977,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" @@ -8154,6 +10000,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" @@ -8201,6 +10052,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" @@ -8211,6 +10069,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" @@ -8279,6 +10142,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" @@ -8324,6 +10214,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" @@ -8384,6 +10281,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" @@ -8424,12 +10326,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== @@ -8460,6 +10362,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" @@ -8489,6 +10396,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" @@ -8610,7 +10522,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== @@ -8657,6 +10569,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.17.0, nan@^2.18.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" @@ -8672,6 +10594,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" @@ -8686,6 +10613,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" @@ -8737,6 +10676,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" @@ -8815,6 +10759,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" @@ -8841,6 +10792,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" @@ -8900,6 +10871,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" @@ -9180,6 +11178,45 @@ 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.1" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz#da0b510f6d6e584b1b5c271f045c26728abe71e0" + integrity sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA== + dependencies: + protobufjs "^7.2.5" + +protobufjs@7.2.6, protobufjs@^7.2.4, protobufjs@^7.2.5: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + 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" @@ -9208,6 +11245,15 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.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, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -9254,6 +11300,16 @@ quick-temp@^0.1.8: rimraf "^2.5.4" underscore.string "~3.3.4" +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.9.1: version "2.9.1" resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.9.1.tgz#c1ab48ae2b2cfe6d5ac957c2042eb36fcafdb1d2" @@ -9514,7 +11570,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== @@ -9681,6 +11737,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" @@ -9755,6 +11816,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" @@ -9803,6 +11878,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" @@ -9810,7 +11890,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== @@ -9851,7 +11938,7 @@ 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== @@ -9865,6 +11952,11 @@ sass@^1.66.1: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +sax@>=0.6.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + saxes@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" @@ -9915,6 +12007,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" @@ -9963,6 +12060,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" @@ -9996,6 +12102,28 @@ 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== + +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.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" + integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + 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" @@ -10036,11 +12164,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" @@ -10077,6 +12245,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" @@ -10266,6 +12451,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" @@ -10273,6 +12463,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" @@ -10320,7 +12520,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== @@ -10334,6 +12534,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" @@ -10374,6 +12582,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" @@ -10381,6 +12600,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" @@ -10408,16 +12635,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" @@ -10503,7 +12742,7 @@ 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.11.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== @@ -10513,6 +12752,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.0.1, tslib@^2.3.1, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -10532,6 +12776,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" @@ -10774,11 +13023,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" @@ -10960,6 +13214,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" @@ -11088,7 +13349,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== @@ -11119,6 +13380,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" @@ -11129,6 +13395,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" @@ -11164,6 +13443,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" From 1b9d9e50ea41eb551151e6c03d40be92e5e488b2 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Mon, 29 Apr 2024 13:23:40 -0400 Subject: [PATCH 07/28] locales --- src/locales/de/translation.json | 6 +++++- src/locales/en/translation.json | 6 +++++- src/locales/es/translation.json | 6 +++++- src/locales/fr/translation.json | 6 +++++- src/locales/id/translation.json | 8 ++++++-- src/locales/ja/translation.json | 6 +++++- src/locales/pt-br/translation.json | 6 +++++- src/locales/pt/translation.json | 6 +++++- 8 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index 81a715e6..d29f676b 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -58,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", @@ -158,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", @@ -169,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", @@ -214,8 +218,8 @@ "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", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 4793d172..653c7800 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -58,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", @@ -158,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", @@ -169,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", @@ -214,8 +218,8 @@ "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", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index 0815a42b..2dabdb53 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -58,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)", @@ -160,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", @@ -171,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", @@ -216,8 +220,8 @@ "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", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index 06b1da24..27e600a2 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -58,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)", @@ -160,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", @@ -171,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", @@ -216,8 +220,8 @@ "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é", diff --git a/src/locales/id/translation.json b/src/locales/id/translation.json index d6e682ea..cdce0017 100644 --- a/src/locales/id/translation.json +++ b/src/locales/id/translation.json @@ -58,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", @@ -156,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", @@ -167,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", @@ -212,9 +216,9 @@ "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", diff --git a/src/locales/ja/translation.json b/src/locales/ja/translation.json index f29fea17..96913c19 100644 --- a/src/locales/ja/translation.json +++ b/src/locales/ja/translation.json @@ -58,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", @@ -156,7 +157,9 @@ "Reassign": "再アサイン", "Reassign To": "再アサイン先", "Reassigning": "再アサイン中", + "Reauthorize": "再認証", "Refresh Incidents": "インシデントを更新", + "Refresh OAuth Token": "OAuthトークンをリフレッシュ", "Refreshing": "リフレッシュ中", "Relative Dates": "相対日付", "Requested additional response for": "追加対応を依頼対象", @@ -167,6 +170,7 @@ "Responders": "レスポンダー", "response play for": "レスポンスプレイ対象", "Response Plays": "レスポンスプレイ", + "Restart canceled": "再起動がキャンセルされました", "Run Action": "アクションを実行", "running": "実行中", "Running custom action": "カスタムアクションを実行中", @@ -212,8 +216,8 @@ "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": "優先度を更新する", diff --git a/src/locales/pt-br/translation.json b/src/locales/pt-br/translation.json index 0e46ac5b..0c5d9bee 100644 --- a/src/locales/pt-br/translation.json +++ b/src/locales/pt-br/translation.json @@ -58,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)", @@ -160,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", @@ -171,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", @@ -216,8 +220,8 @@ "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", diff --git a/src/locales/pt/translation.json b/src/locales/pt/translation.json index 16d8269b..3797a4da 100644 --- a/src/locales/pt/translation.json +++ b/src/locales/pt/translation.json @@ -58,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)", @@ -160,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", @@ -171,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", @@ -216,8 +220,8 @@ "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", From f5f3129b73a6f716461c2b317dcb77e9aa9d0c20 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Mon, 29 Apr 2024 13:25:43 -0400 Subject: [PATCH 08/28] fix jest --- src/redux/log_entries/sagas.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/redux/log_entries/sagas.test.js b/src/redux/log_entries/sagas.test.js index 28a58aef..af2f2eb2 100644 --- a/src/redux/log_entries/sagas.test.js +++ b/src/redux/log_entries/sagas.test.js @@ -21,7 +21,7 @@ import { import { FETCH_LOG_ENTRIES_REQUESTED, FETCH_LOG_ENTRIES_COMPLETED, - FETCH_LOG_ENTRIES_ERROR, + // FETCH_LOG_ENTRIES_ERROR, UPDATE_LOG_ENTRIES_POLLING, } from './actions'; @@ -89,7 +89,7 @@ describe('Sagas: Log Entries', () => { expect(effects.call).toHaveLength(1); 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_ERROR); + expect(effects.put[1].payload.action.type).toEqual(FETCH_LOG_ENTRIES_COMPLETED); expect(effects.put[2].payload.action.type).toEqual(FETCH_INCIDENTS_REQUESTED); })); }); From 7dc7232266f20dedfd87d8accf0b14ef62a77cf3 Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Wed, 22 May 2024 14:07:22 +0100 Subject: [PATCH 09/28] Read the release version from package.json version field Signed-off-by: Gavin Reynolds --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f3df802d..ad820530 100644 --- a/package.json +++ b/package.json @@ -63,7 +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=0.12.2-beta.0 --project-path=./ --minified-path-prefix=/pd-live-react/", + "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", From 14f2d93e9b23e304903c28e000744d0d47b90244 Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Wed, 22 May 2024 15:42:53 +0100 Subject: [PATCH 10/28] Add e2e test to force the catastrophe modal to render Signed-off-by: Gavin Reynolds --- cypress/e2e/app.spec.js | 10 ++++++++++ 1 file changed, 10 insertions(+) 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'); + }); }); From 2fbe85cd49a2c46c290efa326ed3591325a9201a Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Wed, 22 May 2024 16:05:32 +0100 Subject: [PATCH 11/28] Increase countdown to restart to 30 seconds to avoid looping too quickly if a consistent error Signed-off-by: Gavin Reynolds --- src/components/CatastropheModal/CatastropheModal.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/CatastropheModal/CatastropheModal.jsx b/src/components/CatastropheModal/CatastropheModal.jsx index 75f9c1be..130a9115 100644 --- a/src/components/CatastropheModal/CatastropheModal.jsx +++ b/src/components/CatastropheModal/CatastropheModal.jsx @@ -33,7 +33,7 @@ import { const CatastropheOverlay = ({ errorMessage, - countdownSeconds = 10, + countdownSeconds = 30, }) => { const { t, From 702ef33c2302c8e64601ce085e31f30bb61fd93c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 13:14:11 +0000 Subject: [PATCH 12/28] Bump react-redux from 8.1.2 to 9.1.2 Bumps [react-redux](https://github.com/reduxjs/react-redux) from 8.1.2 to 9.1.2. - [Release notes](https://github.com/reduxjs/react-redux/releases) - [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md) - [Commits](https://github.com/reduxjs/react-redux/compare/v8.1.2...v9.1.2) --- updated-dependencies: - dependency-name: react-redux dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 75 +++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 54 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 0f4fd810..8ea668b2 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "react-i18next": "^13.2.0", "react-icons": "^4.9.0", "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", diff --git a/yarn.lock b/yarn.lock index 01912385..21733b4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2069,7 +2069,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== @@ -4115,7 +4115,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== @@ -4983,14 +4983,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" @@ -8865,7 +8857,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== @@ -11096,6 +11088,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" @@ -11465,16 +11475,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: @@ -12291,7 +12297,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== @@ -12403,7 +12418,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== @@ -12417,6 +12432,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" @@ -13340,7 +13362,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== @@ -13358,6 +13380,15 @@ wrap-ansi@^6.0.1, 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" From 8ee2c953b72ec3245cc3949231cbf342c4080e30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 13:14:40 +0000 Subject: [PATCH 13/28] Bump react-bootstrap from 2.9.1 to 2.10.2 Bumps [react-bootstrap](https://github.com/react-bootstrap/react-bootstrap) from 2.9.1 to 2.10.2. - [Release notes](https://github.com/react-bootstrap/react-bootstrap/releases) - [Changelog](https://github.com/react-bootstrap/react-bootstrap/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-bootstrap/react-bootstrap/compare/v2.9.1...v2.10.2) --- updated-dependencies: - dependency-name: react-bootstrap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 69 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 57 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 0f4fd810..2db1124b 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "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", diff --git a/yarn.lock b/yarn.lock index 01912385..71fd8bd6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4115,7 +4115,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== @@ -4259,10 +4259,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" @@ -11096,6 +11096,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" @@ -11310,14 +11328,14 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -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== +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" @@ -12291,7 +12309,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== @@ -12403,7 +12430,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== @@ -12417,6 +12444,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" @@ -13340,7 +13374,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== @@ -13358,6 +13392,15 @@ wrap-ansi@^6.0.1, 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" From 84f318e7982e255cb3f5fdda5e78f6e34387d825 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 13:29:41 +0000 Subject: [PATCH 14/28] Bump react-icons from 4.10.1 to 5.2.1 Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.10.1 to 5.2.1. - [Release notes](https://github.com/react-icons/react-icons/releases) - [Commits](https://github.com/react-icons/react-icons/compare/v4.10.1...v5.2.1) --- updated-dependencies: - dependency-name: react-icons dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 59 +++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 0f4fd810..6af4f519 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "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-select": "^5.7.7", diff --git a/yarn.lock b/yarn.lock index 01912385..c46ea886 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4115,7 +4115,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== @@ -11096,6 +11096,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" @@ -11420,10 +11438,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" @@ -12291,7 +12309,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== @@ -12403,7 +12430,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== @@ -12417,6 +12444,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" @@ -13340,7 +13374,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== @@ -13358,6 +13392,15 @@ wrap-ansi@^6.0.1, 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" From 2f4c867f6df1a9c475bb04c7012bbaeccb7e9e46 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Wed, 5 Jun 2024 11:08:23 -0400 Subject: [PATCH 15/28] fix #441 --- src/config/column-generator.jsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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, From c35128ce14246f839fa52e18957584a970e2cda5 Mon Sep 17 00:00:00 2001 From: Martin Stone Date: Wed, 5 Jun 2024 20:59:44 -0400 Subject: [PATCH 16/28] add an indicator with a clear button when there are column filters; indicate when no incidents match filters; stop polling when too many incidents --- .../IncidentTable/IncidentTableComponent.jsx | 55 +++++++++------- .../QuerySettings/QuerySettingsComponent.jsx | 22 ++++++- .../ColumnFilterIndicatorComponent.jsx | 62 +++++++++++++++++++ src/redux/incident_table/actions.js | 7 +++ src/redux/incident_table/reducers.js | 14 +++++ src/redux/incident_table/sagas.js | 12 ++++ src/redux/incidents/reducers.js | 1 + src/redux/log_entries/sagas.js | 12 +++- src/redux/rootSaga.js | 2 + 9 files changed, 159 insertions(+), 28 deletions(-) create mode 100644 src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx diff --git a/src/components/IncidentTable/IncidentTableComponent.jsx b/src/components/IncidentTable/IncidentTableComponent.jsx index 6649d9cf..192f14fd 100644 --- a/src/components/IncidentTable/IncidentTableComponent.jsx +++ b/src/components/IncidentTable/IncidentTableComponent.jsx @@ -46,6 +46,7 @@ import { import { selectIncidentTableRows as selectIncidentTableRowsConnected, updateIncidentTableState as updateIncidentTableStateConnected, + CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED, } from 'src/redux/incident_table/actions'; import EmptyIncidentsComponent from './subcomponents/EmptyIncidentsComponent'; @@ -120,7 +121,7 @@ const doCsvExport = (tableData) => { const IncidentTableComponent = () => { const { - incidentTableState, incidentTableColumns, + incidentTableState, incidentTableColumns, status: incidentTableStatus, } = useSelector((state) => state.incidentTable); const { status: incidentActionsStatus, @@ -221,7 +222,8 @@ const IncidentTableComponent = () => { // Debouncing for table state const debouncedUpdateIncidentTableState = useDebouncedCallback((state, action) => { // Only update store with sorted and column resizing state - if (action.type === 'toggleSortBy' || action.type === 'columnDoneResizing') { + // and filter state + if (action.type === 'toggleSortBy' || action.type === 'columnDoneResizing' || action.type === 'setFilter') { updateIncidentTableState(state); } }, 100); @@ -251,7 +253,7 @@ const IncidentTableComponent = () => { // Set initial state from store initialState: incidentTableState, // Handle updates to table - stateReducer: (newState, action) => debouncedUpdateIncidentTableState(newState, action), + stateReducer: debouncedUpdateIncidentTableState, }, // Plugins useFilters, @@ -327,19 +329,17 @@ const IncidentTableComponent = () => { }, ); - // save filters when the user changes them - useEffect(() => { - updateIncidentTableState({ - ...incidentTableState, - filters: tableInstance.state.filters, - }); - }, [tableInstance.state.filters]); - // Update table filters when columns change useEffect(() => { tableInstance.setAllFilters(incidentTableState.filters); }, [columns]); + useEffect(() => { + if (incidentTableStatus === CLEAR_INCIDENT_TABLE_FILTERS_COMPLETED) { + tableInstance.setAllFilters(incidentTableState.filters); + } + }, [incidentTableStatus]); + const { getTableProps, getTableBodyProps, @@ -536,19 +536,26 @@ const IncidentTableComponent = () => { - - rows[index].id} - itemData={rows} - width={totalColumnsWidth + scrollBarSize} - > - {MyIncidentRow} - - + { rows.length > 0 && ( + + rows[index].id} + itemData={rows} + width={totalColumnsWidth + scrollBarSize} + > + {MyIncidentRow} + + + )} + { rows.length === 0 && ( + + )} setDisplayGetAllModal(false)} 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..437fa04f --- /dev/null +++ b/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx @@ -0,0 +1,62 @@ +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} + + + + ); +}; + +export default ColumnFilterIndicatorComponent; 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 edd6a2d2..4a6114bf 100644 --- a/src/redux/incidents/reducers.js +++ b/src/redux/incidents/reducers.js @@ -56,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/log_entries/sagas.js b/src/redux/log_entries/sagas.js index 5125af1f..089d9f12 100644 --- a/src/redux/log_entries/sagas.js +++ b/src/redux/log_entries/sagas.js @@ -169,9 +169,17 @@ export function* pollLogEntriesTask() { }, incidents: { fetchingIncidents, + error: incidentsError, }, } = yield select(); - if (userAuthorized && userAcceptedDisclaimer && !fetchingIncidents && !DEBUG_DISABLE_POLLING) { + + 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, @@ -199,7 +207,7 @@ export function* pollLogEntriesTask() { 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 }); + console.log('skipping poll', { userAuthorized, userAcceptedDisclaimer, fetchingIncidents, DEBUG_DISABLE_POLLING, tooManyIncidentsError }); yield delay(LOG_ENTRIES_POLLING_INTERVAL_SECONDS * 1000); } } diff --git a/src/redux/rootSaga.js b/src/redux/rootSaga.js index 629370c5..cc38aa32 100644 --- a/src/redux/rootSaga.js +++ b/src/redux/rootSaga.js @@ -48,6 +48,7 @@ import { updateIncidentTableColumns, updateIncidentTableState, selectIncidentTableRows, + clearIncidentTableFilters, } from './incident_table/sagas'; import { @@ -185,6 +186,7 @@ export default function* rootSaga() { updateIncidentTableColumns(), updateIncidentTableState(), selectIncidentTableRows(), + clearIncidentTableFilters(), // Incident Actions doAction(), From ffcabc3c2906b29d038ddee593f42c060639b64a Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Thu, 13 Jun 2024 10:48:00 +0100 Subject: [PATCH 17/28] Add e2e test for Column Filters returning no incidents and clear filters button Signed-off-by: Gavin Reynolds --- cypress/e2e/Search/search.spec.js | 8 ++++++++ .../subcomponents/ColumnFilterIndicatorComponent.jsx | 1 + 2 files changed, 9 insertions(+) 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/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx b/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx index 437fa04f..01cc8002 100644 --- a/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx +++ b/src/components/QuerySettings/subcomponents/ColumnFilterIndicatorComponent.jsx @@ -47,6 +47,7 @@ const ColumnFilterIndicatorComponent = () => { {filterCount} + ); + } + return ( 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, }; }) From bdc57cebe91dc8976420ec9f2b63d6ea573277f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:08:42 +0000 Subject: [PATCH 25/28] Bump vite-plugin-svgr from 3.2.0 to 4.2.0 Bumps [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) from 3.2.0 to 4.2.0. - [Release notes](https://github.com/pd4d10/vite-plugin-svgr/releases) - [Commits](https://github.com/pd4d10/vite-plugin-svgr/compare/v3.2.0...v4.2.0) --- updated-dependencies: - dependency-name: vite-plugin-svgr dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 176 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 105 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index 12a77557..f13645d0 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "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/yarn.lock b/yarn.lock index 32e22bec..a9850a01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4287,10 +4287,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" @@ -4758,86 +4758,87 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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@^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== +"@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": @@ -7102,6 +7103,14 @@ 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" @@ -10371,6 +10380,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" @@ -10603,6 +10619,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" @@ -12118,6 +12142,14 @@ smart-buffer@^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" @@ -13153,14 +13185,14 @@ 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.3: version "4.5.3" From ec098c0ccae1d3e5a52a27b490204f7289263965 Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Mon, 17 Jun 2024 10:19:41 +0100 Subject: [PATCH 26/28] svgs now export as default with react query - substitute the .svg?react extension for .svg Signed-off-by: Gavin Reynolds --- .../IncidentTable/subcomponents/EmptyIncidentsComponent.jsx | 4 +--- src/components/NavigationBar/NavigationBarComponent.jsx | 4 +--- vite.config.js | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/components/IncidentTable/subcomponents/EmptyIncidentsComponent.jsx b/src/components/IncidentTable/subcomponents/EmptyIncidentsComponent.jsx index a6f647b1..699e8cc4 100644 --- a/src/components/IncidentTable/subcomponents/EmptyIncidentsComponent.jsx +++ b/src/components/IncidentTable/subcomponents/EmptyIncidentsComponent.jsx @@ -7,9 +7,7 @@ import { useTranslation, } from 'react-i18next'; -import { - ReactComponent as EmptyIncidents, -} from 'src/assets/images/empty_incidents.svg'; +import EmptyIncidents from 'src/assets/images/empty_incidents.svg'; const EmptyIncidentsComponent = ({ message, 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/vite.config.js b/vite.config.js index 8b0f5f1e..7a16086a 100644 --- a/vite.config.js +++ b/vite.config.js @@ -50,7 +50,7 @@ export default defineConfig(() => ({ }), EnvironmentPlugin('all', { loadEnvFiles: true }), // svgr options: https://react-svgr.com/docs/options/ - svgr(), + svgr({ include: '**/*.svg' }), eslint(), fixAcceptHeader404(), ], From 687b2247cd0ac32e06c844ec05e0d513430b45e4 Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Mon, 17 Jun 2024 10:49:09 +0100 Subject: [PATCH 27/28] Publishing release v0.13.0-beta.0 Signed-off-by: Gavin Reynolds --- package.json | 2 +- src/config/version.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f13645d0..a69a675a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "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", 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'; From fd097b2509302e5bc878a5f07779dd1a3bbe0036 Mon Sep 17 00:00:00 2001 From: Gavin Reynolds Date: Mon, 17 Jun 2024 10:55:44 +0100 Subject: [PATCH 28/28] Upgrade datadog-ci due to Snyk warning on grpc-js Signed-off-by: Gavin Reynolds --- package.json | 2 +- yarn.lock | 1990 ++++++++++++++++++++++++++------------------------ 2 files changed, 1036 insertions(+), 956 deletions(-) diff --git a/package.json b/package.json index a69a675a..1b359cd1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.0", "@datadog/browser-rum": "^5.14.0", - "@datadog/datadog-ci": "^2.33.0", + "@datadog/datadog-ci": "^2.37.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index a9850a01..0aa27f8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,692 +25,683 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@aws-crypto/crc32@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" - integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== +"@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" "^3.0.0" + "@aws-crypto/util" "^5.2.0" "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" - -"@aws-crypto/ie11-detection@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" - integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== - dependencies: - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/sha256-browser@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" - integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== +"@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/ie11-detection" "^3.0.0" - "@aws-crypto/sha256-js" "^3.0.0" - "@aws-crypto/supports-web-crypto" "^3.0.0" - "@aws-crypto/util" "^3.0.0" + "@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" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" -"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" - integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== +"@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" "^3.0.0" + "@aws-crypto/util" "^5.2.0" "@aws-sdk/types" "^3.222.0" - tslib "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/supports-web-crypto@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" - integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== +"@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 "^1.11.1" + tslib "^2.6.2" -"@aws-crypto/util@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" - integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== +"@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" - "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" "@aws-sdk/client-cloudwatch-logs@^3.537.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.549.0.tgz#91051149aaeb869113764600289446164ed4ad65" - integrity sha512-LAB4MWkx41wF+IImj4nucMmgAkGFD51sR5JkXsUoB5leLo0Oz84ZEFZ8RfqshF6ReoW5lmSRyB8x1663KdRcLA== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/eventstream-serde-browser" "^2.2.0" - "@smithy/eventstream-serde-config-resolver" "^2.2.0" - "@smithy/eventstream-serde-node" "^2.2.0" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.549.0.tgz#9bdcdd9189569129e9db796b6e1cac27f251d5f9" - integrity sha512-KrmjksANuWZTLx8JGtHXsHJ8bA72DoH5rMXhAUQSeSwGYlJKQWeBN9um4XtOOP6fMO9FtEorsG9cxJRk92M7Yw== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" +"@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.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.549.0.tgz#91225ce31611d810f54f976035b89320e8f4c205" - integrity sha512-jjsnjjKOBKvVi/oJ4w9i4IJByYjNk7W4YvpCXzNkB5ospUuG6oiQjcKhOU9mjagpAjgrWpcNTddBcPGmNDV+JA== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" - "@smithy/util-waiter" "^2.2.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.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.549.0.tgz#19250fa69b4aff359e7f3cb33090909d931640e1" - integrity sha512-VdLltPf6fUDBFHPJBtYsWnM+nvdau7KuRlwwGnYzmYap79ifE538JTXE6AGyGcIp3YP44BlFtWgvW26kvDbX9g== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/eventstream-serde-browser" "^2.2.0" - "@smithy/eventstream-serde-config-resolver" "^2.2.0" - "@smithy/eventstream-serde-node" "^2.2.0" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-stream" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" - "@smithy/util-waiter" "^2.2.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.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sfn/-/client-sfn-3.549.0.tgz#d491b01db86a70c346ab72b5871bbb1bd65cecbc" - integrity sha512-B/oOBedp51wY6bbw8pSZJeTCWbzvc9OAgLm+mTgZk0xHq3o24hEjtH+b6BcwCS24UtiYDRRWkUwWj8rITv2FuQ== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.549.0.tgz#1a0f4ea4d5d34d2bccea5f0f4db27231f9c299a7" - integrity sha512-FbB4A78ILAb8sM4TfBd+3CrQcfZIhe0gtVZNbaxpq5cJZh1K7oZ8vPfKw4do9JWkDUXPLsD9Bwz12f8/JpAb6Q== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" +"@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.549.0.tgz#fa493de7366946971dc82bd07c181f23d4cb6be9" - integrity sha512-lz+yflOAj5Q263FlCsKpNqttaCb2NPh8jC76gVCqCt7TPxRDBYVaqg0OZYluDaETIDNJi4DwN2Azcck7ilwuPw== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" +"@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.549.0.tgz#d8b6034c80f190dded7add83e99d2da209b61699" - integrity sha512-63IreJ598Dzvpb+6sy81KfIX5iQxnrWSEtlyeCdC2GO6gmSQVwJzc9kr5pAC83lHmlZcm/Q3KZr3XBhRQqP0og== - dependencies: - "@aws-crypto/sha256-browser" "3.0.0" - "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.549.0" - "@aws-sdk/middleware-host-header" "3.535.0" - "@aws-sdk/middleware-logger" "3.535.0" - "@aws-sdk/middleware-recursion-detection" "3.535.0" - "@aws-sdk/middleware-user-agent" "3.540.0" - "@aws-sdk/region-config-resolver" "3.535.0" - "@aws-sdk/types" "3.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@aws-sdk/util-user-agent-browser" "3.535.0" - "@aws-sdk/util-user-agent-node" "3.535.0" - "@smithy/config-resolver" "^2.2.0" - "@smithy/core" "^1.4.1" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/hash-node" "^2.2.0" - "@smithy/invalid-dependency" "^2.2.0" - "@smithy/middleware-content-length" "^2.2.0" - "@smithy/middleware-endpoint" "^2.5.0" - "@smithy/middleware-retry" "^2.3.0" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-body-length-browser" "^2.2.0" - "@smithy/util-body-length-node" "^2.3.0" - "@smithy/util-defaults-mode-browser" "^2.2.0" - "@smithy/util-defaults-mode-node" "^2.3.0" - "@smithy/util-endpoints" "^1.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" +"@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.549.0", "@aws-sdk/core@^3.535.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.549.0.tgz#1c40b7abbea37479db5e5ac39957f26f0a7e2119" - integrity sha512-jC61OxJn72r/BbuDRCcluiw05Xw9eVLG0CwxQpF3RocxfxyZqlrGYaGecZ8Wy+7g/3sqGRC/Ar5eUhU1YcLx7w== +"@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" "^1.4.1" - "@smithy/protocol-http" "^3.3.0" - "@smithy/signature-v4" "^2.2.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" + "@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.549.0.tgz#d87382911b70f460232baed86a4b53e2970f1fa2" - integrity sha512-EADYw4JimdZ3mGhxtAXSdARNunw/4T7Vd82vvsvqavqL3S9jt5+2SrZ2/PYrweJHLRFggMHcBs82FRql1efMaA== +"@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.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.0" + "@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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf" - integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA== +"@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.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.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-http@3.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz#0a42f6b1a61d927bbce9f4afd25112f486bd05da" - integrity sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw== - dependencies: - "@aws-sdk/types" "3.535.0" - "@smithy/fetch-http-handler" "^2.5.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/util-stream" "^2.2.0" +"@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.549.0", "@aws-sdk/credential-provider-ini@^3.535.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.549.0.tgz#261654741e1c75f2adf888e06a443aa60ec32bad" - integrity sha512-k6IIrluZjQpzui5Din8fW3bFFhHaJ64XrsfYx0Ks1mb7xan84dJxmYP3tdDDmLzUeJv5h95ag88taHfjY9rakA== - dependencies: - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/credential-provider-env" "3.535.0" - "@aws-sdk/credential-provider-process" "3.535.0" - "@aws-sdk/credential-provider-sso" "3.549.0" - "@aws-sdk/credential-provider-web-identity" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/credential-provider-imds" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" +"@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.549.0.tgz#765b3d00b3771ff35f0aa333c3c3891eff22afb6" - integrity sha512-f3YgalsMuywEAVX4AUm9tojqrBdfpAac0+D320ePzas0Ntbp7ItYu9ceKIhgfzXO3No7P3QK0rCrOxL+ABTn8Q== - dependencies: - "@aws-sdk/credential-provider-env" "3.535.0" - "@aws-sdk/credential-provider-http" "3.535.0" - "@aws-sdk/credential-provider-ini" "3.549.0" - "@aws-sdk/credential-provider-process" "3.535.0" - "@aws-sdk/credential-provider-sso" "3.549.0" - "@aws-sdk/credential-provider-web-identity" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/credential-provider-imds" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" +"@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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659" - integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA== +"@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.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.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-sso@3.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.549.0.tgz#1aa9f148715230233cb130afd8af3fea0b8947c7" - integrity sha512-BGopRKHs7W8zkoH8qmSHrjudj263kXbhVkAUPxVUz0I28+CZNBgJC/RfVCbOpzmysIQEpwSqvOv1y0k+DQzIJQ== - dependencies: - "@aws-sdk/client-sso" "3.549.0" - "@aws-sdk/token-providers" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" +"@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.549.0.tgz#5c11204dd00a3d0dfbeb0392a22e429251685826" - integrity sha512-QzclVXPxuwSI7515l34sdvliVq5leroO8P7RQFKRgfyQKO45o1psghierwG3PgV6jlMiv78FIAGJBr/n4qZ7YA== +"@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/client-sts" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.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-providers@^3.535.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.549.0.tgz#26e7279ea18b84bf6f96462cdcd82d0b6556fa93" - integrity sha512-icbw8zCX2eSGPGBZLD6HKSgUMnpL95KzUikr94sVN81UuP1EnueaWj6gnErqP2Dr05ZEF9wMZxwd91qu8kVTNw== - dependencies: - "@aws-sdk/client-cognito-identity" "3.549.0" - "@aws-sdk/client-sso" "3.549.0" - "@aws-sdk/client-sts" "3.549.0" - "@aws-sdk/credential-provider-cognito-identity" "3.549.0" - "@aws-sdk/credential-provider-env" "3.535.0" - "@aws-sdk/credential-provider-http" "3.535.0" - "@aws-sdk/credential-provider-ini" "3.549.0" - "@aws-sdk/credential-provider-node" "3.549.0" - "@aws-sdk/credential-provider-process" "3.535.0" - "@aws-sdk/credential-provider-sso" "3.549.0" - "@aws-sdk/credential-provider-web-identity" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/credential-provider-imds" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db" - integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew== +"@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.535.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" + "@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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee" - integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A== +"@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.535.0" - "@smithy/types" "^2.12.0" + "@aws-sdk/types" "3.598.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d" - integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw== +"@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.535.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" + "@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.540.0": - version "3.540.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d" - integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ== +"@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.535.0" - "@aws-sdk/util-endpoints" "3.540.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" + "@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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec" - integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg== +"@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.535.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/types" "^2.12.0" - "@smithy/util-config-provider" "^2.3.0" - "@smithy/util-middleware" "^2.2.0" + "@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.549.0": - version "3.549.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.549.0.tgz#0e4aa04d6d50d633c34c78bbed62e3924bc10103" - integrity sha512-rJyeXkXknLukRFGuMQOgKnPBa+kLODJtOqEBf929SpQ96f1I6ytdndmWbB5B/OQN5Fu5DOOQUQqJypDQVl5ibQ== +"@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/client-sso-oidc" "3.549.0" - "@aws-sdk/types" "3.535.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.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/types@3.535.0", "@aws-sdk/types@^3.222.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04" - integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.540.0": - version "3.540.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8" - integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw== +"@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.535.0" - "@smithy/types" "^2.12.0" - "@smithy/util-endpoints" "^1.2.0" + "@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.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7" - integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA== + 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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f" - integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig== +"@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.535.0" - "@smithy/types" "^2.12.0" + "@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.535.0": - version "3.535.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b" - integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ== +"@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.535.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/types" "^2.12.0" + "@aws-sdk/types" "3.598.0" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@aws-sdk/util-utf8-browser@^3.0.0": - version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" - integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== - dependencies: - tslib "^2.3.1" - "@babel/cli@^7.21.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.5.tgz#eb323bd69f50297792c2b7c205a97306a305d703" @@ -3040,10 +3031,10 @@ "@datadog/browser-core" "5.14.0" "@datadog/browser-rum-core" "5.14.0" -"@datadog/datadog-ci@^2.33.0": - version "2.33.0" - resolved "https://registry.yarnpkg.com/@datadog/datadog-ci/-/datadog-ci-2.33.0.tgz#e672e2ee286bceac62ffea230250b3edc1c9a724" - integrity sha512-WTyOH7PIDOkXOZez0pKVN1l/z5/+AmxquWK5OZl4YLvPz7aXw8NBguBn+96x1NdjbHJYz/viiBvBCaE25V7dIQ== +"@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" @@ -3581,24 +3572,24 @@ prop-types "^15.8.1" "@google-cloud/common@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-5.0.1.tgz#762e598b0ef61e28d20e5b627141125ef73df957" - integrity sha512-7NBC5vD0au75nkctVs2vEGpdUPFs1BaHTMpeI+RVEgQSMe5/wEU6dx9p0fmZA0bj4HgdpobMKeegOcLUiEoxng== + 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" - ent "^2.2.0" 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.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/logging/-/logging-11.0.0.tgz#f5a408d411ccdaac6d2738ef4cb4046cc2bcff86" - integrity sha512-uQeReiVICoV5yt9J/cczNxHxqzTkLLG7yGHXCMAk/wQNVZGevT4Bi7CBWpt0aXxm044a76Aj6V08cCAlBj7UZw== + 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" @@ -3617,9 +3608,9 @@ uuid "^9.0.0" "@google-cloud/paginator@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.0.tgz#b8cc62f151685095d11467402cbf417c41bf14e6" - integrity sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w== + 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" @@ -3635,28 +3626,28 @@ integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== "@google-cloud/run@^1.0.2": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@google-cloud/run/-/run-1.1.0.tgz#d416d76c3ee41fe6b36cded8ae524b57bd86facc" - integrity sha512-87RiYnU6jCf/3OXkME9Wiz7YgxkQ2SvEJE2WcsGSoGeoYDbM2xgcn4TfmA+Mwdu//Jbi9sMMzbcnU8Ny8qa5kw== + 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.0": - version "1.10.6" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.6.tgz#1e3eb1af911dc888fbef7452f56a7573b8284d54" - integrity sha512-xP58G7wDQ4TCmN/cMUHh00DS7SRDv/+lC+xFLrTkMIN8h55X5NhZMLYbvy7dSELP15qlI6hPhNCRWVMtZMwqLA== +"@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.10" + "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.10": - version "0.7.12" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911" - integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q== +"@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.4" + protobufjs "^7.2.5" yargs "^17.7.2" "@gulpjs/to-absolute-glob@^4.0.0": @@ -4337,122 +4328,122 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@smithy/abort-controller@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" - integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/config-resolver@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" - integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== +"@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" "^2.3.0" - "@smithy/types" "^2.12.0" - "@smithy/util-config-provider" "^2.3.0" - "@smithy/util-middleware" "^2.2.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" -"@smithy/core@^1.4.1": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.2.tgz#1c3ed886d403041ce5bd2d816448420c57baa19c" - integrity sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA== - dependencies: - "@smithy/middleware-endpoint" "^2.5.1" - "@smithy/middleware-retry" "^2.3.1" - "@smithy/middleware-serde" "^2.3.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" - "@smithy/util-middleware" "^2.2.0" +"@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@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" - integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== +"@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" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" + "@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" -"@smithy/eventstream-codec@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4" - integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw== +"@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" "3.0.0" - "@smithy/types" "^2.12.0" - "@smithy/util-hex-encoding" "^2.2.0" + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^3.1.0" + "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz#69c93cc0210f04caeb0770856ef88c9a82564e11" - integrity sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw== +"@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" "^2.2.0" - "@smithy/types" "^2.12.0" + "@smithy/eventstream-serde-universal" "^3.0.2" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz#23c8698ce594a128bcc556153efb7fecf6d04f87" - integrity sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz#b82870a838b1bd32ad6e0cf33a520191a325508e" - integrity sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA== +"@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" "^2.2.0" - "@smithy/types" "^2.12.0" + "@smithy/eventstream-serde-universal" "^3.0.2" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz#a75e330040d5e2ca2ac0d8bccde3e390ac5afd38" - integrity sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA== +"@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" "^2.2.0" - "@smithy/types" "^2.12.0" + "@smithy/eventstream-codec" "^3.1.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" - integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== +"@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" "^3.3.0" - "@smithy/querystring-builder" "^2.2.0" - "@smithy/types" "^2.12.0" - "@smithy/util-base64" "^2.3.0" + "@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@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" - integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== +"@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" "^2.12.0" - "@smithy/util-buffer-from" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" + "@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@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" - integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -4462,81 +4453,88 @@ dependencies: tslib "^2.6.2" -"@smithy/middleware-content-length@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" - integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== +"@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: - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^2.5.0", "@smithy/middleware-endpoint@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" - integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== +"@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/middleware-serde" "^2.3.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" - "@smithy/url-parser" "^2.2.0" - "@smithy/util-middleware" "^2.2.0" + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/middleware-retry@^2.3.0", "@smithy/middleware-retry@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" - integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== - dependencies: - "@smithy/node-config-provider" "^2.3.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/service-error-classification" "^2.1.5" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-retry" "^2.2.0" +"@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@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" - integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/middleware-stack@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" - integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/node-config-provider@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" - integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== +"@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" "^2.2.0" - "@smithy/shared-ini-file-loader" "^2.4.0" - "@smithy/types" "^2.12.0" + "@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@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" - integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== +"@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" "^2.2.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/querystring-builder" "^2.2.0" - "@smithy/types" "^2.12.0" + "@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", "@smithy/property-provider@^2.2.0": +"@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== @@ -4544,29 +4542,37 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/protocol-http@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" - integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/querystring-builder@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" - integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== +"@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" "^2.12.0" - "@smithy/util-uri-escape" "^2.2.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/querystring-parser@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" - integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== +"@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" "^2.12.0" + "@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": @@ -4576,37 +4582,44 @@ dependencies: "@smithy/types" "^2.12.0" -"@smithy/shared-ini-file-loader@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" - integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== +"@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" "^2.12.0" - tslib "^2.6.2" + "@smithy/types" "^3.1.0" -"@smithy/signature-v4@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.2.1.tgz#9b32571e9785c8f69aa4115517bf2a784f690c4d" - integrity sha512-j5fHgL1iqKTsKJ1mTcw88p0RUcidDu95AWSeZTgiYJb+QcfwWU/UpBnaqiB59FNH5MiAZuSbOBnZlwzeeY2tIw== +"@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/is-array-buffer" "^2.2.0" - "@smithy/types" "^2.12.0" - "@smithy/util-hex-encoding" "^2.2.0" - "@smithy/util-middleware" "^2.2.0" - "@smithy/util-uri-escape" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/smithy-client@^2.5.0", "@smithy/smithy-client@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" - integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== - dependencies: - "@smithy/middleware-endpoint" "^2.5.1" - "@smithy/middleware-stack" "^2.2.0" - "@smithy/protocol-http" "^3.3.0" - "@smithy/types" "^2.12.0" - "@smithy/util-stream" "^2.2.0" +"@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": @@ -4616,35 +4629,42 @@ dependencies: tslib "^2.6.2" -"@smithy/url-parser@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" - integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== +"@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: - "@smithy/querystring-parser" "^2.2.0" - "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-base64@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" - integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== +"@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/util-buffer-from" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" + "@smithy/querystring-parser" "^3.0.1" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/util-body-length-browser@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c" - integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w== +"@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-node@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f" - integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw== +"@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" @@ -4656,62 +4676,70 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@smithy/util-config-provider@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" - integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== +"@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-defaults-mode-browser@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" - integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== +"@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: - "@smithy/property-provider" "^2.2.0" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" + 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@^2.3.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" - integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== - dependencies: - "@smithy/config-resolver" "^2.2.0" - "@smithy/credential-provider-imds" "^2.3.0" - "@smithy/node-config-provider" "^2.3.0" - "@smithy/property-provider" "^2.2.0" - "@smithy/smithy-client" "^2.5.1" - "@smithy/types" "^2.12.0" +"@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@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" - integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== +"@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" "^2.3.0" - "@smithy/types" "^2.12.0" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/util-hex-encoding@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" - integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== +"@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@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" - integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== +"@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" "^2.12.0" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/util-retry@^2.0.4", "@smithy/util-retry@^2.2.0": +"@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== @@ -4720,28 +4748,37 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-stream@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" - integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== +"@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/fetch-http-handler" "^2.5.0" - "@smithy/node-http-handler" "^2.5.0" - "@smithy/types" "^2.12.0" - "@smithy/util-base64" "^2.3.0" - "@smithy/util-buffer-from" "^2.2.0" - "@smithy/util-hex-encoding" "^2.2.0" - "@smithy/util-utf8" "^2.3.0" + "@smithy/service-error-classification" "^3.0.1" + "@smithy/types" "^3.1.0" tslib "^2.6.2" -"@smithy/util-uri-escape@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" - integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== +"@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.3.0": +"@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== @@ -4749,13 +4786,21 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@smithy/util-waiter@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.2.0.tgz#d11baf50637bfaadb9641d6ca1619da413dd2612" - integrity sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA== +"@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/abort-controller" "^2.2.0" - "@smithy/types" "^2.12.0" + "@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": @@ -5071,17 +5116,10 @@ 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== - dependencies: - undici-types "~5.26.4" - -"@types/node@>=13.7.0": - version "20.12.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.6.tgz#72d068870518d7da1d97b49db401e2d6a1805294" - integrity sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ== +"@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" @@ -5092,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" @@ -5181,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" @@ -5485,14 +5530,14 @@ ajv@^6.10.0, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + 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.1" + fast-deep-equal "^3.1.3" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" + uri-js "^4.4.1" ansi-colors@^4.1.1: version "4.1.3" @@ -5785,9 +5830,9 @@ axios@^1.6.1, axios@^1.6.7: proxy-from-env "^1.1.0" axios@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" - integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== + 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" @@ -6627,12 +6672,12 @@ cosmiconfig@^8.1.3: path-type "^4.0.0" cpu-features@~0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" - integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== + 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.17.0" + nan "^2.19.0" create-jest@^29.7.0: version "29.7.0" @@ -6860,10 +6905,10 @@ debug@3.1.0: dependencies: ms "2.0.0" -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@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" @@ -6881,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" @@ -7212,11 +7264,6 @@ ensure-posix-path@^1.1.0: resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== - entities@^4.2.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -7436,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" @@ -8066,9 +8113,9 @@ fast-xml-parser@4.2.5: strnum "^1.0.5" fast-xml-parser@^4.2.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz#190f9d99097f0c8f2d3a0e681a10404afca052ff" - integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw== + 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" @@ -8431,9 +8478,9 @@ gaxios@^5.0.0, gaxios@^5.0.1: node-fetch "^2.6.9" gaxios@^6.0.0, gaxios@^6.1.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.4.0.tgz#08a42cb44d5123a72efaaf9f786c266e7f18be70" - integrity sha512-apAloYrY4dlBGlhauDAYSZveafb5U6+L9titing1wox6BvWM0TSXBp603zTrLpyLMGkrcFgohnUN150dFN/zOA== + 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" @@ -8704,9 +8751,9 @@ google-auth-library@^8.9.0: lru-cache "^6.0.0" google-auth-library@^9.0.0, google-auth-library@^9.3.0: - version "9.7.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.7.0.tgz#dd99a08e2e3f70778de8be4ed8556460e237550a" - integrity sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A== + 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" @@ -8716,12 +8763,12 @@ google-auth-library@^9.0.0, google-auth-library@^9.3.0: jws "^4.0.0" google-gax@^4.0.3: - version "4.3.2" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.2.tgz#417cbee97f2e68d78f641af19c0f15234c0dbd9c" - integrity sha512-2mw7qgei2LPdtGrmd1zvxQviOcduTnsvAWYzCxhOWXK4IQKmQztHnDQwD0ApB690fBQJemFKSU7DnceAy3RLzw== + 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.0" - "@grpc/proto-loader" "^0.7.0" + "@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" @@ -8729,7 +8776,7 @@ google-gax@^4.0.3: node-fetch "^2.6.1" object-hash "^3.0.0" proto3-json-serializer "^2.0.0" - protobufjs "7.2.6" + protobufjs "7.3.0" retry-request "^7.0.0" uuid "^9.0.1" @@ -8885,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" @@ -10587,10 +10639,10 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.17.0, nan@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== +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" @@ -11218,16 +11270,34 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: react-is "^16.13.1" proto3-json-serializer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz#da0b510f6d6e584b1b5c271f045c26728abe71e0" - integrity sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA== + 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.2.6, protobufjs@^7.2.4, protobufjs@^7.2.5: - version "7.2.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== +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" @@ -11293,7 +11363,12 @@ pumpify@^2.0.1: inherits "^2.0.3" pump "^3.0.0" -punycode@^2.1.0, punycode@^2.1.1: +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== @@ -11988,9 +12063,9 @@ sass@^1.77.5: source-map-js ">=0.6.2 <2.0.0" sax@>=0.6.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" - integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + 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" @@ -12016,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" @@ -12160,9 +12240,9 @@ socks-proxy-agent@^8.0.2: socks "^2.7.1" socks@^2.7.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" - integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + 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" @@ -12801,20 +12881,20 @@ tslib@2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: +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.3.1, tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +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" @@ -13007,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" @@ -13032,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==