diff --git a/client/src/App.jsx b/client/src/App.jsx index e3a91572c..e545b38d3 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,46 +1,19 @@ -import React, { lazy, Suspense, useCallback, useEffect } from 'react'; -import { Route, Routes, useLocation, useNavigate } from 'react-router-dom'; +import React, { Suspense, useCallback, useEffect } from 'react'; +import { QueryClient, QueryClientProvider } from 'react-query'; +import { BrowserRouter } from 'react-router-dom'; +import { ChakraProvider } from '@chakra-ui/react'; import ErrorBoundary from 'common/components/errorBoundary/ErrorBoundary'; -import withSocket from 'features/viewers/ViewWrapper'; -import { ALIASES } from './app/api/apiConstants'; -import { getAliases } from './app/api/ontimeApi'; -import { useFetch } from './app/hooks/useFetch'; +import { AppContextProvider } from './common/context/AppContext'; +import SocketProvider from './common/context/socketContext'; +import theme from './theme/theme'; +import AppRouter from './AppRouter'; -import './App.scss'; - -const Editor = lazy(() => import('features/editors/ProtectedEditor')); -const Table = lazy(() => import('features/table/ProtectedTable')); - -const TimerView = lazy(() => import('features/viewers/timer/Timer')); -const MinimalTimerView = lazy(() => import('features/viewers/timer/MinimalTimer')); -const Countdown = lazy(() => import('features/viewers/countdown/Countdown')); - -const StageManager = lazy(() => import('features/viewers/backstage/StageManager')); -const Public = lazy(() => import('features/viewers/foh/Public')); -const Lower = lazy(() => import('features/viewers/production/lower/LowerWrapper')); -const Pip = lazy(() => import('features/viewers/production/Pip')); -const StudioClock = lazy(() => import('features/viewers/studio/StudioClock')); - -const STimer = withSocket(TimerView); -const SMinimalTimer = withSocket(MinimalTimerView); -const SCountdown = withSocket(Countdown); -const SStageManager = withSocket(StageManager); -const SPublic = withSocket(Public); -const SLowerThird = withSocket(Lower); -const SPip = withSocket(Pip); -const SStudio = withSocket(StudioClock); - -const FeatureWrapper = lazy(() => import('features/FeatureWrapper')); -const EventList = lazy(() => import('features/editors/list/EventListExport')); -const TimerControl = lazy(() => import('features/control/playback/TimerControlExport')); -const MessageControl = lazy(() => import('features/control/message/MessageControlExport')); -const Info = lazy(() => import('features/info/InfoExport')); +// Load Open Sans typeface +require('typeface-open-sans'); +const queryClient = new QueryClient(); function App() { - const { data } = useFetch(ALIASES, getAliases); - const location = useLocation(); - const navigate = useNavigate(); // Handle keyboard shortcuts const handleKeyPress = useCallback((e) => { @@ -68,88 +41,26 @@ function App() { }; }, [handleKeyPress]); - // navigate if is alias route - useEffect(() => { - if (data == null) return; - for (const d of data) { - if (`/${d.alias}` === location.pathname && d.enabled) { - navigate(`/${d.pathAndParams}`); - break; - } - } - }, [data, location, navigate]); + return ( -
- - - - } /> - } /> - } /> - } /> - } /> - - } /> - } /> - } /> - - } /> - - } /> - } /> - - } /> - } /> - } /> - {/*/!* Lower cannot have fallback *!/*/} - } /> - - {/*/!* Protected Routes *!/*/} - } /> - } /> - } /> - } /> - - {/*/!* Protected Routes - Elements *!/*/} - - - - } - /> - - - - } - /> - - - - } - /> - - - - } - /> - {/* Send to default if nothing found */} - } /> - - - -
+ + + + + +
+ + + + + +
+
+
+
+
+
); } diff --git a/client/src/App.scss b/client/src/App.scss deleted file mode 100644 index 2ee8de8bb..000000000 --- a/client/src/App.scss +++ /dev/null @@ -1,45 +0,0 @@ -* { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - scrollbar-color: rgba(255, 255, 255, 0.15) rgba(255, 255, 255, 0.01); - scrollbar-width: thin; -} - -body, -html, -.App { - margin: 0 auto; - overflow: hidden; - overflow: clip; - height: 100vh; - -webkit-user-select: none; - user-select: none; - -webkit-app-region: drag; -} - -option { - color: black; -} - -/* width */ -::-webkit-scrollbar { - width: 0.5rem; - height: 0.5rem; -} - -/* Track */ -::-webkit-scrollbar-track { - background: rgba(255, 255, 255, 0.01); - border-radius: 4px; -} - -/* Handle */ -::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.15); - border-radius: 4px; -} - -/* Handle on hover */ -::-webkit-scrollbar-thumb:hover { - background: rgba(255, 255, 255, 0.35); -} diff --git a/client/src/AppRouter.jsx b/client/src/AppRouter.jsx new file mode 100644 index 000000000..ba0bebeb6 --- /dev/null +++ b/client/src/AppRouter.jsx @@ -0,0 +1,119 @@ +import React, { lazy, useEffect } from 'react'; +import { Route, Routes, useLocation, useNavigate } from 'react-router-dom'; + +import { ALIASES } from './common/api/apiConstants'; +import { getAliases } from './common/api/ontimeApi'; +import { useFetch } from './common/hooks/useFetch'; +import withSocket from './features/viewers/ViewWrapper'; + +const Editor = lazy(() => import('features/editors/ProtectedEditor')); +const Table = lazy(() => import('features/table/ProtectedTable')); + +const TimerView = lazy(() => import('features/viewers/timer/Timer')); +const MinimalTimerView = lazy(() => import('features/viewers/timer/MinimalTimer')); +const Countdown = lazy(() => import('features/viewers/countdown/Countdown')); + +const StageManager = lazy(() => import('features/viewers/backstage/StageManager')); +const Public = lazy(() => import('features/viewers/foh/Public')); +const Lower = lazy(() => import('features/viewers/production/lower/LowerWrapper')); +const Pip = lazy(() => import('features/viewers/production/Pip')); +const StudioClock = lazy(() => import('features/viewers/studio/StudioClock')); + +const STimer = withSocket(TimerView); +const SMinimalTimer = withSocket(MinimalTimerView); +const SCountdown = withSocket(Countdown); +const SStageManager = withSocket(StageManager); +const SPublic = withSocket(Public); +const SLowerThird = withSocket(Lower); +const SPip = withSocket(Pip); +const SStudio = withSocket(StudioClock); + +const FeatureWrapper = lazy(() => import('features/FeatureWrapper')); +const EventList = lazy(() => import('features/editors/list/EventListExport')); +const TimerControl = lazy(() => import('features/control/playback/TimerControlExport')); +const MessageControl = lazy(() => import('features/control/message/MessageControlExport')); +const Info = lazy(() => import('features/info/InfoExport')); + +export default function AppRouter() { + const { data } = useFetch(ALIASES, getAliases); + const location = useLocation(); + const navigate = useNavigate(); + + // navigate if is alias route + useEffect(() => { + if (!data) return; + for (const d of data) { + if (`/${d.alias}` === location.pathname && d.enabled) { + navigate(`/${d.pathAndParams}`); + break; + } + } + }, [data, location, navigate]); + + return( + + } /> + } /> + } /> + } /> + } /> + + } /> + } /> + } /> + + } /> + + } /> + } /> + + } /> + } /> + } /> + {/*/!* Lower cannot have fallback *!/*/} + } /> + + {/*/!* Protected Routes *!/*/} + } /> + } /> + } /> + } /> + + {/*/!* Protected Routes - Elements *!/*/} + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + {/* Send to default if nothing found */} + } /> + + ) +} diff --git a/client/src/app/appConstants.js b/client/src/appConstants.js similarity index 100% rename from client/src/app/appConstants.js rename to client/src/appConstants.js diff --git a/client/src/app/api/apiConstants.js b/client/src/common/api/apiConstants.js similarity index 100% rename from client/src/app/api/apiConstants.js rename to client/src/common/api/apiConstants.js diff --git a/client/src/app/api/eventApi.js b/client/src/common/api/eventApi.js similarity index 100% rename from client/src/app/api/eventApi.js rename to client/src/common/api/eventApi.js diff --git a/client/src/app/api/eventsApi.js b/client/src/common/api/eventsApi.js similarity index 100% rename from client/src/app/api/eventsApi.js rename to client/src/common/api/eventsApi.js diff --git a/client/src/app/api/ontimeApi.js b/client/src/common/api/ontimeApi.js similarity index 100% rename from client/src/app/api/ontimeApi.js rename to client/src/common/api/ontimeApi.js diff --git a/client/src/app/api/playbackApi.js b/client/src/common/api/playbackApi.js similarity index 100% rename from client/src/app/api/playbackApi.js rename to client/src/common/api/playbackApi.js diff --git a/client/src/common/components/buttons/QuitIconBtn.jsx b/client/src/common/components/buttons/QuitIconBtn.jsx index 4e2865727..1f16781b6 100644 --- a/client/src/common/components/buttons/QuitIconBtn.jsx +++ b/client/src/common/components/buttons/QuitIconBtn.jsx @@ -12,7 +12,7 @@ import { Tooltip } from '@chakra-ui/tooltip'; import { FiPower } from '@react-icons/all-files/fi/FiPower'; import PropTypes from 'prop-types'; -import { LoggingContext } from '../../../app/context/LoggingContext'; +import { LoggingContext } from '../../context/LoggingContext'; export default function QuitIconBtn(props) { const { clickHandler, size = 'lg', ...rest } = props; diff --git a/client/src/common/components/collapseBar/CollapseBar.module.scss b/client/src/common/components/collapseBar/CollapseBar.module.scss index dd10a1d72..8ff33fca1 100644 --- a/client/src/common/components/collapseBar/CollapseBar.module.scss +++ b/client/src/common/components/collapseBar/CollapseBar.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .header, .headerRoll { diff --git a/client/src/common/components/countdown/TimerDisplay.module.scss b/client/src/common/components/countdown/TimerDisplay.module.scss index 20c4ad66f..33889acfa 100644 --- a/client/src/common/components/countdown/TimerDisplay.module.scss +++ b/client/src/common/components/countdown/TimerDisplay.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; /* Common */ .countdownClock, diff --git a/client/src/common/components/errorBoundary/ErrorBoundary.jsx b/client/src/common/components/errorBoundary/ErrorBoundary.jsx index e995dd943..1b015b8bd 100644 --- a/client/src/common/components/errorBoundary/ErrorBoundary.jsx +++ b/client/src/common/components/errorBoundary/ErrorBoundary.jsx @@ -1,7 +1,7 @@ /* eslint-disable react/destructuring-assignment */ import React from 'react'; -import { LoggingContext } from '../../../app/context/LoggingContext'; +import { LoggingContext } from '../../context/LoggingContext'; import style from './ErrorBoundary.module.scss'; const appVersion = require('../../../../package.json').version; diff --git a/client/src/common/components/errorBoundary/ErrorBoundary.module.scss b/client/src/common/components/errorBoundary/ErrorBoundary.module.scss index 453e11f60..afde83608 100644 --- a/client/src/common/components/errorBoundary/ErrorBoundary.module.scss +++ b/client/src/common/components/errorBoundary/ErrorBoundary.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .errorContainer { width: 100%; diff --git a/client/src/common/components/eventTimes/EventTimes.jsx b/client/src/common/components/eventTimes/EventTimes.jsx index 15e1d7dca..e05232dcf 100644 --- a/client/src/common/components/eventTimes/EventTimes.jsx +++ b/client/src/common/components/eventTimes/EventTimes.jsx @@ -1,9 +1,9 @@ import React, { useCallback, useContext } from 'react'; -import EditableTimer from 'common/input/EditableTimer'; +import EditableTimer from 'common/components/input/EditableTimer'; import PropTypes from 'prop-types'; -import { LoggingContext } from '../../../app/context/LoggingContext'; -import { validateTimes } from '../../../app/entryValidator'; +import { LoggingContext } from '../../context/LoggingContext'; +import { validateTimes } from '../../utils/entryValidator'; export default function EventTimes(props) { const { actionHandler, delay, timeStart, timeEnd, previousEnd } = props; diff --git a/client/src/common/components/eventTimes/EventTimesVertical.jsx b/client/src/common/components/eventTimes/EventTimesVertical.jsx index d7ac6a55d..f63d73157 100644 --- a/client/src/common/components/eventTimes/EventTimesVertical.jsx +++ b/client/src/common/components/eventTimes/EventTimesVertical.jsx @@ -1,8 +1,8 @@ import React, { useCallback, useContext } from 'react'; import PropTypes from 'prop-types'; -import { LoggingContext } from '../../../app/context/LoggingContext'; -import { validateTimes } from '../../../app/entryValidator'; +import { LoggingContext } from '../../context/LoggingContext'; +import { validateTimes } from '../../utils/entryValidator'; import Times from './Times'; import TimesDelayed from './TimesDelayed'; diff --git a/client/src/common/components/eventTimes/Times.jsx b/client/src/common/components/eventTimes/Times.jsx index b6d0199d8..de26d5b2e 100644 --- a/client/src/common/components/eventTimes/Times.jsx +++ b/client/src/common/components/eventTimes/Times.jsx @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import EditableTimer from '../../input/EditableTimer'; +import EditableTimer from '../input/EditableTimer'; import style from './Times.module.scss' diff --git a/client/src/common/components/eventTimes/Times.module.scss b/client/src/common/components/eventTimes/Times.module.scss index 99594805d..156593f7e 100644 --- a/client/src/common/components/eventTimes/Times.module.scss +++ b/client/src/common/components/eventTimes/Times.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .label { font-size: 0.75em; diff --git a/client/src/common/components/eventTimes/TimesDelayed.jsx b/client/src/common/components/eventTimes/TimesDelayed.jsx index 8e717a9de..78801e5c5 100644 --- a/client/src/common/components/eventTimes/TimesDelayed.jsx +++ b/client/src/common/components/eventTimes/TimesDelayed.jsx @@ -1,8 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import EditableTimer from '../../input/EditableTimer'; import { stringFromMillis } from '../../utils/time'; +import EditableTimer from '../input/EditableTimer'; import style from './Times.module.scss' diff --git a/client/src/common/input/AutoTextArea.jsx b/client/src/common/components/input/AutoTextArea.jsx similarity index 100% rename from client/src/common/input/AutoTextArea.jsx rename to client/src/common/components/input/AutoTextArea.jsx diff --git a/client/src/common/input/DelayInput.jsx b/client/src/common/components/input/DelayInput.jsx similarity index 97% rename from client/src/common/input/DelayInput.jsx rename to client/src/common/components/input/DelayInput.jsx index 73ed32def..1ede64b05 100644 --- a/client/src/common/input/DelayInput.jsx +++ b/client/src/common/components/input/DelayInput.jsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { Editable, EditableInput, EditablePreview } from '@chakra-ui/react'; import PropTypes from 'prop-types'; -import { clamp } from '../../app/utils/math'; +import { clamp } from '../../utils/math'; import style from './TimeInput.module.css'; diff --git a/client/src/common/input/EditableText.jsx b/client/src/common/components/input/EditableText.jsx similarity index 100% rename from client/src/common/input/EditableText.jsx rename to client/src/common/components/input/EditableText.jsx diff --git a/client/src/common/input/EditableText.module.scss b/client/src/common/components/input/EditableText.module.scss similarity index 92% rename from client/src/common/input/EditableText.module.scss rename to client/src/common/components/input/EditableText.module.scss index 69e9e5775..f689a21e0 100644 --- a/client/src/common/input/EditableText.module.scss +++ b/client/src/common/components/input/EditableText.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../../theme/main' as *; .block { overflow: hidden; diff --git a/client/src/common/input/EditableTimer.jsx b/client/src/common/components/input/EditableTimer.jsx similarity index 94% rename from client/src/common/input/EditableTimer.jsx rename to client/src/common/components/input/EditableTimer.jsx index ec9264dbb..bcad1e456 100644 --- a/client/src/common/input/EditableTimer.jsx +++ b/client/src/common/components/input/EditableTimer.jsx @@ -2,9 +2,9 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { Editable, EditableInput, EditablePreview } from '@chakra-ui/editable'; import PropTypes from 'prop-types'; -import { LoggingContext } from '../../app/context/LoggingContext'; -import { forgivingStringToMillis } from '../utils/dateConfig'; -import { stringFromMillis } from '../utils/time'; +import { LoggingContext } from '../../context/LoggingContext'; +import { forgivingStringToMillis } from '../../utils/dateConfig'; +import { stringFromMillis } from '../../utils/time'; import style from './EditableTimer.module.scss'; diff --git a/client/src/common/input/EditableTimer.module.scss b/client/src/common/components/input/EditableTimer.module.scss similarity index 88% rename from client/src/common/input/EditableTimer.module.scss rename to client/src/common/components/input/EditableTimer.module.scss index 8307bc17d..b7321c028 100644 --- a/client/src/common/input/EditableTimer.module.scss +++ b/client/src/common/components/input/EditableTimer.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main'as *; +@use '../../../theme/main'as *; .editable, .delayedEditable { diff --git a/client/src/common/input/TimeInput.module.css b/client/src/common/components/input/TimeInput.module.css similarity index 100% rename from client/src/common/input/TimeInput.module.css rename to client/src/common/components/input/TimeInput.module.css diff --git a/client/src/common/input/__tests__/EditableTimer.test.jsx b/client/src/common/components/input/__tests__/EditableTimer.test.jsx similarity index 100% rename from client/src/common/input/__tests__/EditableTimer.test.jsx rename to client/src/common/components/input/__tests__/EditableTimer.test.jsx diff --git a/client/src/common/components/myProgressBar/MyProgressBar.jsx b/client/src/common/components/myProgressBar/MyProgressBar.jsx index ff7a07543..6e7a9884c 100644 --- a/client/src/common/components/myProgressBar/MyProgressBar.jsx +++ b/client/src/common/components/myProgressBar/MyProgressBar.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import { clamp } from 'app/utils/math'; +import { clamp } from 'common/utils/math'; import PropTypes from 'prop-types'; import styles from './MyProgressBar.module.scss'; diff --git a/client/src/common/components/myProgressBar/MyProgressBar.module.scss b/client/src/common/components/myProgressBar/MyProgressBar.module.scss index 6f183f155..deef4b350 100644 --- a/client/src/common/components/myProgressBar/MyProgressBar.module.scss +++ b/client/src/common/components/myProgressBar/MyProgressBar.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .progress, .progressCountdown { diff --git a/client/src/common/components/nav/NavLogo.module.scss b/client/src/common/components/nav/NavLogo.module.scss index 67ecabd7c..680a1dff0 100644 --- a/client/src/common/components/nav/NavLogo.module.scss +++ b/client/src/common/components/nav/NavLogo.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .navContainer { position: absolute; diff --git a/client/src/common/components/protectRoute/ProtectRoute.jsx b/client/src/common/components/protectRoute/ProtectRoute.jsx index df6cfe1b3..9a91a5c94 100644 --- a/client/src/common/components/protectRoute/ProtectRoute.jsx +++ b/client/src/common/components/protectRoute/ProtectRoute.jsx @@ -4,7 +4,7 @@ import { HStack, PinInput, PinInputField } from '@chakra-ui/react'; import { FiCheck } from '@react-icons/all-files/fi/FiCheck'; import PropTypes from 'prop-types'; -import { AppContext } from '../../../app/context/AppContext'; +import { AppContext } from '../../context/AppContext'; import style from './ProtectRoute.module.scss'; diff --git a/client/src/common/components/protectRoute/ProtectRoute.module.scss b/client/src/common/components/protectRoute/ProtectRoute.module.scss index 729a20bb2..ba417abd8 100644 --- a/client/src/common/components/protectRoute/ProtectRoute.module.scss +++ b/client/src/common/components/protectRoute/ProtectRoute.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/mixins' as *; +@use '../../../theme/main' as *; +@use '../../../theme/mixins' as *; .container { background: $bg-black; diff --git a/client/src/common/state/Empty.jsx b/client/src/common/components/state/Empty.jsx similarity index 100% rename from client/src/common/state/Empty.jsx rename to client/src/common/components/state/Empty.jsx diff --git a/client/src/common/state/Empty.module.scss b/client/src/common/components/state/Empty.module.scss similarity index 90% rename from client/src/common/state/Empty.module.scss rename to client/src/common/components/state/Empty.module.scss index dec63be38..95ad20e56 100644 --- a/client/src/common/state/Empty.module.scss +++ b/client/src/common/components/state/Empty.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../../theme/main' as *; .emptyContainer { width: 100%; diff --git a/client/src/common/components/views/Paginator.jsx b/client/src/common/components/views/Paginator.jsx index 4f6350412..0642e2a29 100644 --- a/client/src/common/components/views/Paginator.jsx +++ b/client/src/common/components/views/Paginator.jsx @@ -1,8 +1,8 @@ import React, { useEffect, useState } from 'react'; -import { useInterval } from 'app/hooks/useInterval'; +import { useInterval } from 'common/hooks/useInterval'; import PropTypes from 'prop-types'; -import Empty from '../../state/Empty'; +import Empty from '../state/Empty'; import TodayItem from './TodayItem'; diff --git a/client/src/common/components/views/Paginator.module.scss b/client/src/common/components/views/Paginator.module.scss index 5e155ced8..9f75b5672 100644 --- a/client/src/common/components/views/Paginator.module.scss +++ b/client/src/common/components/views/Paginator.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .entries { width: 100%; diff --git a/client/src/common/components/views/TitleCard.module.scss b/client/src/common/components/views/TitleCard.module.scss index c596eef1a..3dbc6e430 100644 --- a/client/src/common/components/views/TitleCard.module.scss +++ b/client/src/common/components/views/TitleCard.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .label { @include card-label; diff --git a/client/src/common/components/views/TitleSide.module.scss b/client/src/common/components/views/TitleSide.module.scss index 08a253b7f..292fe9ad6 100644 --- a/client/src/common/components/views/TitleSide.module.scss +++ b/client/src/common/components/views/TitleSide.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .label { @include card-label; diff --git a/client/src/app/context/AppContext.jsx b/client/src/common/context/AppContext.jsx similarity index 100% rename from client/src/app/context/AppContext.jsx rename to client/src/common/context/AppContext.jsx diff --git a/client/src/app/context/CollapseContext.jsx b/client/src/common/context/CollapseContext.jsx similarity index 100% rename from client/src/app/context/CollapseContext.jsx rename to client/src/common/context/CollapseContext.jsx diff --git a/client/src/app/context/CursorContext.jsx b/client/src/common/context/CursorContext.jsx similarity index 100% rename from client/src/app/context/CursorContext.jsx rename to client/src/common/context/CursorContext.jsx diff --git a/client/src/app/context/LocalEventSettingsContext.jsx b/client/src/common/context/LocalEventSettingsContext.jsx similarity index 100% rename from client/src/app/context/LocalEventSettingsContext.jsx rename to client/src/common/context/LocalEventSettingsContext.jsx diff --git a/client/src/app/context/LoggingContext.jsx b/client/src/common/context/LoggingContext.jsx similarity index 94% rename from client/src/app/context/LoggingContext.jsx rename to client/src/common/context/LoggingContext.jsx index 24f8cfe52..1a9b9cd7a 100644 --- a/client/src/app/context/LoggingContext.jsx +++ b/client/src/common/context/LoggingContext.jsx @@ -1,7 +1,7 @@ import React, { createContext, useCallback, useEffect, useState } from 'react'; -import { generateId } from '../../common/utils/generate_id'; -import { nowInMillis, stringFromMillis } from '../../common/utils/time'; +import { generateId } from '../utils/generate_id'; +import { nowInMillis, stringFromMillis } from '../utils/time'; import { useSocket } from './socketContext'; diff --git a/client/src/app/context/TableSettingsContext.jsx b/client/src/common/context/TableSettingsContext.jsx similarity index 100% rename from client/src/app/context/TableSettingsContext.jsx rename to client/src/common/context/TableSettingsContext.jsx diff --git a/client/src/app/context/socketContext.jsx b/client/src/common/context/socketContext.jsx similarity index 91% rename from client/src/app/context/socketContext.jsx rename to client/src/common/context/socketContext.jsx index 625521426..080ed2333 100644 --- a/client/src/app/context/socketContext.jsx +++ b/client/src/common/context/socketContext.jsx @@ -1,5 +1,5 @@ import React, { createContext, useContext, useEffect, useState } from 'react'; -import { serverURL } from 'app/api/apiConstants'; +import { serverURL } from 'common/api/apiConstants'; import io from 'socket.io-client'; const SocketContext = createContext([[], () => {}]); diff --git a/client/src/app/hooks/useFetch.js b/client/src/common/hooks/useFetch.js similarity index 100% rename from client/src/app/hooks/useFetch.js rename to client/src/common/hooks/useFetch.js diff --git a/client/src/app/hooks/useInterval.js b/client/src/common/hooks/useInterval.js similarity index 100% rename from client/src/app/hooks/useInterval.js rename to client/src/common/hooks/useInterval.js diff --git a/client/src/app/hooks/useLocalStorage.js b/client/src/common/hooks/useLocalStorage.js similarity index 100% rename from client/src/app/hooks/useLocalStorage.js rename to client/src/common/hooks/useLocalStorage.js diff --git a/client/src/app/hooks/useMutateEvents.js b/client/src/common/hooks/useMutateEvents.js similarity index 100% rename from client/src/app/hooks/useMutateEvents.js rename to client/src/common/hooks/useMutateEvents.js diff --git a/client/src/app/utils/__tests__/aliases.test.js b/client/src/common/utils/__tests__/aliases.test.js similarity index 100% rename from client/src/app/utils/__tests__/aliases.test.js rename to client/src/common/utils/__tests__/aliases.test.js diff --git a/client/src/app/utils/__tests__/math.test.js b/client/src/common/utils/__tests__/math.test.js similarity index 100% rename from client/src/app/utils/__tests__/math.test.js rename to client/src/common/utils/__tests__/math.test.js diff --git a/client/src/app/utils/aliases.js b/client/src/common/utils/aliases.js similarity index 100% rename from client/src/app/utils/aliases.js rename to client/src/common/utils/aliases.js diff --git a/client/src/app/entryValidator.js b/client/src/common/utils/entryValidator.js similarity index 100% rename from client/src/app/entryValidator.js rename to client/src/common/utils/entryValidator.js diff --git a/client/src/app/utils/math.js b/client/src/common/utils/math.js similarity index 100% rename from client/src/app/utils/math.js rename to client/src/common/utils/math.js diff --git a/client/src/features/FeatureWrapper.module.scss b/client/src/features/FeatureWrapper.module.scss index bfb658a8e..57f5f5639 100644 --- a/client/src/features/FeatureWrapper.module.scss +++ b/client/src/features/FeatureWrapper.module.scss @@ -1,4 +1,4 @@ -@use '../styles/main' as *; +@use '../theme/main' as *; .wrapper { background: $bg-black; diff --git a/client/src/features/control/__tests__/MessageControl.test.js b/client/src/features/control/__tests__/MessageControl.test.js index 4e1e888e4..f04c9ed23 100644 --- a/client/src/features/control/__tests__/MessageControl.test.js +++ b/client/src/features/control/__tests__/MessageControl.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import SocketProvider from 'app/context/socketContext'; +import SocketProvider from 'common/context/socketContext'; import MessageControl from '../message/MessageControl'; diff --git a/client/src/features/control/__tests__/PlaybackControl.test.js b/client/src/features/control/__tests__/PlaybackControl.test.js index 7c67a3b28..efa064528 100644 --- a/client/src/features/control/__tests__/PlaybackControl.test.js +++ b/client/src/features/control/__tests__/PlaybackControl.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import SocketProvider from 'app/context/socketContext'; +import SocketProvider from 'common/context/socketContext'; import PlaybackControl from '../playback/PlaybackControl'; diff --git a/client/src/features/control/message/MessageControl.jsx b/client/src/features/control/message/MessageControl.jsx index 9824a0a17..c3fdb79a1 100644 --- a/client/src/features/control/message/MessageControl.jsx +++ b/client/src/features/control/message/MessageControl.jsx @@ -3,7 +3,7 @@ import { IconButton } from '@chakra-ui/button'; import { Tooltip } from '@chakra-ui/tooltip'; import { IoMicOffOutline } from '@react-icons/all-files/io5/IoMicOffOutline'; import { IoMicSharp } from '@react-icons/all-files/io5/IoMicSharp'; -import { useSocket } from 'app/context/socketContext'; +import { useSocket } from 'common/context/socketContext'; import InputRow from './InputRow'; diff --git a/client/src/features/control/message/MessageControl.module.scss b/client/src/features/control/message/MessageControl.module.scss index c35cad3fd..72dd03a65 100644 --- a/client/src/features/control/message/MessageControl.module.scss +++ b/client/src/features/control/message/MessageControl.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/mixins' as *; +@use '../../../theme/main' as *; +@use '../../../theme/mixins' as *; .messageContainer, .onAirToggle { diff --git a/client/src/features/control/playback/PlaybackControl.jsx b/client/src/features/control/playback/PlaybackControl.jsx index 173387b9b..1e36b50ee 100644 --- a/client/src/features/control/playback/PlaybackControl.jsx +++ b/client/src/features/control/playback/PlaybackControl.jsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; -import { useSocket } from 'app/context/socketContext'; +import { useSocket } from 'common/context/socketContext'; import PlaybackButtons from './PlaybackButtons'; import PlaybackTimer from './PlaybackTimer'; diff --git a/client/src/features/control/playback/PlaybackControl.module.scss b/client/src/features/control/playback/PlaybackControl.module.scss index 0a1a532af..9807d7aa0 100644 --- a/client/src/features/control/playback/PlaybackControl.module.scss +++ b/client/src/features/control/playback/PlaybackControl.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/mixins' as *; +@use '../../../theme/main' as *; +@use '../../../theme/mixins' as *; .mainContainer { width: 100%; diff --git a/client/src/features/editors/BlockBlock/BlockBlock.module.scss b/client/src/features/editors/BlockBlock/BlockBlock.module.scss index 7caab45db..ba0edfe51 100644 --- a/client/src/features/editors/BlockBlock/BlockBlock.module.scss +++ b/client/src/features/editors/BlockBlock/BlockBlock.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; /* ============= COMMON ============= */ .block { diff --git a/client/src/features/editors/DelayBlock/DelayBlock.jsx b/client/src/features/editors/DelayBlock/DelayBlock.jsx index 1d985af71..70f5e41df 100644 --- a/client/src/features/editors/DelayBlock/DelayBlock.jsx +++ b/client/src/features/editors/DelayBlock/DelayBlock.jsx @@ -4,7 +4,7 @@ import { HStack } from '@chakra-ui/react'; import { FiCheck } from '@react-icons/all-files/fi/FiCheck'; import { FiMoreVertical } from '@react-icons/all-files/fi/FiMoreVertical'; import { IoRemove } from '@react-icons/all-files/io5/IoRemove'; -import DelayInput from 'common/input/DelayInput'; +import DelayInput from 'common/components/input/DelayInput'; import { millisToMinutes } from 'common/utils/dateConfig'; import PropTypes from 'prop-types'; diff --git a/client/src/features/editors/DelayBlock/DelayBlock.module.scss b/client/src/features/editors/DelayBlock/DelayBlock.module.scss index 1b5dfc65c..a58dc103d 100644 --- a/client/src/features/editors/DelayBlock/DelayBlock.module.scss +++ b/client/src/features/editors/DelayBlock/DelayBlock.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; /* ============= COMMON ============= */ diff --git a/client/src/features/editors/Editor.jsx b/client/src/features/editors/Editor.jsx index 4845a79bf..6310a859b 100644 --- a/client/src/features/editors/Editor.jsx +++ b/client/src/features/editors/Editor.jsx @@ -4,8 +4,8 @@ import { Box } from '@chakra-ui/layout'; import ErrorBoundary from 'common/components/errorBoundary/ErrorBoundary'; import ModalManager from 'features/modals/ModalManager'; -import { LocalEventSettingsProvider } from '../../app/context/LocalEventSettingsContext'; -import { LoggingProvider } from '../../app/context/LoggingContext'; +import { LocalEventSettingsProvider } from '../../common/context/LocalEventSettingsContext'; +import { LoggingProvider } from '../../common/context/LoggingContext'; import MenuBar from '../menu/MenuBar'; import styles from './Editor.module.scss'; diff --git a/client/src/features/editors/Editor.module.scss b/client/src/features/editors/Editor.module.scss index 8ee05e3ad..a20d7731e 100644 --- a/client/src/features/editors/Editor.module.scss +++ b/client/src/features/editors/Editor.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../theme/main' as *; .corner { display: none; diff --git a/client/src/features/editors/EntryBlock/EntryBlock.jsx b/client/src/features/editors/EntryBlock/EntryBlock.jsx index 4c88670ae..d0018f39a 100644 --- a/client/src/features/editors/EntryBlock/EntryBlock.jsx +++ b/client/src/features/editors/EntryBlock/EntryBlock.jsx @@ -3,7 +3,7 @@ import { Checkbox } from '@chakra-ui/react'; import { Tooltip } from '@chakra-ui/tooltip'; import PropTypes from 'prop-types'; -import { LocalEventSettingsContext } from '../../../app/context/LocalEventSettingsContext'; +import { LocalEventSettingsContext } from '../../../common/context/LocalEventSettingsContext'; import style from './EntryBlock.module.scss'; diff --git a/client/src/features/editors/EntryBlock/EntryBlock.module.scss b/client/src/features/editors/EntryBlock/EntryBlock.module.scss index 632e86ba3..903950bcb 100644 --- a/client/src/features/editors/EntryBlock/EntryBlock.module.scss +++ b/client/src/features/editors/EntryBlock/EntryBlock.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; @mixin when-visible() { opacity: 1; diff --git a/client/src/features/editors/EventBlock/CollapsedBlock.jsx b/client/src/features/editors/EventBlock/CollapsedBlock.jsx index 3f8fe05b8..d03aebd04 100644 --- a/client/src/features/editors/EventBlock/CollapsedBlock.jsx +++ b/client/src/features/editors/EventBlock/CollapsedBlock.jsx @@ -6,7 +6,7 @@ import PropTypes from 'prop-types'; import ActionButtons from '../../../common/components/buttons/ActionButtons'; import PublicIconBtn from '../../../common/components/buttons/PublicIconBtn'; import EventTimes from '../../../common/components/eventTimes/EventTimes'; -import EditableText from '../../../common/input/EditableText'; +import EditableText from '../../../common/components/input/EditableText'; import style from './EventBlock.module.scss'; diff --git a/client/src/features/editors/EventBlock/EventBlock.jsx b/client/src/features/editors/EventBlock/EventBlock.jsx index cf064f7a5..245c68d31 100644 --- a/client/src/features/editors/EventBlock/EventBlock.jsx +++ b/client/src/features/editors/EventBlock/EventBlock.jsx @@ -5,7 +5,7 @@ import { FiChevronUp } from '@react-icons/all-files/fi/FiChevronUp'; import { millisToMinutes } from 'common/utils/dateConfig'; import PropTypes from 'prop-types'; -import { CollapseContext } from '../../../app/context/CollapseContext'; +import { CollapseContext } from '../../../common/context/CollapseContext'; import CollapsedBlock from './CollapsedBlock'; import ExpandedBlock from './ExpandedBlock'; diff --git a/client/src/features/editors/EventBlock/EventBlock.module.scss b/client/src/features/editors/EventBlock/EventBlock.module.scss index 65c381c01..8a5c8bf69 100644 --- a/client/src/features/editors/EventBlock/EventBlock.module.scss +++ b/client/src/features/editors/EventBlock/EventBlock.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; /* ============= COMMON ============= */ .event { diff --git a/client/src/features/editors/EventBlock/ExpandedBlock.jsx b/client/src/features/editors/EventBlock/ExpandedBlock.jsx index 199c51cf5..80cf5c6e5 100644 --- a/client/src/features/editors/EventBlock/ExpandedBlock.jsx +++ b/client/src/features/editors/EventBlock/ExpandedBlock.jsx @@ -8,7 +8,7 @@ import ActionButtons from '../../../common/components/buttons/ActionButtons'; import PublicIconBtn from '../../../common/components/buttons/PublicIconBtn'; import TooltipLoadingActionBtn from '../../../common/components/buttons/TooltipLoadingActionBtn'; import EventTimesVertical from '../../../common/components/eventTimes/EventTimesVertical'; -import EditableText from '../../../common/input/EditableText'; +import EditableText from '../../../common/components/input/EditableText'; import style from './EventBlock.module.scss'; diff --git a/client/src/features/editors/list/EventList.jsx b/client/src/features/editors/list/EventList.jsx index 8a7da8518..4a99d5a4b 100644 --- a/client/src/features/editors/list/EventList.jsx +++ b/client/src/features/editors/list/EventList.jsx @@ -1,10 +1,10 @@ import React, { createRef, useCallback, useContext, useEffect, useState } from 'react'; import { DragDropContext, Droppable } from 'react-beautiful-dnd'; -import { useSocket } from 'app/context/socketContext'; -import Empty from 'common/state/Empty'; +import Empty from 'common/components/state/Empty'; +import { useSocket } from 'common/context/socketContext'; -import { CursorContext } from '../../../app/context/CursorContext'; -import { LocalEventSettingsContext } from '../../../app/context/LocalEventSettingsContext'; +import { CursorContext } from '../../../common/context/CursorContext'; +import { LocalEventSettingsContext } from '../../../common/context/LocalEventSettingsContext'; import EntryBlock from '../EntryBlock/EntryBlock'; import EventListItem from './EventListItem'; diff --git a/client/src/features/editors/list/EventListExport.jsx b/client/src/features/editors/list/EventListExport.jsx index bf98b2277..fad9d788a 100644 --- a/client/src/features/editors/list/EventListExport.jsx +++ b/client/src/features/editors/list/EventListExport.jsx @@ -2,9 +2,9 @@ import React from 'react'; import { Box } from '@chakra-ui/layout'; import { FiArrowUpRight } from '@react-icons/all-files/fi/FiArrowUpRight'; -import { CollapseProvider } from '../../../app/context/CollapseContext'; -import { CursorProvider } from '../../../app/context/CursorContext'; import ErrorBoundary from '../../../common/components/errorBoundary/ErrorBoundary'; +import { CollapseProvider } from '../../../common/context/CollapseContext'; +import { CursorProvider } from '../../../common/context/CursorContext'; import { handleLinks } from '../../../common/utils/linkUtils'; import EventListWrapper from './EventListWrapper'; diff --git a/client/src/features/editors/list/EventListItem.jsx b/client/src/features/editors/list/EventListItem.jsx index f9a10bb4b..5349b9434 100644 --- a/client/src/features/editors/list/EventListItem.jsx +++ b/client/src/features/editors/list/EventListItem.jsx @@ -1,8 +1,8 @@ import React, { memo, useCallback, useContext } from 'react'; import PropTypes from 'prop-types'; -import { LocalEventSettingsContext } from '../../../app/context/LocalEventSettingsContext'; -import { LoggingContext } from '../../../app/context/LoggingContext'; +import { LocalEventSettingsContext } from '../../../common/context/LocalEventSettingsContext'; +import { LoggingContext } from '../../../common/context/LoggingContext'; import BlockBlock from '../BlockBlock/BlockBlock'; import DelayBlock from '../DelayBlock/DelayBlock'; import EventBlock from '../EventBlock/EventBlock'; diff --git a/client/src/features/editors/list/EventListWrapper.jsx b/client/src/features/editors/list/EventListWrapper.jsx index 53b6b4904..c14559df9 100644 --- a/client/src/features/editors/list/EventListWrapper.jsx +++ b/client/src/features/editors/list/EventListWrapper.jsx @@ -1,6 +1,6 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { useMutation, useQueryClient } from 'react-query'; -import { EVENTS_TABLE } from 'app/api/apiConstants'; +import { EVENTS_TABLE } from 'common/api/apiConstants'; import { fetchAllEvents, requestApplyDelay, @@ -10,13 +10,13 @@ import { requestPost, requestPut, requestReorder, -} from 'app/api/eventsApi.js'; -import { useFetch } from 'app/hooks/useFetch.js'; -import Empty from 'common/state/Empty'; +} from 'common/api/eventsApi.js'; +import Empty from 'common/components/state/Empty'; +import { useFetch } from 'common/hooks/useFetch.js'; import EventListMenu from 'features/menu/EventListMenu.jsx'; -import { CollapseContext } from '../../../app/context/CollapseContext'; -import { LoggingContext } from '../../../app/context/LoggingContext'; +import { CollapseContext } from '../../../common/context/CollapseContext'; +import { LoggingContext } from '../../../common/context/LoggingContext'; import EventList from './EventList'; diff --git a/client/src/features/editors/list/List.module.scss b/client/src/features/editors/list/List.module.scss index 852c2ae7e..8aa563958 100644 --- a/client/src/features/editors/list/List.module.scss +++ b/client/src/features/editors/list/List.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/mixins' as *; +@use '../../../theme/main' as *; +@use '../../../theme/mixins' as *; .eventContainer { @include second-container; diff --git a/client/src/features/info/Info.jsx b/client/src/features/info/Info.jsx index be0f3e5c6..6d947a574 100644 --- a/client/src/features/info/Info.jsx +++ b/client/src/features/info/Info.jsx @@ -1,5 +1,5 @@ import React, { useEffect,useState } from 'react'; -import { useSocket } from 'app/context/socketContext'; +import { useSocket } from 'common/context/socketContext'; import InfoLogger from './InfoLogger'; import InfoNif from './InfoNif'; diff --git a/client/src/features/info/Info.module.scss b/client/src/features/info/Info.module.scss index 6999c20dc..fe1634c09 100644 --- a/client/src/features/info/Info.module.scss +++ b/client/src/features/info/Info.module.scss @@ -1,5 +1,5 @@ -@use '../../styles/main' as *; -@use '../../styles/mixins' as *; +@use '../../theme/main' as *; +@use '../../theme/mixins' as *; @mixin container { margin-top: 1em; diff --git a/client/src/features/info/InfoLogger.jsx b/client/src/features/info/InfoLogger.jsx index d276857fa..8145d71de 100644 --- a/client/src/features/info/InfoLogger.jsx +++ b/client/src/features/info/InfoLogger.jsx @@ -1,7 +1,7 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; -import { LoggingContext } from '../../app/context/LoggingContext'; import CollapseBar from '../../common/components/collapseBar/CollapseBar'; +import { LoggingContext } from '../../common/context/LoggingContext'; import style from './InfoLogger.module.scss'; diff --git a/client/src/features/info/InfoLogger.module.scss b/client/src/features/info/InfoLogger.module.scss index d9fb40961..40983fd5a 100644 --- a/client/src/features/info/InfoLogger.module.scss +++ b/client/src/features/info/InfoLogger.module.scss @@ -1,6 +1,6 @@ @use 'Info.module' as *; -@use '../../styles/main' as *; -@use '../../styles/mixins' as *; +@use '../../theme/main' as *; +@use '../../theme/mixins' as *; .container, .container__expanded{ diff --git a/client/src/features/info/InfoNif.jsx b/client/src/features/info/InfoNif.jsx index 56d45d7fa..60e2c1264 100644 --- a/client/src/features/info/InfoNif.jsx +++ b/client/src/features/info/InfoNif.jsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import { APP_TABLE } from 'app/api/apiConstants'; -import { getInfo, ontimePlaceholderInfo } from 'app/api/ontimeApi'; -import { useFetch } from 'app/hooks/useFetch'; +import { APP_TABLE } from 'common/api/apiConstants'; +import { getInfo, ontimePlaceholderInfo } from 'common/api/ontimeApi'; +import { useFetch } from 'common/hooks/useFetch'; import CollapseBar from '../../common/components/collapseBar/CollapseBar'; import { openLink } from '../../common/utils/linkUtils'; diff --git a/client/src/features/info/__tests__/Info.test.js b/client/src/features/info/__tests__/Info.test.js index 84f28f532..4bfae6d52 100644 --- a/client/src/features/info/__tests__/Info.test.js +++ b/client/src/features/info/__tests__/Info.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { QueryClient, QueryClientProvider } from 'react-query'; import { render, screen } from '@testing-library/react'; -import SocketProvider from 'app/context/socketContext'; +import SocketProvider from 'common/context/socketContext'; import Info from '../Info'; diff --git a/client/src/features/menu/EventListMenu.jsx b/client/src/features/menu/EventListMenu.jsx index 7320f3382..5e0cc7eca 100644 --- a/client/src/features/menu/EventListMenu.jsx +++ b/client/src/features/menu/EventListMenu.jsx @@ -7,8 +7,8 @@ import { IoCaretDown } from '@react-icons/all-files/io5/IoCaretDown'; import { IoCaretUp } from '@react-icons/all-files/io5/IoCaretUp'; import PropTypes from 'prop-types'; -import { CursorContext } from '../../app/context/CursorContext'; import TooltipActionBtn from '../../common/components/buttons/TooltipActionBtn'; +import { CursorContext } from '../../common/context/CursorContext'; import MenuActionButtons from './MenuActionButtons'; diff --git a/client/src/features/menu/MenuBar.jsx b/client/src/features/menu/MenuBar.jsx index 53954a229..feb859aff 100644 --- a/client/src/features/menu/MenuBar.jsx +++ b/client/src/features/menu/MenuBar.jsx @@ -7,13 +7,13 @@ import { FiMaximize } from '@react-icons/all-files/fi/FiMaximize'; import { FiMinimize } from '@react-icons/all-files/fi/FiMinimize'; import { FiSettings } from '@react-icons/all-files/fi/FiSettings'; import { FiUpload } from '@react-icons/all-files/fi/FiUpload'; -import { EVENTS_TABLE } from 'app/api/apiConstants'; -import { downloadEvents, uploadEvents } from 'app/api/ontimeApi'; +import { EVENTS_TABLE } from 'common/api/apiConstants'; +import { downloadEvents, uploadEvents } from 'common/api/ontimeApi'; import PropTypes from 'prop-types'; -import { LoggingContext } from '../../app/context/LoggingContext'; import QuitIconBtn from '../../common/components/buttons/QuitIconBtn'; import TooltipActionBtn from '../../common/components/buttons/TooltipActionBtn'; +import { LoggingContext } from '../../common/context/LoggingContext'; import style from './MenuBar.module.scss'; diff --git a/client/src/features/menu/MenuBar.module.scss b/client/src/features/menu/MenuBar.module.scss index a11bf57e7..19139e7ff 100644 --- a/client/src/features/menu/MenuBar.module.scss +++ b/client/src/features/menu/MenuBar.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../theme/main' as *; .gap { height: 1em; diff --git a/client/src/features/modals/AliasesModal.jsx b/client/src/features/modals/AliasesModal.jsx index b27983713..c6134cb39 100644 --- a/client/src/features/modals/AliasesModal.jsx +++ b/client/src/features/modals/AliasesModal.jsx @@ -7,13 +7,13 @@ import { Tooltip } from '@chakra-ui/tooltip'; import { IoInformationCircleOutline } from '@react-icons/all-files/io5/IoInformationCircleOutline'; import { IoRemove } from '@react-icons/all-files/io5/IoRemove'; import { IoSunny } from '@react-icons/all-files/io5/IoSunny'; -import { ALIASES } from 'app/api/apiConstants'; -import { useFetch } from 'app/hooks/useFetch'; +import { ALIASES } from 'common/api/apiConstants'; +import { useFetch } from 'common/hooks/useFetch'; -import { getAliases, postAliases } from '../../app/api/ontimeApi'; -import { viewerLocations } from '../../app/appConstants'; -import { LoggingContext } from '../../app/context/LoggingContext'; -import { validateAlias } from '../../app/utils/aliases'; +import { viewerLocations } from '../../appConstants'; +import { getAliases, postAliases } from '../../common/api/ontimeApi'; +import { LoggingContext } from '../../common/context/LoggingContext'; +import { validateAlias } from '../../common/utils/aliases'; import { handleLinks, host } from '../../common/utils/linkUtils'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/modals/AppSettingsModal.jsx b/client/src/features/modals/AppSettingsModal.jsx index 0d96a6182..57d137a30 100644 --- a/client/src/features/modals/AppSettingsModal.jsx +++ b/client/src/features/modals/AppSettingsModal.jsx @@ -4,13 +4,13 @@ import { ModalBody } from '@chakra-ui/modal'; import { Checkbox, FormControl, FormLabel, Input, PinInput, PinInputField } from '@chakra-ui/react'; import { FiEye } from '@react-icons/all-files/fi/FiEye'; import { FiX } from '@react-icons/all-files/fi/FiX'; -import { APP_SETTINGS } from 'app/api/apiConstants'; -import { getSettings, ontimePlaceholderSettings, postSettings } from 'app/api/ontimeApi'; -import { useFetch } from 'app/hooks/useFetch'; +import { APP_SETTINGS } from 'common/api/apiConstants'; +import { getSettings, ontimePlaceholderSettings, postSettings } from 'common/api/ontimeApi'; +import { useFetch } from 'common/hooks/useFetch'; -import { LocalEventSettingsContext } from '../../app/context/LocalEventSettingsContext'; -import { LoggingContext } from '../../app/context/LoggingContext'; import TooltipActionBtn from '../../common/components/buttons/TooltipActionBtn'; +import { LocalEventSettingsContext } from '../../common/context/LocalEventSettingsContext'; +import { LoggingContext } from '../../common/context/LoggingContext'; import { inputProps } from './modalHelper'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/modals/EventSettingsModal.jsx b/client/src/features/modals/EventSettingsModal.jsx index 0bee6a7c8..ae8f9130e 100644 --- a/client/src/features/modals/EventSettingsModal.jsx +++ b/client/src/features/modals/EventSettingsModal.jsx @@ -1,11 +1,11 @@ import React, { useCallback, useEffect, useState } from 'react'; import { ModalBody } from '@chakra-ui/modal'; import { FormLabel, Input, Textarea } from '@chakra-ui/react'; -import { EVENT_TABLE } from 'app/api/apiConstants'; -import { fetchEvent, postEvent } from 'app/api/eventApi'; -import { useFetch } from 'app/hooks/useFetch'; +import { EVENT_TABLE } from 'common/api/apiConstants'; +import { fetchEvent, postEvent } from 'common/api/eventApi'; +import { useFetch } from 'common/hooks/useFetch'; -import { eventPlaceholderSettings } from '../../app/api/ontimeApi'; +import { eventPlaceholderSettings } from '../../common/api/ontimeApi'; import { inputProps } from './modalHelper'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/modals/IntegrationSettingsModal.jsx b/client/src/features/modals/IntegrationSettingsModal.jsx index b246652de..5db92a445 100644 --- a/client/src/features/modals/IntegrationSettingsModal.jsx +++ b/client/src/features/modals/IntegrationSettingsModal.jsx @@ -2,11 +2,11 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { ModalBody } from '@chakra-ui/modal'; import { FormControl, FormLabel, Input, Switch } from '@chakra-ui/react'; import { FiInfo } from '@react-icons/all-files/fi/FiInfo'; -import { APP_TABLE } from 'app/api/apiConstants'; -import { getInfo, httpPlaceholder, ontimeVars, postInfo } from 'app/api/ontimeApi'; -import { useFetch } from 'app/hooks/useFetch'; +import { APP_TABLE } from 'common/api/apiConstants'; +import { getInfo, httpPlaceholder, ontimeVars, postInfo } from 'common/api/ontimeApi'; +import { useFetch } from 'common/hooks/useFetch'; -import { LoggingContext } from '../../app/context/LoggingContext'; +import { LoggingContext } from '../../common/context/LoggingContext'; import { inputProps } from './modalHelper'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/modals/Modals.module.scss b/client/src/features/modals/Modals.module.scss index a44c3b557..db09cb37f 100644 --- a/client/src/features/modals/Modals.module.scss +++ b/client/src/features/modals/Modals.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../theme/main' as *; //////////////////////////////////// main diff --git a/client/src/features/modals/OscSettingsModal.jsx b/client/src/features/modals/OscSettingsModal.jsx index 1e998bf3b..dcd082323 100644 --- a/client/src/features/modals/OscSettingsModal.jsx +++ b/client/src/features/modals/OscSettingsModal.jsx @@ -2,12 +2,12 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { ModalBody } from '@chakra-ui/modal'; import { FormControl, FormLabel, Input } from '@chakra-ui/react'; import { IoInformationCircleOutline } from '@react-icons/all-files/io5/IoInformationCircleOutline'; -import { OSC_SETTINGS } from 'app/api/apiConstants'; -import { getOSC, oscPlaceholderSettings, postOSC } from 'app/api/ontimeApi'; -import { useFetch } from 'app/hooks/useFetch'; +import { OSC_SETTINGS } from 'common/api/apiConstants'; +import { getOSC, oscPlaceholderSettings, postOSC } from 'common/api/ontimeApi'; +import { useFetch } from 'common/hooks/useFetch'; -import { LoggingContext } from '../../app/context/LoggingContext'; import EnableBtn from '../../common/components/buttons/EnableBtn'; +import { LoggingContext } from '../../common/context/LoggingContext'; import { inputProps, portInputProps } from './modalHelper'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/modals/TableOptionsModal.jsx b/client/src/features/modals/TableOptionsModal.jsx index d4bb90dbc..3be1d61f2 100644 --- a/client/src/features/modals/TableOptionsModal.jsx +++ b/client/src/features/modals/TableOptionsModal.jsx @@ -2,10 +2,10 @@ import React, { useCallback, useEffect, useState } from 'react'; import { ModalBody } from '@chakra-ui/modal'; import { Input } from '@chakra-ui/react'; import { IoInformationCircleOutline } from '@react-icons/all-files/io5/IoInformationCircleOutline'; -import { USERFIELDS } from 'app/api/apiConstants'; -import { useFetch } from 'app/hooks/useFetch'; +import { USERFIELDS } from 'common/api/apiConstants'; +import { useFetch } from 'common/hooks/useFetch'; -import { getUserFields, postUserFields, userFieldsPlaceholder } from '../../app/api/ontimeApi'; +import { getUserFields, postUserFields, userFieldsPlaceholder } from '../../common/api/ontimeApi'; import { handleLinks, host } from '../../common/utils/linkUtils'; import SubmitContainer from './SubmitContainer'; diff --git a/client/src/features/table/OntimeTable.jsx b/client/src/features/table/OntimeTable.jsx index c808b722f..5d1181abd 100644 --- a/client/src/features/table/OntimeTable.jsx +++ b/client/src/features/table/OntimeTable.jsx @@ -17,8 +17,8 @@ import { } from '@dnd-kit/sortable'; import PropTypes from 'prop-types'; -import { TableSettingsContext } from '../../app/context/TableSettingsContext'; -import { useLocalStorage } from '../../app/hooks/useLocalStorage'; +import { TableSettingsContext } from '../../common/context/TableSettingsContext'; +import { useLocalStorage } from '../../common/hooks/useLocalStorage'; import SortableCell from './tableElements/SortableCell'; import TableSettings from './tableElements/TableSettings'; diff --git a/client/src/features/table/ProtectedTable.jsx b/client/src/features/table/ProtectedTable.jsx index 77217382c..76724a738 100644 --- a/client/src/features/table/ProtectedTable.jsx +++ b/client/src/features/table/ProtectedTable.jsx @@ -1,7 +1,7 @@ import React from 'react'; -import { TableSettingsProvider } from '../../app/context/TableSettingsContext'; import ProtectRoute from '../../common/components/protectRoute/ProtectRoute'; +import { TableSettingsProvider } from '../../common/context/TableSettingsContext'; import TableWrapper from './TableWrapper'; diff --git a/client/src/features/table/Table.module.scss b/client/src/features/table/Table.module.scss index 3848bc1be..25c2ecc3f 100644 --- a/client/src/features/table/Table.module.scss +++ b/client/src/features/table/Table.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/main' as *; +@use '../../theme/main' as *; .tableWrapper, .tableWrapper__dark { diff --git a/client/src/features/table/TableHeader.jsx b/client/src/features/table/TableHeader.jsx index d35d1db6c..4520cb2ec 100644 --- a/client/src/features/table/TableHeader.jsx +++ b/client/src/features/table/TableHeader.jsx @@ -4,11 +4,11 @@ import { FiSettings } from '@react-icons/all-files/fi/FiSettings'; import { FiTarget } from '@react-icons/all-files/fi/FiTarget'; import { IoMoon } from '@react-icons/all-files/io5/IoMoon'; -import { EVENT_TABLE } from '../../app/api/apiConstants'; -import { fetchEvent } from '../../app/api/eventApi'; -import { useSocket } from '../../app/context/socketContext'; -import { TableSettingsContext } from '../../app/context/TableSettingsContext'; -import { useFetch } from '../../app/hooks/useFetch'; +import { EVENT_TABLE } from '../../common/api/apiConstants'; +import { fetchEvent } from '../../common/api/eventApi'; +import { useSocket } from '../../common/context/socketContext'; +import { TableSettingsContext } from '../../common/context/TableSettingsContext'; +import { useFetch } from '../../common/hooks/useFetch'; import { formatDisplay } from '../../common/utils/dateConfig'; import { stringFromMillis } from '../../common/utils/time'; diff --git a/client/src/features/table/TableWrapper.jsx b/client/src/features/table/TableWrapper.jsx index d2c0565f2..06a1902a0 100644 --- a/client/src/features/table/TableWrapper.jsx +++ b/client/src/features/table/TableWrapper.jsx @@ -1,12 +1,12 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; -import { EVENTS_TABLE, USERFIELDS } from '../../app/api/apiConstants'; -import { fetchAllEvents, requestPatch } from '../../app/api/eventsApi'; -import { getUserFields } from '../../app/api/ontimeApi'; -import { useSocket } from '../../app/context/socketContext'; -import { TableSettingsContext } from '../../app/context/TableSettingsContext'; -import { useFetch } from '../../app/hooks/useFetch'; -import useMutateEvents from '../../app/hooks/useMutateEvents'; +import { EVENTS_TABLE, USERFIELDS } from '../../common/api/apiConstants'; +import { fetchAllEvents, requestPatch } from '../../common/api/eventsApi'; +import { getUserFields } from '../../common/api/ontimeApi'; +import { useSocket } from '../../common/context/socketContext'; +import { TableSettingsContext } from '../../common/context/TableSettingsContext'; +import { useFetch } from '../../common/hooks/useFetch'; +import useMutateEvents from '../../common/hooks/useMutateEvents'; import OntimeTable from './OntimeTable'; import TableHeader from './TableHeader'; diff --git a/client/src/features/table/tableElements/EditableCell.jsx b/client/src/features/table/tableElements/EditableCell.jsx index 757f6ee95..38b08d023 100644 --- a/client/src/features/table/tableElements/EditableCell.jsx +++ b/client/src/features/table/tableElements/EditableCell.jsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import PropTypes from 'prop-types'; -import { AutoTextArea } from '../../../common/input/AutoTextArea'; +import { AutoTextArea } from '../../../common/components/input/AutoTextArea'; /** * Shamelessly copied from react-table docs diff --git a/client/src/features/viewers/ViewWrapper.jsx b/client/src/features/viewers/ViewWrapper.jsx index 71b8b656d..2af2cddf9 100644 --- a/client/src/features/viewers/ViewWrapper.jsx +++ b/client/src/features/viewers/ViewWrapper.jsx @@ -1,10 +1,10 @@ /* eslint-disable react/display-name */ import React, { useEffect, useState } from 'react'; -import { EVENT_TABLE, EVENTS_TABLE } from 'app/api/apiConstants'; -import { fetchEvent } from 'app/api/eventApi'; -import { fetchAllEvents } from 'app/api/eventsApi'; -import { useSocket } from 'app/context/socketContext'; -import { useFetch } from 'app/hooks/useFetch'; +import { EVENT_TABLE, EVENTS_TABLE } from 'common/api/apiConstants'; +import { fetchEvent } from 'common/api/eventApi'; +import { fetchAllEvents } from 'common/api/eventsApi'; +import { useSocket } from 'common/context/socketContext'; +import { useFetch } from 'common/hooks/useFetch'; import { stringFromMillis } from '../../common/utils/time'; diff --git a/client/src/features/viewers/backstage/StageManager.module.scss b/client/src/features/viewers/backstage/StageManager.module.scss index 8bd053af4..2c86f9dc4 100644 --- a/client/src/features/viewers/backstage/StageManager.module.scss +++ b/client/src/features/viewers/backstage/StageManager.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/viewers' as *; +@use '../../../theme/main' as *; +@use '../../../theme/viewers' as *; .container__gray, .container__grayFinished { diff --git a/client/src/features/viewers/countdown/Countdown.jsx b/client/src/features/viewers/countdown/Countdown.jsx index a7ea4d3a0..7fb997aa9 100644 --- a/client/src/features/viewers/countdown/Countdown.jsx +++ b/client/src/features/viewers/countdown/Countdown.jsx @@ -3,7 +3,7 @@ import { Link, useSearchParams } from 'react-router-dom'; import PropTypes from 'prop-types'; import NavLogo from '../../../common/components/nav/NavLogo'; -import Empty from '../../../common/state/Empty'; +import Empty from '../../../common/components/state/Empty'; import { formatDisplay, millisToSeconds } from '../../../common/utils/dateConfig'; import getDelayTo from '../../../common/utils/getDelayTo'; import { stringFromMillis } from '../../../common/utils/time'; diff --git a/client/src/features/viewers/countdown/Countdown.module.scss b/client/src/features/viewers/countdown/Countdown.module.scss index 834c3156d..94e478a7f 100644 --- a/client/src/features/viewers/countdown/Countdown.module.scss +++ b/client/src/features/viewers/countdown/Countdown.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .container { margin: 0; diff --git a/client/src/features/viewers/foh/Public.module.scss b/client/src/features/viewers/foh/Public.module.scss index 104a3f5a0..8c7e8b79a 100644 --- a/client/src/features/viewers/foh/Public.module.scss +++ b/client/src/features/viewers/foh/Public.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/viewers' as *; +@use '../../../theme/main' as *; +@use '../../../theme/viewers' as *; .container__gray, .container__grayFinished { diff --git a/client/src/features/viewers/production/Pip.module.scss b/client/src/features/viewers/production/Pip.module.scss index d42657986..f219ce49d 100644 --- a/client/src/features/viewers/production/Pip.module.scss +++ b/client/src/features/viewers/production/Pip.module.scss @@ -1,5 +1,5 @@ -@use '../../../styles/main' as *; -@use '../../../styles/viewers' as *; +@use '../../../theme/main' as *; +@use '../../../theme/viewers' as *; .container__gray, .container__grayFinished { diff --git a/client/src/features/viewers/timer/MinimalTimer.module.scss b/client/src/features/viewers/timer/MinimalTimer.module.scss index f06f0248b..1ad79ccb2 100644 --- a/client/src/features/viewers/timer/MinimalTimer.module.scss +++ b/client/src/features/viewers/timer/MinimalTimer.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .container, .containerFinished { diff --git a/client/src/features/viewers/timer/Timer.module.scss b/client/src/features/viewers/timer/Timer.module.scss index ba23ae2f5..fae72a32b 100644 --- a/client/src/features/viewers/timer/Timer.module.scss +++ b/client/src/features/viewers/timer/Timer.module.scss @@ -1,4 +1,4 @@ -@use '../../../styles/main' as *; +@use '../../../theme/main' as *; .container__gray, .container__grayFinished { diff --git a/client/src/index.js b/client/src/index.js deleted file mode 100644 index 745580476..000000000 --- a/client/src/index.js +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; -import { QueryClient, QueryClientProvider } from 'react-query'; -import { BrowserRouter } from 'react-router-dom'; -import { ChakraProvider } from '@chakra-ui/react'; - -import { AppContextProvider } from './app/context/AppContext'; -import SocketProvider from './app/context/socketContext'; -import theme from './theme/theme'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; - -import './index.scss'; - -// Load Open Sans typeface -require('typeface-open-sans'); -const queryClient = new QueryClient(); - -const container = document.getElementById('root'); -// create a root -const root = createRoot(container); - -root.render( - - - - - - - - - - - - - -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/client/src/index.jsx b/client/src/index.jsx new file mode 100644 index 000000000..dad35fe20 --- /dev/null +++ b/client/src/index.jsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './App'; + +import './index.scss'; + +const container = document.getElementById('root'); +// create a root +const root = createRoot(container); + +root.render( + + + +); diff --git a/client/src/index.scss b/client/src/index.scss index cea7ef3b7..a854960ef 100644 --- a/client/src/index.scss +++ b/client/src/index.scss @@ -1,15 +1,47 @@ -@use './styles/main'; +@use './theme/main'; -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; +* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + scrollbar-color: rgba(255, 255, 255, 0.15) rgba(255, 255, 255, 0.01); + scrollbar-width: thin; } -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; +body, +html, +.App { + margin: 0 auto; + overflow: hidden; + overflow: clip; + height: 100vh; + -webkit-user-select: none; + user-select: none; + -webkit-app-region: drag; +} + +option { + color: black; +} + +/* width */ +::-webkit-scrollbar { + width: 0.5rem; + height: 0.5rem; +} + +/* Track */ +::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.01); + border-radius: 4px; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.15); + border-radius: 4px; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.35); } diff --git a/client/src/logo.svg b/client/src/logo.svg deleted file mode 100644 index 9dfc1c058..000000000 --- a/client/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/src/reportWebVitals.js b/client/src/reportWebVitals.js deleted file mode 100644 index 5253d3ad9..000000000 --- a/client/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/client/src/styles/_main.scss b/client/src/theme/_main.scss similarity index 100% rename from client/src/styles/_main.scss rename to client/src/theme/_main.scss diff --git a/client/src/styles/_mixins.scss b/client/src/theme/_mixins.scss similarity index 96% rename from client/src/styles/_mixins.scss rename to client/src/theme/_mixins.scss index 8938324a8..bacbcfcfb 100644 --- a/client/src/styles/_mixins.scss +++ b/client/src/theme/_mixins.scss @@ -1,4 +1,4 @@ -@use "./main" as *; +@use "main" as *; //////////////////////////////////// general app elements diff --git a/client/src/styles/_viewers.scss b/client/src/theme/_viewers.scss similarity index 99% rename from client/src/styles/_viewers.scss rename to client/src/theme/_viewers.scss index 65910d109..bd3f0cc80 100644 --- a/client/src/styles/_viewers.scss +++ b/client/src/theme/_viewers.scss @@ -1,4 +1,4 @@ -@use './main' as *; +@use 'main' as *; @mixin viewer-container { margin: 0; diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 9e1fcecef..000000000 --- a/yarn.lock +++ /dev/null @@ -1,567 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@electron/get@^1.13.0": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368" - integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - semver "^6.2.0" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^3.0.0" - global-tunnel-ng "^2.7.1" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/node@^14.6.2": - version "14.17.32" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.32.tgz#2ca61c9ef8c77f6fa1733be9e623ceb0d372ad96" - integrity sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ== - -boolean@^3.0.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435" - integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w== - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -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== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -electron@^15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-15.3.0.tgz#f9803c5a05b2dac12efc6d4203492c7e204b4819" - integrity sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg== - dependencies: - "@electron/get" "^1.13.0" - "@types/node" "^14.6.2" - extract-zip "^1.0.3" - -encodeurl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - 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== - dependencies: - once "^1.4.0" - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -global-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" - integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== - dependencies: - boolean "^3.0.1" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== - dependencies: - define-properties "^1.1.3" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -lodash@^4.17.10: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -readable-stream@^2.2.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -roarr@^2.15.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" - integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== - dependencies: - boolean "^3.0.1" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0"