diff --git a/.eslintrc b/.eslintrc index b6a3abf2..8eee0d1b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,22 +1,3 @@ { - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:react-hooks/recommended", - "plugin:react/recommended", - "plugin:import/recommended", - "plugin:import/typescript", - "plugin:prettier/recommended" - ], - "rules": { - "@typescript-eslint/consistent-type-imports": "error" - }, - "settings": { - "react": { - "version": "detect" - } - } + "extends": ["@verypossible/eslint-config/react"] } diff --git a/README.md b/README.md index ac27b250..aa6d233a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Meshtastic.js +# Meshtastic Web [![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/meshtastic/meshtastic-web) diff --git a/package.json b/package.json index 5916f1fb..727a9b0c 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,11 @@ "lint": "eslint 'src/**/*.{ts,tsx}'" }, "dependencies": { - "@headlessui/react": "^1.3.0", + "@headlessui/react": "^1.4.0", "@heroicons/react": "^1.0.1", "@meshtastic/meshtasticjs": "^0.6.16", "@reduxjs/toolkit": "^1.6.0", "boring-avatars": "^1.5.8", - "framer-motion": "^4.1.17", "i18next": "^20.3.5", "i18next-browser-languagedetector": "^6.1.2", "react": "^17.0.2", @@ -24,30 +23,34 @@ "react-flags-select": "^2.1.2", "react-hook-form": "^7.9.0", "react-i18next": "^11.11.4", - "react-redux": "^7.2.4" + "react-redux": "^7.2.4", + "type-route": "^0.6.0", + "use-breakpoint": "^2.0.1", + "yarn": "^1.22.11" }, "devDependencies": { "@snowpack/plugin-dotenv": "^2.0.5", "@snowpack/plugin-postcss": "^1.4.3", "@snowpack/plugin-react-refresh": "^2.5.0", "@snowpack/plugin-typescript": "^1.2.0", - "@types/eslint": "^7.2.13", "@types/react": "^17.0.13", "@types/react-dom": "^17.0.8", "@types/react-redux": "^7.1.16", "@types/snowpack-env": "^2.3.3", - "@typescript-eslint/eslint-plugin": "^4.28.1", - "@typescript-eslint/parser": "^4.28.1", + "@typescript-eslint/eslint-plugin": "^4.29.1", + "@typescript-eslint/parser": "^4.29.1", + "@verypossible/eslint-config": "^1.6.0", "autoprefixer": "^10.2.6", - "eslint": "^7.29.0", + "babel-plugin-module-resolver": "^4.1.0", + "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.23.4", - "eslint-plugin-prettier": "^3.4.0", + "eslint-import-resolver-babel-module": "^5.3.1", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.24.0", "eslint-plugin-react": "^7.24.0", "eslint-plugin-react-hooks": "^4.2.0", "gzipper": "^5.0.0", "postcss": "^8.3.5", - "postcss-cli": "^8.3.1", "prettier": "^2.3.2", "snowpack": "^3.7.1", "tailwindcss": "^2.2.4", diff --git a/postcss.config.js b/postcss.config.js index 33ad091d..12a703d9 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -3,4 +3,4 @@ module.exports = { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/public/Mesh_Logo_Black.svg b/public/Mesh_Logo_Black.svg new file mode 100644 index 00000000..e0f9bb19 --- /dev/null +++ b/public/Mesh_Logo_Black.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/Mesh_Logo_White.svg b/public/Mesh_Logo_White.svg new file mode 100644 index 00000000..b1bcd575 --- /dev/null +++ b/public/Mesh_Logo_White.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/index.html b/public/index.html index e772d911..e3678126 100644 --- a/public/index.html +++ b/public/index.html @@ -8,13 +8,27 @@ + + + + + - + - Snowpack App + Meshtastic Web
diff --git a/snowpack.config.mjs b/snowpack.config.mjs index 388dbafd..9f212c34 100644 --- a/snowpack.config.mjs +++ b/snowpack.config.mjs @@ -16,6 +16,16 @@ export default { }, ], ], + alias: { + // Type 1: Package Import Alias + // "lodash": "lodash-es", + // Type 2: Local Directory Import Alias (relative to cwd) + '@app': './src', + '@pages': './src/pages', + '@components': './src/components', + '@core': './src/core', + '@static': './src/static', + }, routes: [ /* Enable an SPA Fallback in development: */ // {"match": "routes", "src": ".*", "dest": "/index.html"}, diff --git a/src/App.tsx b/src/App.tsx index d26b1136..efe4bbc7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,37 +1,58 @@ import React from 'react'; -import { Protobuf, SettingsManager, Types } from '@meshtastic/meshtasticjs'; - -import { Header } from './components/Header'; -import { connection } from './connection'; -import { useAppDispatch } from './hooks/redux'; -import { Main } from './Main'; +import { useAppDispatch, useAppSelector } from '@app/hooks/redux'; +import { DeviceStatusDropdown } from '@components/menu/buttons/DeviceStatusDropdown'; +import { MobileNavToggle } from '@components/menu/buttons/MobileNavToggle'; +import { ThemeToggle } from '@components/menu/buttons/ThemeToggle'; +import { Logo } from '@components/menu/Logo'; +import { MobileNav } from '@components/menu/MobileNav'; +import { Navigation } from '@components/menu/Navigation'; +import { connection } from '@core/connection'; +import { useRoute } from '@core/router'; import { + ackMessage, addChannel, + addMessage, addNode, setDeviceStatus, setLastMeshInterraction, setMyNodeInfo, setPreferences, setReady, -} from './slices/meshtasticSlice'; +} from '@core/slices/meshtasticSlice'; +import { Protobuf, SettingsManager, Types } from '@meshtastic/meshtasticjs'; +import { About } from '@pages/About'; +import { Messages } from '@pages/Messages'; +import { Nodes } from '@pages/Nodes/Index'; +import { Settings } from '@pages/settings/Index'; const App = (): JSX.Element => { const dispatch = useAppDispatch(); + const route = useRoute(); + + const myNodeInfo = useAppSelector((state) => state.meshtastic.myNodeInfo); + const darkMode = useAppSelector((state) => state.app.darkMode); + const hostOverrideEnabled = useAppSelector( + (state) => state.meshtastic.hostOverrideEnabled, + ); + const hostOverride = useAppSelector((state) => state.meshtastic.hostOverride); React.useEffect(() => { SettingsManager.debugMode = Protobuf.LogRecord_Level.TRACE; - connection.connect({ - address: - import.meta.env.NODE_ENV === 'production' - ? window.location.hostname - : import.meta.env.SNOWPACK_PUBLIC_DEVICE_IP, + void connection.connect({ + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + address: hostOverrideEnabled + ? hostOverride + : import.meta.env.NODE_ENV === 'production' + ? window.location.hostname + : import.meta.env.SNOWPACK_PUBLIC_DEVICE_IP ?? + 'http://meshtastic.local', receiveBatchRequests: false, tls: false, fetchInterval: 2000, }); - }, []); + }, [hostOverrideEnabled, hostOverride]); React.useEffect(() => { connection.onDeviceStatus.subscribe((status) => { @@ -40,6 +61,9 @@ const App = (): JSX.Element => { if (status === Types.DeviceStatusEnum.DEVICE_CONFIGURED) { dispatch(setReady(true)); } + if (status === Types.DeviceStatusEnum.DEVICE_DISCONNECTED) { + dispatch(setReady(false)); + } }); connection.onMyNodeInfo.subscribe((nodeInfo) => { @@ -70,12 +94,71 @@ const App = (): JSX.Element => { connection.onMeshHeartbeat.subscribe((date) => dispatch(setLastMeshInterraction(date.getTime())), ); - }, [dispatch]); + + connection.onTextPacket.subscribe((message) => { + dispatch( + addMessage({ + message: message, + ack: message.packet.from !== myNodeInfo.myNodeNum, + isSender: message.packet.from === myNodeInfo.myNodeNum, + received: new Date(message.packet.rxTime), + }), + ); + }); + + connection.onRoutingPacket.subscribe((routingPacket) => { + if (routingPacket.packet.payloadVariant.oneofKind === 'decoded') { + dispatch( + ackMessage(routingPacket.packet.payloadVariant.decoded.requestId), + ); + } + }); + + return (): void => { + connection.onDeviceStatus.cancelAll(); + connection.onMyNodeInfo.cancelAll(); + connection.onNodeInfoPacket.cancelAll(); + connection.onAdminPacket.cancelAll(); + connection.onMeshHeartbeat.cancelAll(); + connection.onTextPacket.cancelAll(); + connection.onRoutingPacket.cancelAll(); + }; + }, [dispatch, myNodeInfo.myNodeNum]); return ( -
-
-
+
+
+
+
+
+
+ +
+ + +
+ + {/* */} + +
+
+ +
+
+ + +
+
+ {route.name === 'messages' && } + {route.name === 'nodes' && } + {route.name === 'settings' && } + {route.name === 'about' && } + {route.name === false && 'Not Found'} +
+
+
); }; diff --git a/src/Main.tsx b/src/Main.tsx deleted file mode 100644 index 8b9acb89..00000000 --- a/src/Main.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React from 'react'; - -import { useTranslation } from 'react-i18next'; - -import type { Types } from '@meshtastic/meshtasticjs'; - -import { ChatMessage } from './components/ChatMessage'; -import { MessageBox } from './components/MessageBox'; -import { Sidebar } from './components/Sidebar'; -import { connection } from './connection'; - -export const Main = (): JSX.Element => { - const [messages, setMessages] = React.useState< - { message: Types.TextPacket; ack: boolean }[] - >([]); - const { t } = useTranslation(); - - React.useEffect(() => { - connection.onTextPacket.subscribe((message) => { - setMessages((messages) => [ - ...messages, - { message: message, ack: false }, - ]); - }); - }, []); - - React.useEffect(() => { - connection.onRoutingPacket.subscribe((routingPacket) => { - setMessages( - messages.map((message) => { - return routingPacket.packet.payloadVariant.oneofKind === 'decoded' && - message.message.packet.id === - routingPacket.packet.payloadVariant.decoded.requestId - ? { - ack: true, - message: message.message, - } - : message; - }), - ); - }); - }, [messages]); - - return ( -
-
-
- {messages.length ? ( - messages.map((message, Main) => ( - - )) - ) : ( -
- {t('placeholder.no_messages')} -
- )} -
- -
- -
- ); -}; diff --git a/src/components/ChatMessage.tsx b/src/components/ChatMessage.tsx deleted file mode 100644 index 83e172c8..00000000 --- a/src/components/ChatMessage.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; - -import Avatar from 'boring-avatars'; - -import { - CheckCircleIcon, - DotsCircleHorizontalIcon, -} from '@heroicons/react/outline'; -import type { Types } from '@meshtastic/meshtasticjs'; - -import { useAppSelector } from '../hooks/redux'; - -interface ChatMessageProps { - message: { message: Types.TextPacket; ack: boolean }; -} - -export const ChatMessage = (props: ChatMessageProps): JSX.Element => { - const myNodeInfo = useAppSelector((state) => state.meshtastic.myNodeInfo); - const nodes = useAppSelector((state) => state.meshtastic.nodes); - - const node = nodes.find((node) => { - return node.num === props.message.message.packet.from; - }); - - return ( -
- -
- -
Loading
-
- } - > -
-
-
{node?.user?.longName ?? 'UNK'}
-

-

-
- {new Date( - props.message.message.packet.rxTime > 0 - ? props.message.message.packet.rxTime - : Date.now(), - ).toLocaleString()} -
-
-
- {props.message.message.data} - {node?.num === myNodeInfo.myNodeNum && - (props.message.ack ? ( - - ) : ( - - ))} -
-
- -
-
- ); -}; diff --git a/src/components/Header.tsx b/src/components/Header.tsx deleted file mode 100644 index 22498c2f..00000000 --- a/src/components/Header.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react'; - -import { - DeviceMobileIcon, - StatusOfflineIcon, - StatusOnlineIcon, -} from '@heroicons/react/outline'; -import { Types } from '@meshtastic/meshtasticjs'; - -import { useAppSelector } from '../hooks/redux'; -import { Logo } from './Logo'; - -export const Header = (): JSX.Element => { - const deviceStatus = useAppSelector((state) => state.meshtastic.deviceStatus); - const ready = useAppSelector((state) => state.meshtastic.ready); - const lastMeshInterraction = useAppSelector( - (state) => state.meshtastic.lastMeshInterraction, - ); - - return ( - - ); -}; diff --git a/src/components/Logo.tsx b/src/components/Logo.tsx deleted file mode 100644 index eb31f6a9..00000000 --- a/src/components/Logo.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react'; - -export const Logo = (): JSX.Element => { - return ( - - - - - - - - - - - - ESHT - - - - - - - - - - - ST - - - - - C - - - - - - ); -}; diff --git a/src/components/MessageBox.tsx b/src/components/MessageBox.tsx deleted file mode 100644 index 0905a32e..00000000 --- a/src/components/MessageBox.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import React from 'react'; - -import { motion } from 'framer-motion'; -import { useTranslation } from 'react-i18next'; - -import { MenuIcon, PaperAirplaneIcon } from '@heroicons/react/outline'; - -import { connection } from '../connection'; -import { useAppDispatch, useAppSelector } from '../hooks/redux'; -import { toggleSidebar } from '../slices/appSlice'; - -export const MessageBox = (): JSX.Element => { - const ready = useAppSelector((state) => state.meshtastic.ready); - const [currentMessage, setCurrentMessage] = React.useState(''); - const sendMessage = () => { - if (ready) { - connection.sendText(currentMessage, undefined, true); - setCurrentMessage(''); - } - }; - const { t } = useTranslation(); - const dispatch = useAppDispatch(); - - return ( -
- { - dispatch(toggleSidebar()); - }} - > - - -
{ - e.preventDefault(); - sendMessage(); - }} - > - {ready} - { - setCurrentMessage(e.target.value); - }} - className={`p-3 placeholder-gray-400 text-gray-700 relative rounded-3xl border shadow-md focus:outline-none w-full pr-10 ${ - ready ? 'cursor-text' : 'cursor-not-allowed' - }`} - /> - - - -
-
- ); -}; diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx deleted file mode 100644 index a2af360f..00000000 --- a/src/components/Sidebar.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from 'react'; - -import { AnimatePresence, motion } from 'framer-motion'; - -import { useAppSelector } from '../hooks/redux'; -import { Channels } from './Sidebar/Channels/Index'; -import { Device } from './Sidebar/Device/Index'; -import { Nodes } from './Sidebar/Nodes/Index'; -import { UI } from './Sidebar/UI/Index'; - -export const Sidebar = (): JSX.Element => { - const sidebarOpen = useAppSelector((state) => state.app.sidebarOpen); - - return ( - - {sidebarOpen && ( - - - - -
- -
- )} -
- ); -}; diff --git a/src/components/Sidebar/Channels/Channel.tsx b/src/components/Sidebar/Channels/Channel.tsx deleted file mode 100644 index 3ee9366c..00000000 --- a/src/components/Sidebar/Channels/Channel.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import React from 'react'; - -import { Disclosure } from '@headlessui/react'; -import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/outline'; -import { Protobuf } from '@meshtastic/meshtasticjs'; - -export interface ChannelProps { - channel: Protobuf.Channel; -} - -export const Channel = (props: ChannelProps): JSX.Element => { - return ( - - {({ open }) => ( - <> - -
- {open ? ( - - ) : ( - - )} - {props.channel.index} -{' '} - {Protobuf.Channel_Role[props.channel.role]} -
-
- -
-
-

Bandwidth:

- - {props.channel.settings?.bandwidth} - -
- -
-

Channel Number:

- - {props.channel.settings?.channelNum} - -
- -
-

Coding Rate:

- - {props.channel.settings?.codingRate} - -
- -
-

ID:

- - {props.channel.settings?.id} - -
- -
-

Modem Config:

- - {props.channel.settings?.modemConfig - ? Protobuf.ChannelSettings_ModemConfig[ - props.channel.settings.modemConfig - ] - : null} - -
- -
-

Name:

- - {props.channel.settings?.name} - -
- -
-

PSK:

- - {props.channel.settings?.psk.toLocaleString()} - -
- -
-

Spread Factor:

- - {props.channel.settings?.spreadFactor} - -
- -
-

Tx Power:

- - {props.channel.settings?.txPower} - -
- -
-

Uplink:

- - {props.channel.settings?.uplinkEnabled ? 'true' : 'false'} - -
-
-

Downlink:

- - {props.channel.settings?.downlinkEnabled ? 'true' : 'false'} - -
-
-
- - )} -
- ); -}; diff --git a/src/components/Sidebar/Channels/ChannelList.tsx b/src/components/Sidebar/Channels/ChannelList.tsx deleted file mode 100644 index 5782336d..00000000 --- a/src/components/Sidebar/Channels/ChannelList.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { Protobuf } from '@meshtastic/meshtasticjs'; - -import { useAppSelector } from '../../../hooks/redux'; -import { Channel } from './Channel'; - -export const ChannelList = (): JSX.Element => { - const channels = useAppSelector((state) => state.meshtastic.channels); - - return ( - <> - {channels.map((channel, index) => { - if (channel.role !== Protobuf.Channel_Role.DISABLED) - return ; - })} - - ); -}; diff --git a/src/components/Sidebar/Channels/Index.tsx b/src/components/Sidebar/Channels/Index.tsx deleted file mode 100644 index 05521d9a..00000000 --- a/src/components/Sidebar/Channels/Index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -import { useTranslation } from 'react-i18next'; - -import { HashtagIcon } from '@heroicons/react/outline'; - -import { Dropdown } from '../../basic/Dropdown'; -import { ChannelList } from './ChannelList'; - -export const Channels = (): JSX.Element => { - const { t } = useTranslation(); - return ( - } - title={t('settings.channel')} - content={} - fallbackMessage={'Loading...'} - /> - ); -}; diff --git a/src/components/Sidebar/Device/Index.tsx b/src/components/Sidebar/Device/Index.tsx deleted file mode 100644 index 75927fee..00000000 --- a/src/components/Sidebar/Device/Index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -import { useTranslation } from 'react-i18next'; - -import { AdjustmentsIcon } from '@heroicons/react/outline'; - -import { Dropdown } from '../../basic/Dropdown'; -import { Settings } from './Settings'; - -export const Device = (): JSX.Element => { - const { t } = useTranslation(); - return ( - } - title={t('settings.device')} - content={} - fallbackMessage={'Loading...'} - /> - ); -}; diff --git a/src/components/Sidebar/Device/Settings.tsx b/src/components/Sidebar/Device/Settings.tsx deleted file mode 100644 index 422ba6c0..00000000 --- a/src/components/Sidebar/Device/Settings.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React from 'react'; - -import { useForm } from 'react-hook-form'; -import { useTranslation } from 'react-i18next'; - -import { SaveIcon } from '@heroicons/react/outline'; -import { Protobuf } from '@meshtastic/meshtasticjs'; - -import { connection } from '../../../connection'; -import { useAppSelector } from '../../../hooks/redux'; - -export const Settings = (): JSX.Element => { - const { t } = useTranslation(); - const preferences = useAppSelector((state) => state.meshtastic.preferences); - - const { register, handleSubmit } = - useForm({ - defaultValues: preferences, - }); - - const onSubmit = handleSubmit((data) => connection.setPreferences(data)); - return ( -
-
-
{t('strings.device_region')}
-
- -
-
-
-
{t('strings.wifi_ssid')}
-
- -
-
-
-
{t('strings.wifi_psk')}
-
- -
-
-
- -
-
- ); -}; diff --git a/src/components/Sidebar/Nodes/Index.tsx b/src/components/Sidebar/Nodes/Index.tsx deleted file mode 100644 index 82dd606a..00000000 --- a/src/components/Sidebar/Nodes/Index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -import { useTranslation } from 'react-i18next'; - -import { UsersIcon } from '@heroicons/react/outline'; - -import { Dropdown } from '../../basic/Dropdown'; -import { NodeList } from './NodeList'; - -export const Nodes = (): JSX.Element => { - const { t } = useTranslation(); - return ( - } - title={t('strings.nodes')} - content={} - fallbackMessage={t('placeholder.no_messages')} - /> - ); -}; diff --git a/src/components/Sidebar/Nodes/Node.tsx b/src/components/Sidebar/Nodes/Node.tsx deleted file mode 100644 index d740ecb2..00000000 --- a/src/components/Sidebar/Nodes/Node.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import React from 'react'; - -import Avatar from 'boring-avatars'; - -import { Disclosure } from '@headlessui/react'; -import { - ChevronDownIcon, - ChevronRightIcon, - ClockIcon, - FlagIcon, - GlobeIcon, - LightningBoltIcon, -} from '@heroicons/react/outline'; -import type { Protobuf } from '@meshtastic/meshtasticjs'; - -import { useAppSelector } from '../../../hooks/redux'; - -export interface NodeProps { - node: Protobuf.NodeInfo; -} - -export const Node = (props: NodeProps): JSX.Element => { - const myNodeInfo = useAppSelector((state) => state.meshtastic.myNodeInfo); - - return ( - - {({ open }) => ( - <> - -
- {open ? ( - - ) : ( - - )} -
- {props.node.num === myNodeInfo.myNodeNum ? ( - - ) : null} - -
- {props.node.user?.longName} -
-
- -
-

{props.node.snr}

-

- {`Last heard: ${ - props.node?.lastHeard - ? new Date(props.node.lastHeard).toLocaleString() - : 'Unknown' - }`}{' '} - {} -

-
- -

- {props.node.position?.latitudeI && - props.node.position?.longitudeI - ? `${props.node.position.latitudeI / 1e7}, - ${props.node.position.longitudeI / 1e7}` - : 'Unknown'} - , El: - {props.node.position?.altitude} -

-
- -
- -

{props.node.position?.time}

-
-
- -

{props.node.position?.batteryLevel}

-
-
-
- - )} -
- ); -}; diff --git a/src/components/Sidebar/Nodes/NodeList.tsx b/src/components/Sidebar/Nodes/NodeList.tsx deleted file mode 100644 index 30f72002..00000000 --- a/src/components/Sidebar/Nodes/NodeList.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; - -import { useAppSelector } from '../../../hooks/redux'; -import { Node } from './Node'; - -export const NodeList = (): JSX.Element => { - const nodes = useAppSelector((state) => state.meshtastic.nodes); - - return ( - <> - {nodes.map((node, index) => ( - - ))} - - ); -}; diff --git a/src/components/Sidebar/UI/Index.tsx b/src/components/Sidebar/UI/Index.tsx deleted file mode 100644 index a9042121..00000000 --- a/src/components/Sidebar/UI/Index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; - -import { useTranslation } from 'react-i18next'; - -import { CogIcon } from '@heroicons/react/outline'; - -import { Dropdown } from '../../basic/Dropdown'; -import { Translations } from './Translations'; - -export const UI = (): JSX.Element => { - const { t } = useTranslation(); - - return ( - } - title={t('settings.ui')} - content={} - fallbackMessage={'Loading...'} - /> - ); -}; diff --git a/src/components/Sidebar/UI/Translations.tsx b/src/components/Sidebar/UI/Translations.tsx deleted file mode 100644 index 441e0791..00000000 --- a/src/components/Sidebar/UI/Translations.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react'; - -import { Br, Jp, Us } from 'react-flags-select'; -import { useTranslation } from 'react-i18next'; - -import { Disclosure } from '@headlessui/react'; -import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/outline'; - -export const Translations = (): JSX.Element => { - const { t } = useTranslation(); - - return ( - - {({ open }) => ( - <> - -
- {open ? ( - - ) : ( - - )} - {t('strings.language')} - {/*
- {language === LanguageEnum.ENGLISH ? ( - - ) : language === LanguageEnum.JAPANESE ? ( - - ) : language === LanguageEnum.PORTUGUESE ? ( -
- ) : null} -
*/} -
-
- -
{ - // setLanguage(LanguageEnum.ENGLISH); - }} - > - English -
-
{ - // setLanguage(LanguageEnum.PORTUGUESE); - }} - > - Português
-
-
{ - // setLanguage(LanguageEnum.JAPANESE); - }} - > - 日本語 -
-
- - )} -
- ); -}; diff --git a/src/components/basic/Dropdown.tsx b/src/components/basic/Dropdown.tsx deleted file mode 100644 index 9c294841..00000000 --- a/src/components/basic/Dropdown.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; - -import { AnimatePresence, motion } from 'framer-motion'; - -import { Disclosure } from '@headlessui/react'; -import { ChevronDownIcon } from '@heroicons/react/outline'; - -interface DropdownProps { - icon: JSX.Element; - title: string; - content: JSX.Element; - fallbackMessage: string; -} - -export const Dropdown = (props: DropdownProps): JSX.Element => { - return ( - - {({ open }) => ( - <> - -
- - - - {props.icon} - {props.title} -
-
- - - {open && ( - - -
- {props.fallbackMessage} -
- - } - > - {props.content} -
-
- )} -
- - )} -
- ); -}; diff --git a/src/components/basic/ToggleSwitch.tsx b/src/components/basic/ToggleSwitch.tsx deleted file mode 100644 index c649842c..00000000 --- a/src/components/basic/ToggleSwitch.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; - -import { Switch } from '@headlessui/react'; - -interface ToggleSwitchProps { - active: boolean; -} - -export const ToggleSwitch = (props: ToggleSwitchProps): JSX.Element => { - const [active, setActive] = React.useState(false); - - React.useEffect(() => { - setActive(props.active); - }, []); - - return ( - - - - ); -}; diff --git a/src/components/chat/Message.tsx b/src/components/chat/Message.tsx new file mode 100644 index 00000000..9c15b1cb --- /dev/null +++ b/src/components/chat/Message.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +import Avatar from 'boring-avatars'; + +export interface MessageProps { + message: string; + ack: boolean; + isSender: boolean; + rxTime: Date; + senderName: string; +} + +export const Message = ({ + message, + ack, + isSender, + rxTime, + senderName, +}: MessageProps): JSX.Element => { + return ( +
+
+ +
+
+
+
{message}
+
+
{senderName}
+
+
+ {rxTime.toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit', + })} +
+
+ ); +}; diff --git a/src/components/chat/MessageBar.tsx b/src/components/chat/MessageBar.tsx new file mode 100644 index 00000000..307db01a --- /dev/null +++ b/src/components/chat/MessageBar.tsx @@ -0,0 +1,58 @@ +import React from 'react'; + +import { useTranslation } from 'react-i18next'; + +import { useAppSelector } from '@app/hooks/redux'; +import { Button } from '@components/generic/Button'; +import { Input } from '@components/generic/Input'; +import { connection } from '@core/connection'; +import { + EmojiHappyIcon, + PaperAirplaneIcon, + PaperClipIcon, +} from '@heroicons/react/outline'; + +export const MessageBar = (): JSX.Element => { + const ready = useAppSelector((state) => state.meshtastic.ready); + const [currentMessage, setCurrentMessage] = React.useState(''); + const sendMessage = (): void => { + if (ready) { + void connection.sendText(currentMessage, undefined, true); + setCurrentMessage(''); + } + }; + const { t } = useTranslation(); + return ( +
+
+
+
+
{ + e.preventDefault(); + sendMessage(); + }} + > + { + setCurrentMessage(e.target.value); + }} + /> +
+
+ ); +}; diff --git a/src/components/generic/Blur.tsx b/src/components/generic/Blur.tsx new file mode 100644 index 00000000..17937709 --- /dev/null +++ b/src/components/generic/Blur.tsx @@ -0,0 +1,33 @@ +import React from 'react'; + +type DefaultDivProps = JSX.IntrinsicElements['div']; + +interface LocalBlurProps { + disableOnMd?: boolean; +} + +export type BlurProps = LocalBlurProps & DefaultDivProps; + +export const Blur = ({ + disableOnMd, + className, + onClick, + ...props +}: BlurProps): JSX.Element => { + return ( +
+
+
+ ); +}; diff --git a/src/components/generic/Button.tsx b/src/components/generic/Button.tsx new file mode 100644 index 00000000..5c7f5000 --- /dev/null +++ b/src/components/generic/Button.tsx @@ -0,0 +1,50 @@ +import React from 'react'; + +type DefaultButtonProps = JSX.IntrinsicElements['button']; + +interface LocalButtonProps { + icon?: JSX.Element; + circle?: boolean; + active?: boolean; + border?: boolean; +} + +export type ButtonProps = LocalButtonProps & DefaultButtonProps; + +export const Button = ({ + icon, + circle, + className, + active, + border, + disabled, + children, + ...props +}: ButtonProps): JSX.Element => { + return ( + + ); +}; diff --git a/src/components/generic/Drawer.tsx b/src/components/generic/Drawer.tsx new file mode 100644 index 00000000..0aa6e8df --- /dev/null +++ b/src/components/generic/Drawer.tsx @@ -0,0 +1,35 @@ +import React from 'react'; + +import { Blur } from '@components/generic/Blur'; + +type DefaultAsideProps = JSX.IntrinsicElements['aside']; + +interface LocalDrawerProps { + open: boolean; + permenant?: boolean; + onClose: () => void; +} +export type DrawerProps = LocalDrawerProps & DefaultAsideProps; + +export const Drawer = ({ + open, + permenant, + onClose, + children, + ...props +}: DrawerProps): JSX.Element => { + return ( + <> + {open && } + + + + ); +}; diff --git a/src/components/generic/Input.tsx b/src/components/generic/Input.tsx new file mode 100644 index 00000000..5f404341 --- /dev/null +++ b/src/components/generic/Input.tsx @@ -0,0 +1,50 @@ +import React from 'react'; + +type DefaultInputProps = JSX.IntrinsicElements['input']; + +interface LocalInputProps { + icon?: JSX.Element; + label?: string; + valid?: boolean; + validationMessage?: string; +} + +export type InputProps = LocalInputProps & DefaultInputProps; + +export const Input = React.forwardRef( + function Input( + { icon, label, valid, validationMessage, id, ...props }: InputProps, + ref, + ) { + return ( +
+ +
+ {icon && ( +
+ {React.cloneElement(icon, { + className: 'w-5 h-5 text-gray-500 dark:text-gray-600', + })} +
+ )} + +
+ {!valid && ( +
{validationMessage}
+ )} +
+ ); + }, +); diff --git a/src/components/generic/Select.tsx b/src/components/generic/Select.tsx new file mode 100644 index 00000000..f2da5be8 --- /dev/null +++ b/src/components/generic/Select.tsx @@ -0,0 +1,82 @@ +import React from 'react'; + +import { Listbox } from '@headlessui/react'; +import { CheckIcon, SelectorIcon } from '@heroicons/react/solid'; + +export interface SelectProps { + label: string; + options: { + name: string; + value: string; + icon: JSX.Element; + }[]; + id: string; + value: string; + onChange: (value: string) => void; +} + +export const Select = ({ + label, + options, + id, + value, + onChange, +}: SelectProps): JSX.Element => { + return ( +
+ + + +
+ + {value} + + + + + + {options.map((option) => ( + + `cursor-default select-none relative py-2 pl-10 pr-4 first:rounded-t-md last:rounded-b-md dark:text-white ${ + active ? 'bg-gray-200 dark:bg-primaryDark' : 'text-gray-900' + }` + } + value={option.value} + > + {({ selected, active }): JSX.Element => ( + <> + + {option.name} + + {selected ? ( + + + ) : null} + + )} + + ))} + +
+
+
+ ); +}; diff --git a/src/components/generic/SidebarItem.tsx b/src/components/generic/SidebarItem.tsx new file mode 100644 index 00000000..8d97ec90 --- /dev/null +++ b/src/components/generic/SidebarItem.tsx @@ -0,0 +1,33 @@ +import React from 'react'; + +type DefaultDivProps = JSX.IntrinsicElements['div']; + +interface LocalSidebarItemProps { + title: string; + description: string; + selected: boolean; + icon: JSX.Element; +} + +export type SidebarItemProps = LocalSidebarItemProps & DefaultDivProps; + +export const SidebarItem = ({ + title, + description, + selected, + icon, +}: SidebarItemProps): JSX.Element => { + return ( +
+
{icon}
+
+
{title}
+
{description}
+
+
+ ); +}; diff --git a/src/components/menu/Logo.tsx b/src/components/menu/Logo.tsx new file mode 100644 index 00000000..c9233690 --- /dev/null +++ b/src/components/menu/Logo.tsx @@ -0,0 +1,18 @@ +import React from 'react'; + +export const Logo = (): JSX.Element => { + return ( + <> + + + + ); +}; diff --git a/src/components/menu/MobileNav.tsx b/src/components/menu/MobileNav.tsx new file mode 100644 index 00000000..b0fc1301 --- /dev/null +++ b/src/components/menu/MobileNav.tsx @@ -0,0 +1,34 @@ +import React from 'react'; + +import { useAppDispatch, useAppSelector } from '@app/hooks/redux'; +import { Drawer } from '@components/generic/Drawer'; +import { closeMobileNav } from '@core/slices/appSlice'; + +import { Logo } from './Logo'; +import { Navigation } from './Navigation'; + +export const MobileNav = (): JSX.Element => { + const dispatch = useAppDispatch(); + + const mobileNavOpen = useAppSelector((state) => state.app.mobileNavOpen); + + return ( + { + dispatch(closeMobileNav()); + }} + > +
+
+ +
+ { + dispatch(closeMobileNav()); + }} + /> +
+
+ ); +}; diff --git a/src/components/menu/Navigation.tsx b/src/components/menu/Navigation.tsx new file mode 100644 index 00000000..c0cdec14 --- /dev/null +++ b/src/components/menu/Navigation.tsx @@ -0,0 +1,69 @@ +import React from 'react'; + +import { Button } from '@components/generic/Button'; +import { routes, useRoute } from '@core/router'; +import { + AnnotationIcon, + CogIcon, + InformationCircleIcon, + ViewGridIcon, +} from '@heroicons/react/outline'; + +type DefaultDivProps = JSX.IntrinsicElements['div']; + +export type NavigationProps = DefaultDivProps; + +export const Navigation = ({ + onClick, + className, + ...props +}: NavigationProps): JSX.Element => { + const route = useRoute(); + return ( +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ ); +}; diff --git a/src/components/menu/buttons/DeviceStatusDropdown.tsx b/src/components/menu/buttons/DeviceStatusDropdown.tsx new file mode 100644 index 00000000..061f67f4 --- /dev/null +++ b/src/components/menu/buttons/DeviceStatusDropdown.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import { useAppSelector } from '@app/hooks/redux'; +import { Button } from '@components/generic/Button'; +import { SwitchVerticalIcon } from '@heroicons/react/outline'; + +export const DeviceStatusDropdown = (): JSX.Element => { + const ready = useAppSelector((state) => state.meshtastic.ready); + + return ( + + } + > +
+
+ + +
+
+ + ); +}; diff --git a/src/pages/settings/Index.tsx b/src/pages/settings/Index.tsx new file mode 100644 index 00000000..3c5fdc01 --- /dev/null +++ b/src/pages/settings/Index.tsx @@ -0,0 +1,101 @@ +import React from 'react'; + +import { useBreakpoint } from '@app/hooks/breakpoint'; +import { Button } from '@components/generic/Button'; +import { Drawer } from '@components/generic/Drawer'; +import { SidebarItem } from '@components/generic/SidebarItem'; +import { Tab } from '@headlessui/react'; +import { + CollectionIcon, + DeviceMobileIcon, + WifiIcon, + XCircleIcon, +} from '@heroicons/react/outline'; + +import { Device } from './Device'; +import { Interface } from './Interface'; +import { Radio } from './Radio'; + +export const Settings = (): JSX.Element => { + const [navOpen, setNavOpen] = React.useState(false); + + const { breakpoint } = useBreakpoint(); + + return ( + +
+ { + setNavOpen(!navOpen); + }} + > + +
+
+ Settings +
+
+
+
+ { + setNavOpen(false); + }} + > + {({ selected }): JSX.Element => ( + } + /> + )} + + + {({ selected }): JSX.Element => ( + } + /> + )} + + + {({ selected }): JSX.Element => ( + } + /> + )} + +
+
+
+ + + + + + + + + + + +
+
+
+ ); +}; diff --git a/src/pages/settings/Interface.tsx b/src/pages/settings/Interface.tsx new file mode 100644 index 00000000..9c093fab --- /dev/null +++ b/src/pages/settings/Interface.tsx @@ -0,0 +1,76 @@ +import React from 'react'; + +import { Jp, Pt, Us } from 'react-flags-select'; +import { useTranslation } from 'react-i18next'; + +import { Select } from '@app/components/generic/Select'; +import i18n from '@app/core/translation'; +import { Button } from '@components/generic/Button'; +import { PrimaryTemplate } from '@components/templates/PrimaryTemplate'; +import { MenuIcon, SaveIcon } from '@heroicons/react/outline'; + +export interface InterfaceProps { + navOpen: boolean; + setNavOpen: React.Dispatch>; +} + +export const Interface = ({ + navOpen, + setNavOpen, +}: InterfaceProps): JSX.Element => { + const { t } = useTranslation(); + + return ( + } + onClick={(): void => { + setNavOpen(!navOpen); + }} + circle + /> + } + footer={ + + } + > +
+ +
+
+ ); +}; diff --git a/src/slices/appSlice.ts b/src/slices/appSlice.ts deleted file mode 100644 index 45153d0f..00000000 --- a/src/slices/appSlice.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit'; - -interface AppState { - sidebarOpen: boolean; - darkMode: boolean; -} - -const initialState: AppState = { - sidebarOpen: true, - darkMode: false, -}; - -export const appSlice = createSlice({ - name: 'app', - initialState, - reducers: { - openSidebar(state) { - state.sidebarOpen = true; - }, - closeSidebar(state) { - state.sidebarOpen = false; - }, - toggleSidebar(state) { - state.sidebarOpen = !state.sidebarOpen; - }, - }, -}); - -export const { openSidebar, closeSidebar, toggleSidebar } = appSlice.actions; - -export default appSlice.reducer; diff --git a/src/translations/en.json b/src/translations/en.json deleted file mode 100644 index 7e7df9f1..00000000 --- a/src/translations/en.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "errors": {}, - "placeholder": { - "message": "Enter Message", - "no_messages": "No messages yet", - "no_nodes": "No nodes found" - }, - "strings": { - "nodes": "Nodes", - "color_scheme": "Color scheme", - "language": "Language", - "device_region": "Device region", - "wifi_ssid": "WiFi SSID", - "wifi_psk": "WiFi PSK", - "save_changes": "Save changes" - }, - "settings": { - "ui": "UI Settings", - "device": "Device Settings", - "channel": "Channels" - } -} diff --git a/src/translations/en.ts b/src/translations/en.ts new file mode 100644 index 00000000..5ccacf56 --- /dev/null +++ b/src/translations/en.ts @@ -0,0 +1,22 @@ +export const en = { + errors: {}, + placeholder: { + message: 'Enter Message', + no_messages: 'No messages yet', + no_nodes: 'No nodes found', + }, + strings: { + nodes: 'Nodes', + color_scheme: 'Color scheme', + language: 'Language', + device_region: 'Device region', + wifi_ssid: 'WiFi SSID', + wifi_psk: 'WiFi PSK', + save_changes: 'Save changes', + }, + settings: { + ui: 'UI Settings', + device: 'Device Settings', + channel: 'Channels', + }, +}; diff --git a/src/translations/jp.json b/src/translations/jp.json deleted file mode 100644 index c5e5133b..00000000 --- a/src/translations/jp.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "errors": {}, - "placeholder": { - "message": "メッセージを入力してください", - "no_messages": "まだメッセージはありません", - "no_nodes": "ノードが見つかりません" - }, - "strings": { - "nodes": "ノード", - "color_scheme": "カラースキーム", - "language": "言語", - "device_region": "デバイスリージョン", - "wifi_ssid": "WiFi名", - "wifi_psk": "WiFiパスワード", - "save_changes": "変更内容を保存" - }, - "settings": { - "ui": "UI設定", - "device": "デバイスの設定", - "channel": "#################" - } -} diff --git a/src/translations/jp.ts b/src/translations/jp.ts new file mode 100644 index 00000000..fd431f06 --- /dev/null +++ b/src/translations/jp.ts @@ -0,0 +1,22 @@ +export const jp = { + errors: {}, + placeholder: { + message: 'メッセージを入力してください', + no_messages: 'まだメッセージはありません', + no_nodes: 'ノードが見つかりません', + }, + strings: { + nodes: 'ノード', + color_scheme: 'カラースキーム', + language: '言語', + device_region: 'デバイスリージョン', + wifi_ssid: 'WiFi名', + wifi_psk: 'WiFiパスワード', + save_changes: '変更内容を保存', + }, + settings: { + ui: 'UI設定', + device: 'デバイスの設定', + channel: '#################', + }, +}; diff --git a/src/translations/pt.json b/src/translations/pt.json deleted file mode 100644 index 6161c29f..00000000 --- a/src/translations/pt.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "errors": {}, - "placeholder": { - "message": "Entre mensagem", - "no_messages": "Não a mensagens ainda", - "no_nodes": "Nenhum nó foi encontrado" - }, - "strings": { - "nodes": "Nós", - "color_scheme": "Esquema de cores", - "language": "Idioma", - "device_region": "Região do dispositivo", - "wifi_ssid": "Nome do WiFi", - "wifi_psk": "Senha do WiFi", - "save_changes": "Salvar alterações" - }, - "settings": { - "ui": "Configurações da Interface", - "device": "Configurações do dispositivo", - "channel": "Canais" - } -} diff --git a/src/translations/pt.ts b/src/translations/pt.ts new file mode 100644 index 00000000..b1af305b --- /dev/null +++ b/src/translations/pt.ts @@ -0,0 +1,22 @@ +export const pt = { + errors: {}, + placeholder: { + message: 'Entre mensagem', + no_messages: 'Não a mensagens ainda', + no_nodes: 'Nenhum nó foi encontrado', + }, + strings: { + nodes: 'Nós', + color_scheme: 'Esquema de cores', + language: 'Idioma', + device_region: 'Região do dispositivo', + wifi_ssid: 'Nome do WiFi', + wifi_psk: 'Senha do WiFi', + save_changes: 'Salvar alterações', + }, + settings: { + ui: 'Configurações da Interface', + device: 'Configurações do dispositivo', + channel: 'Canais', + }, +}; diff --git a/tailwind.config.js b/tailwind.config.js index 69651156..18b96472 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,12 +1,19 @@ module.exports = { mode: 'jit', purge: ['./public/**/*.html', './src/**/*.tsx'], - darkMode: false, // or 'media' or 'class' + darkMode: 'class', // or 'media' or 'class' theme: { - extend: {}, - }, - variants: { - extend: {}, + fontFamily: { + sans: 'Roboto', + }, + extend: { + colors: { + primary: '#67ea94', + primaryDark: '#1E293B', + secondaryDark: '#0F172A', + }, + }, }, + variants: {}, plugins: [], }; diff --git a/tsconfig.json b/tsconfig.json index 47ad03e7..99909538 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,10 +12,17 @@ // Add this line to get types for streaming imports (packageOptions.source="remote"): // "*": [".snowpack/types/*"] // More info: https://www.snowpack.dev/guides/streaming-imports + "@app/*": ["./src/*"], + "@pages/*": ["./src/pages/*"], + "@components/*": ["./src/components/*"], + "@core/*": ["./src/core/*"], + "@static/*": ["./src/static/*"] }, /* noEmit - Snowpack builds (emits) files, not tsc. */ "noEmit": true, /* Additional Options */ + "importHelpers": true, + "removeComments": true, "strict": true, "strictNullChecks": true, "skipLibCheck": true, diff --git a/yarn.lock b/yarn.lock index ceded10c..19093d79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,25 +16,25 @@ dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.14.5": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.9.tgz#ac7996ceaafcf8f410119c8af0d1db4cf914a210" - integrity sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw== +"@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== "@babel/core@^7.0.0": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" - integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.8" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.14.8" + "@babel/parser" "^7.15.0" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -42,21 +42,21 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.14.8", "@babel/generator@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.9.tgz#23b19c597d38b4f7dc2e3fe42a69c88d9ecfaa16" - integrity sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA== +"@babel/generator@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== dependencies: - "@babel/types" "^7.14.9" + "@babel/types" "^7.15.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" - integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== +"@babel/helper-compilation-targets@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== dependencies: - "@babel/compat-data" "^7.14.5" + "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" @@ -84,12 +84,12 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" - integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.0" "@babel/helper-module-imports@^7.14.5": version "7.14.5" @@ -98,19 +98,19 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" - integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== +"@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== dependencies: "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" "@babel/helper-simple-access" "^7.14.8" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.8" + "@babel/helper-validator-identifier" "^7.14.9" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -124,15 +124,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-replace-supers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" - integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== +"@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/helper-simple-access@^7.14.8": version "7.14.8" @@ -148,7 +148,7 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8", "@babel/helper-validator-identifier@^7.14.9": +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== @@ -159,13 +159,13 @@ integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== "@babel/helpers@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" - integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== dependencies: "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -176,10 +176,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.9.tgz#596c1ad67608070058ebf8df50c1eaf65db895a4" - integrity sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ== +"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== "@babel/plugin-syntax-class-properties@^7.10.0": version "7.12.13" @@ -188,10 +188,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.14.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.9.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" - integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== +"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.14.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.7.6", "@babel/runtime@^7.9.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" @@ -204,41 +204,29 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.9.tgz#016126b331210bf06fff29d52971eef8383e556f" - integrity sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g== +"@babel/traverse@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.9" + "@babel/generator" "^7.15.0" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.9" - "@babel/types" "^7.14.9" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.9.tgz#f2b19c3f2f77c5708d67fe8f6046e9cea2b5036d" - integrity sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow== +"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== dependencies: "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@emotion/is-prop-valid@^0.8.2": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -254,7 +242,7 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@headlessui/react@^1.3.0": +"@headlessui/react@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.4.0.tgz#c6d424d8ab10ac925e4423d7f3cbab02c30d736a" integrity sha512-C+FmBVF6YGvqcEI5fa2dfVbEaXr2RGR6Kw1E5HXIISIZEfsrH/yuCgsjWw5nlRF9vbCxmQ/EKs64GAdKeb8gCw== @@ -308,9 +296,9 @@ fastq "^1.6.0" "@npmcli/arborist@^2.6.4": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.8.0.tgz#ff078287eba44595383eb58ad8aa8540bc8aae9e" - integrity sha512-R9rTyak1rGdmVTyiU14dgBb+qMllY3B6I8hp7FB4xXsU9dJDrYZJR8I+191CMo5Y1941jTDCtNcXXW9TldPEFQ== + version "2.8.1" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.8.1.tgz#ee7e9128e48aba735d45d2184542dfbefd4346ff" + integrity sha512-kbBWllN4CcdeN032Rw6b+TIsyoxWcv4YNN5gzkMCe8cCu0llwlq5P7uAD2oyL24QdmGlrlg/Yp0L1JF+HD8g9Q== dependencies: "@npmcli/installed-package-contents" "^1.0.7" "@npmcli/map-workspaces" "^1.0.2" @@ -368,9 +356,9 @@ npm-normalize-package-bin "^1.0.1" "@npmcli/map-workspaces@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-1.0.3.tgz#6072a0794762cf8f572e6080fa66d1bbefa991d5" - integrity sha512-SdlRlOoQw4WKD4vtb/n5gUkobEABYBEOo8fRE4L8CtBkyWDSvIrReTfKvQ/Jc/LQqDaaZ5iv1iMSQzKCUr1n1A== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz#915708b55afa25e20bc2c14a766c124c2c5d4cab" + integrity sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q== dependencies: "@npmcli/name-from-folder" "^1.0.1" glob "^7.1.6" @@ -564,14 +552,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/eslint@^7.2.13": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" - integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - "@types/estree@*": version "0.0.50" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" @@ -595,10 +575,10 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/json-schema@*", "@types/json-schema@^7.0.7": - version "7.0.8" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" - integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== +"@types/json-schema@^7.0.7": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/keyv@*": version "3.1.2" @@ -608,9 +588,9 @@ "@types/node" "*" "@types/node@*": - version "16.4.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.10.tgz#e57e2a54fc6da58da94b3571b1cb456d39f88597" - integrity sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ== + version "16.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.1.tgz#aee62c7b966f55fc66c7b6dfa1d58db2a616da61" + integrity sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -640,9 +620,9 @@ redux "^4.0.0" "@types/react@*", "@types/react@^17.0.13": - version "17.0.15" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.15.tgz#c7533dc38025677e312606502df7656a6ea626d0" - integrity sha512-uTKHDK9STXFHLaKv6IMnwp52fm0hwU+N89w/p9grdUqcFA6WuqDyPhaWopbNyE1k/VhgzmHl8pu1L4wITtmlLw== + version "17.0.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.18.tgz#4109cbbd901be9582e5e39e3d77acd7b66bb7fbe" + integrity sha512-YTLgu7oS5zvSqq49X5Iue5oAbVGhgPc5Au29SJC4VeE17V6gASoOxVkUDy9pXFMRFxCWCD9fLeweNFizo3UzOg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -672,75 +652,92 @@ resolved "https://registry.yarnpkg.com/@types/snowpack-env/-/snowpack-env-2.3.4.tgz#79073fd98a47a5f1ba83326b75cb433dc31a7c36" integrity sha512-zYzMb2aMyzXW5VgOQHy+FgI8N5tLFb+tIsUqk35CIgSr9pT4pji2GR8BCOTMdniusVuRHIp/DaYQNQGYGLVZHQ== -"@typescript-eslint/eslint-plugin@^4.28.1": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.0.tgz#b866c9cd193bfaba5e89bade0015629ebeb27996" - integrity sha512-eiREtqWRZ8aVJcNru7cT/AMVnYd9a2UHsfZT8MR1dW3UUEg6jDv9EQ9Cq4CUPZesyQ58YUpoAADGv71jY8RwgA== +"@typescript-eslint/eslint-plugin@^4.28.0", "@typescript-eslint/eslint-plugin@^4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.1.tgz#808d206e2278e809292b5de752a91105da85860b" + integrity sha512-AHqIU+SqZZgBEiWOrtN94ldR3ZUABV5dUG94j8Nms9rQnHFc8fvDOue/58K4CFz6r8OtDDc35Pw9NQPWo0Ayrw== dependencies: - "@typescript-eslint/experimental-utils" "4.29.0" - "@typescript-eslint/scope-manager" "4.29.0" + "@typescript-eslint/experimental-utils" "4.29.1" + "@typescript-eslint/scope-manager" "4.29.1" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.29.0": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.0.tgz#19b1417602d0e1ef325b3312ee95f61220542df5" - integrity sha512-FpNVKykfeaIxlArLUP/yQfv/5/3rhl1ov6RWgud4OgbqWLkEq7lqgQU9iiavZRzpzCRQV4XddyFz3wFXdkiX9w== +"@typescript-eslint/experimental-utils@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.1.tgz#0af2b17b0296b60c6b207f11062119fa9c5a8994" + integrity sha512-kl6QG6qpzZthfd2bzPNSJB2YcZpNOrP6r9jueXupcZHnL74WiuSjaft7WSu17J9+ae9zTlk0KJMXPUj0daBxMw== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.29.0" - "@typescript-eslint/types" "4.29.0" - "@typescript-eslint/typescript-estree" "4.29.0" + "@typescript-eslint/scope-manager" "4.29.1" + "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/typescript-estree" "4.29.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.28.1": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.0.tgz#e5367ca3c63636bb5d8e0748fcbab7a4f4a04289" - integrity sha512-+92YRNHFdXgq+GhWQPT2bmjX09X7EH36JfgN2/4wmhtwV/HPxozpCNst8jrWcngLtEVd/4zAwA6BKojAlf+YqA== +"@typescript-eslint/parser@^4.28.0", "@typescript-eslint/parser@^4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.1.tgz#17dfbb45c9032ffa0fe15881d20fbc2a4bdeb02d" + integrity sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg== dependencies: - "@typescript-eslint/scope-manager" "4.29.0" - "@typescript-eslint/types" "4.29.0" - "@typescript-eslint/typescript-estree" "4.29.0" + "@typescript-eslint/scope-manager" "4.29.1" + "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/typescript-estree" "4.29.1" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.29.0": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.0.tgz#cf5474f87321bedf416ef65839b693bddd838599" - integrity sha512-HPq7XAaDMM3DpmuijxLV9Io8/6pQnliiXMQUcAdjpJJSR+fdmbD/zHCd7hMkjJn04UQtCQBtshgxClzg6NIS2w== +"@typescript-eslint/scope-manager@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz#f25da25bc6512812efa2ce5ebd36619d68e61358" + integrity sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A== dependencies: - "@typescript-eslint/types" "4.29.0" - "@typescript-eslint/visitor-keys" "4.29.0" + "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/visitor-keys" "4.29.1" -"@typescript-eslint/types@4.29.0": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.0.tgz#c8f1a1e4441ea4aca9b3109241adbc145f7f8a4e" - integrity sha512-2YJM6XfWfi8pgU2HRhTp7WgRw78TCRO3dOmSpAvIQ8MOv4B46JD2chnhpNT7Jq8j0APlIbzO1Bach734xxUl4A== +"@typescript-eslint/types@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" + integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== -"@typescript-eslint/typescript-estree@4.29.0": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.0.tgz#af7ab547757b86c91bfdbc54ff86845410856256" - integrity sha512-8ZpNHDIOyqzzgZrQW9+xQ4k5hM62Xy2R4RPO3DQxMc5Rq5QkCdSpk/drka+DL9w6sXNzV5nrdlBmf8+x495QXQ== +"@typescript-eslint/typescript-estree@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz#7b32a25ff8e51f2671ccc6b26cdbee3b1e6c5e7f" + integrity sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw== dependencies: - "@typescript-eslint/types" "4.29.0" - "@typescript-eslint/visitor-keys" "4.29.0" + "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/visitor-keys" "4.29.1" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.29.0": - version "4.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.0.tgz#1ff60f240def4d85ea68d4fd2e4e9759b7850c04" - integrity sha512-LoaofO1C/jAJYs0uEpYMXfHboGXzOJeV118X4OsZu9f7rG7Pr9B3+4HTU8+err81rADa4xfQmAxnRnPAI2jp+Q== +"@typescript-eslint/visitor-keys@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz#0615be8b55721f5e854f3ee99f1a714f2d093e5d" + integrity sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag== dependencies: - "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/types" "4.29.1" eslint-visitor-keys "^2.0.0" +"@verypossible/eslint-config@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@verypossible/eslint-config/-/eslint-config-1.6.1.tgz#4360627af7e247890026abc5b0ead13c4d638294" + integrity sha512-3qf2FSag49zqI6rZlwKcF8RryLX0RJ3W+koJuhDhdQNyelSEeTxiijQ+Y/Xss4ILFzyqpBnzqiphmABGcOgj1Q== + dependencies: + "@typescript-eslint/eslint-plugin" "^4.28.0" + "@typescript-eslint/parser" "^4.28.0" + babel-plugin-module-resolver "^4.1.0" + eslint "^7.29.0" + eslint-config-prettier "^8.3.0" + eslint-import-resolver-babel-module "^5.3.1" + eslint-import-resolver-typescript "^2.4.0" + eslint-plugin-import "^2.23.4" + eslint-plugin-react "^7.24.0" + eslint-plugin-react-hooks "^4.2.0" + prettier "^2.3.2" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -956,11 +953,6 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - autoprefixer@^10.2.6: version "10.3.1" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.1.tgz#954214821d3aa06692406c6a0a9e9d401eafbed2" @@ -973,7 +965,7 @@ autoprefixer@^10.2.6: normalize-range "^0.1.2" postcss-value-parser "^4.1.0" -available-typed-arrays@^1.0.2: +available-typed-arrays@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== @@ -988,6 +980,17 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +babel-plugin-module-resolver@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" + integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== + dependencies: + find-babel-config "^1.2.0" + glob "^7.1.6" + pkg-up "^3.1.0" + reselect "^4.0.0" + resolve "^1.13.1" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1060,15 +1063,15 @@ braces@^3.0.1, braces@~3.0.2: fill-range "^7.0.1" browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + version "4.16.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335" + integrity sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA== dependencies: - caniuse-lite "^1.0.30001219" + caniuse-lite "^1.0.30001248" colorette "^1.2.2" - electron-to-chromium "^1.3.723" + electron-to-chromium "^1.3.793" escalade "^3.1.1" - node-releases "^1.1.71" + node-releases "^1.1.73" bufferutil@^4.0.2: version "4.0.3" @@ -1156,10 +1159,10 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001243: - version "1.0.30001248" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz#26ab45e340f155ea5da2920dadb76a533cb8ebce" - integrity sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw== +caniuse-lite@^1.0.30001243, caniuse-lite@^1.0.30001248: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" + integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== caseless@~0.12.0: version "0.12.0" @@ -1207,7 +1210,7 @@ cheerio@1.0.0-rc.10: parse5-htmlparser2-tree-adapter "^6.0.1" tslib "^2.2.0" -chokidar@^3.3.0, chokidar@^3.4.0, chokidar@^3.5.2: +chokidar@^3.4.0, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -1247,15 +1250,6 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -1315,10 +1309,10 @@ color@^3.2.0: color-convert "^1.9.3" color-string "^1.6.0" -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -1544,11 +1538,6 @@ depd@^1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -dependency-graph@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" - integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== - detect-port@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" @@ -1653,10 +1642,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.723: - version "1.3.793" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.793.tgz#c10dff5f3126238004de344db458f1da3641d554" - integrity sha512-l9NrGV6Mr4ov5mayYPvIWcwklNw5ROmy6rllzz9dCACw9nKE5y+s5uQk+CBJMetxrWZ6QJFsvEfG6WDcH2IGUg== +electron-to-chromium@^1.3.793: + version "1.3.806" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz#21502100f11aead6c501d1cd7f2504f16c936642" + integrity sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA== emoji-regex@^8.0.0: version "8.0.0" @@ -1711,7 +1700,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.18.5: version "1.18.5" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== @@ -1818,33 +1807,52 @@ eslint-config-prettier@^8.3.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== +eslint-import-resolver-babel-module@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-5.3.1.tgz#808a42f311a6c33d473f9f4c846d1d487d29eff4" + integrity sha512-WomQAkjO7lUNOdU3FG2zgNgylkoAVUmaw04bHgSpM9QrMWuOLLWa2qcP6CrsBd4VWuLRbUPyzrgBc9ZQIx9agw== dependencies: - debug "^2.6.9" - resolve "^1.13.1" + pkg-up "^3.1.0" + resolve "^1.20.0" -eslint-module-utils@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" - integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== +eslint-import-resolver-node@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.5.tgz#939bbb0f74e179e757ca87f7a4a890dabed18ac4" + integrity sha512-XMoPKjSpXbkeJ7ZZ9icLnJMTY5Mc1kZbCakHquaFsXPpyWOwK0TK6CODO+0ca54UoM9LKOxyUNnoVZRl8TeaAg== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-typescript@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" + integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== + dependencies: + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== dependencies: debug "^3.2.7" pkg-dir "^2.0.0" -eslint-plugin-import@^2.23.4: - version "2.23.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" - integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== +eslint-plugin-import@^2.23.4, eslint-plugin-import@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.0.tgz#697ffd263e24da5e84e03b282f5fb62251777177" + integrity sha512-Kc6xqT9hiYi2cgybOc0I2vC9OgAYga5o/rAFinam/yF/t5uBqxQbauNPMC6fgb640T/89P0gFoO27FOilJ/Cqg== dependencies: array-includes "^3.1.3" array.prototype.flat "^1.2.4" debug "^2.6.9" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.1" + eslint-import-resolver-node "^0.3.5" + eslint-module-utils "^2.6.2" find-up "^2.0.0" has "^1.0.3" is-core-module "^2.4.0" @@ -1855,13 +1863,6 @@ eslint-plugin-import@^2.23.4: resolve "^1.20.0" tsconfig-paths "^3.9.0" -eslint-plugin-prettier@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== - dependencies: - prettier-linter-helpers "^1.0.0" - eslint-plugin-react-hooks@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" @@ -1917,7 +1918,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.29.0: +eslint@^7.29.0, eslint@^7.32.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== @@ -2061,11 +2062,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - fast-glob@^3.1.1, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -2113,6 +2109,14 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-babel-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -2129,6 +2133,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2182,26 +2193,6 @@ fraction.js@^4.1.1: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== -framer-motion@^4.1.17: - version "4.1.17" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-4.1.17.tgz#4029469252a62ea599902e5a92b537120cc89721" - integrity sha512-thx1wvKzblzbs0XaK2X0G1JuwIdARcoNOW7VVwjO8BUltzXPyONGAElLu6CiCScsOQRI7FIk/45YTFtJw5Yozw== - dependencies: - framesync "5.3.0" - hey-listen "^1.0.8" - popmotion "9.3.6" - style-value-types "4.1.4" - tslib "^2.1.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - -framesync@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.3.0.tgz#0ecfc955e8f5a6ddc8fdb0cc024070947e1a0d9b" - integrity sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA== - dependencies: - tslib "^2.1.0" - fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -2211,16 +2202,6 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -2279,11 +2260,6 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -2293,11 +2269,6 @@ get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.1" -get-stdin@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -2349,13 +2320,13 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" - integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g== + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: type-fest "^0.20.2" -globby@^11.0.0, globby@^11.0.3: +globby@^11.0.3: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -2385,9 +2356,9 @@ got@^11.1.4: responselike "^2.0.0" graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== gzipper@^5.0.0: version "5.0.0" @@ -2431,6 +2402,13 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2443,10 +2421,12 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== +history@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/history/-/history-5.0.1.tgz#de35025ed08bce0db62364b47ebbf9d97b5eb06a" + integrity sha512-5qC/tFUKfVci5kzgRxZxN5Mf1CV8NmJx9ByaPX0YTLx5Vz3Svh7NYp6eA4CpDq4iA9D0C1t8BNIfvQIrUI3mVw== + dependencies: + "@babel/runtime" "^7.7.6" hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" @@ -2553,9 +2533,9 @@ i18next-browser-languagedetector@^6.1.2: "@babel/runtime" "^7.14.6" i18next@^20.3.5: - version "20.3.5" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.3.5.tgz#14308b79a3f1cafb24fdcd8e182d3673baf1e979" - integrity sha512-//MGeU6n4TencJmCgG+TCrpdgAD/NDEU/KfKQekYbJX6QV7sD/NjWQdVdBi+bkT0snegnSoB7QhjSeatrk3a0w== + version "20.4.0" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.4.0.tgz#6897229a7898e23f3c4885f10315c978b594d3b9" + integrity sha512-89iWWJudmaHJwzIdJ/1eu98GtsJnwBhOUWwlAre70itPMuTE/NTPtgVeaS1CGaB8Q3XrYBGpEqlq4jsScDx9kg== dependencies: "@babel/runtime" "^7.12.0" @@ -2668,11 +2648,12 @@ ip@^1.1.5: integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= is-arguments@^1.0.4, is-arguments@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -2685,9 +2666,11 @@ is-arrayish@^0.3.1: integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" @@ -2697,16 +2680,17 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-core-module@^2.2.0, is-core-module@^2.4.0: version "2.5.0" @@ -2716,9 +2700,11 @@ is-core-module@^2.2.0, is-core-module@^2.4.0: has "^1.0.3" is-date-object@^1.0.1, is-date-object@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" @@ -2775,9 +2761,11 @@ is-negative-zero@^2.0.1: integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" @@ -2797,12 +2785,12 @@ is-reference@^1.1.4, is-reference@^1.2.1: "@types/estree" "*" is-regex@^1.1.1, is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" + has-tostringtag "^1.0.0" is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" @@ -2815,9 +2803,11 @@ is-stream@^2.0.0: integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" @@ -2826,16 +2816,16 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" - integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== +is-typed-array@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f" + integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA== dependencies: - available-typed-arrays "^1.0.2" + available-typed-arrays "^1.0.4" call-bind "^1.0.2" - es-abstract "^1.18.0-next.2" + es-abstract "^1.18.5" foreach "^2.0.5" - has-symbols "^1.0.1" + has-tostringtag "^1.0.0" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -2959,6 +2949,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3077,6 +3072,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3101,41 +3104,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - -lodash.forown@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-4.4.0.tgz#85115cf04f73ef966eced52511d3893cc46683af" - integrity sha1-hRFc8E9z75ZuztUlEdOJPMRmg68= - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.groupby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" - integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - lodash.topath@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" @@ -3365,9 +3338,9 @@ ms@^2.0.0, ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== natural-compare@^1.4.0: version "1.4.0" @@ -3380,11 +3353,11 @@ negotiator@^0.6.2: integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== node-emoji@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: - lodash.toarray "^4.4.0" + lodash "^4.17.21" node-gyp-build@^4.2.0: version "4.2.3" @@ -3407,10 +3380,10 @@ node-gyp@^7.1.0: tar "^6.0.2" which "^2.0.2" -node-releases@^1.1.71: - version "1.1.73" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" - integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^1.1.73: + version "1.1.74" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" + integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw== nopt@^5.0.0: version "5.0.0" @@ -3661,7 +3634,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -3682,6 +3655,13 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -3885,33 +3865,12 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -popmotion@9.3.6: - version "9.3.6" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.3.6.tgz#b5236fa28f242aff3871b9e23721f093133248d1" - integrity sha512-ZTbXiu6zIggXzIliMi8LGxXBF5ST+wkpXGEjeTUDUOCdSQ356hij/xjeUdv0F8zCQNeqB1+PR5/BB+gC+QLAPw== +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: - framesync "5.3.0" - hey-listen "^1.0.8" - style-value-types "4.1.4" - tslib "^2.1.0" - -postcss-cli@^8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-8.3.1.tgz#865dad08300ac59ae9cecb7066780aa81c767a77" - integrity sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q== - dependencies: - chalk "^4.0.0" - chokidar "^3.3.0" - dependency-graph "^0.9.0" - fs-extra "^9.0.0" - get-stdin "^8.0.0" - globby "^11.0.0" - postcss-load-config "^3.0.0" - postcss-reporter "^7.0.0" - pretty-hrtime "^1.0.3" - read-cache "^1.0.0" - slash "^3.0.0" - yargs "^16.0.0" + find-up "^3.0.0" postcss-js@^3.0.3: version "3.0.3" @@ -3921,7 +3880,7 @@ postcss-js@^3.0.3: camelcase-css "^2.0.1" postcss "^8.1.6" -postcss-load-config@^3.0.0, postcss-load-config@^3.0.1, postcss-load-config@^3.1.0: +postcss-load-config@^3.0.1, postcss-load-config@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== @@ -3979,18 +3938,6 @@ postcss-nested@5.0.5: dependencies: postcss-selector-parser "^6.0.4" -postcss-reporter@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.2.tgz#03e9e7381c1afe40646f9c22e7aeeb860e051065" - integrity sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw== - dependencies: - colorette "^1.2.1" - lodash.difference "^4.5.0" - lodash.forown "^4.4.0" - lodash.get "^4.4.2" - lodash.groupby "^4.6.0" - lodash.sortby "^4.7.0" - postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6: version "6.0.6" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" @@ -4023,13 +3970,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" @@ -4189,13 +4129,6 @@ react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= - dependencies: - pify "^2.3.0" - read-cmd-shim@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" @@ -4270,9 +4203,9 @@ redux-thunk@^2.3.0: integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== redux@^4.0.0, redux@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.0.tgz#eb049679f2f523c379f1aff345c8612f294c88d4" - integrity sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g== + version "4.1.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" + integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== dependencies: "@babel/runtime" "^7.9.2" @@ -4320,11 +4253,6 @@ request@^2.88.2: tunnel-agent "^0.6.0" uuid "^3.3.2" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -4398,9 +4326,9 @@ rollup-plugin-polyfill-node@^0.6.2: "@rollup/plugin-inject" "^4.0.0" rollup@^2.23.0: - version "2.55.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.55.1.tgz#66a444648e2fb603d8e329e77a61c608a6510fda" - integrity sha512-1P9w5fpb6b4qroePh8vHKGIvPNxwoCQhjJpIqfZGHLKpZ0xcU2/XBmFxFbc9697/6bmHpmFTLk5R1dAQhFSo0g== + version "2.56.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.2.tgz#a045ff3f6af53ee009b5f5016ca3da0329e5470f" + integrity sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ== optionalDependencies: fsevents "~2.3.2" @@ -4496,7 +4424,7 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -skypack@^0.3.0: +skypack@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/skypack/-/skypack-0.3.2.tgz#9df9fde1ed73ae6874d15111f0636e16f2cab1b9" integrity sha512-je1pix0QYER6iHuUGbgcafRJT5TI+EGUIBfzBLMqo3Wi22I2SzB9TVHQqwKCw8pzJMuHqhVTFEHc3Ey+ra25Sw== @@ -4529,14 +4457,14 @@ slice-ansi@^4.0.0: is-fullwidth-code-point "^3.0.0" smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snowpack@^3.7.1: - version "3.8.3" - resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-3.8.3.tgz#5f136dcbe051189ce20092acd36759d03e6cbf87" - integrity sha512-nD699xWIDk9nGH4V9xKjgIVPA8jXWp/crUG46mu3/11rrdEv94v4xV/j373w3EvegGVQ3JdA5mlNpxDU8wk5uw== + version "3.8.6" + resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-3.8.6.tgz#0bef5c071caef86a2f91aa5c3d5b70d0c2e2793c" + integrity sha512-EZ3Y7RtTiPvxnVFTKPfkvi2PKBrprXCvOHKWQQLBkHonf+xdtG51RiNjtrRLJeCjislAlD6OoeGHUxz76ToGHw== dependencies: "@npmcli/arborist" "^2.6.4" bufferutil "^4.0.2" @@ -4580,7 +4508,7 @@ snowpack@^3.7.1: rimraf "^3.0.0" rollup "~2.37.1" signal-exit "^3.0.3" - skypack "^0.3.0" + skypack "^0.3.2" slash "~3.0.0" source-map "^0.7.3" strip-ansi "^6.0.0" @@ -4650,9 +4578,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== sprintf-js@~1.0.2: version "1.0.3" @@ -4703,7 +4631,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -4790,14 +4718,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-value-types@4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.1.4.tgz#80f37cb4fb024d6394087403dfb275e8bb627e75" - integrity sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg== - dependencies: - hey-listen "^1.0.8" - tslib "^2.1.0" - sub-events@^1.8.9: version "1.8.9" resolved "https://registry.yarnpkg.com/sub-events/-/sub-events-1.8.9.tgz#57b332134ae1ded738f7c2ddbcd9c1bc81ca8c2e" @@ -4867,9 +4787,9 @@ tailwindcss@^2.2.4: tmp "^0.2.1" tar@^6.0.2, tar@^6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.3.tgz#e44b97ee7d6cc7a4c574e8b01174614538291825" - integrity sha512-3rUqwucgVZXTeyJyL2jqtUau8/8r54SioM1xj3AmTX3HnWQdj2AydfJ2qYYayPyIIznSplcvU9mhBb7dR2XF3w== + version "6.1.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.8.tgz#4fc50cfe56511c538ce15b71e05eebe66530cbd4" + integrity sha512-sb9b0cp855NbkMJcskdSYA7b11Q8JsX4qe4pyUAfHp+Y6jBjJeek2ZVlwEfWayshEIwlIzXx0Fain3QG9JPm2A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -4929,10 +4849,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tslib@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== tsutils@^3.21.0: version "3.21.0" @@ -4965,6 +4885,13 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-route@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-route/-/type-route-0.6.0.tgz#0762fde72c592f7fc9eea3451f7c538811b7439e" + integrity sha512-uh5bxHxHOKNDNTetGwBgtSP5ba3SUtnKcdj3d5AjbIALVbYBwaix4wwfpyxqrE9ia31LknXUc+359FChcC01jw== + dependencies: + history "^5.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -5020,6 +4947,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +use-breakpoint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/use-breakpoint/-/use-breakpoint-2.0.1.tgz#0e98cd55a6b0173147b84837a8cdecc63eabfcd7" + integrity sha512-f9PuRHzPsCIBW6oizdGpTAuH+49Tt9hMvByWQYpqI95tUN8k6qDX5WhL5s3b6cQfbubtIHCd1bw/8s5CzSbXpA== + utf-8-validate@^5.0.3: version "5.0.5" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" @@ -5115,17 +5047,16 @@ which-collection@^1.0.1: is-weakset "^2.0.1" which-typed-array@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" - integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + version "1.1.6" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383" + integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q== dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" + available-typed-arrays "^1.0.4" + call-bind "^1.0.2" + es-abstract "^1.18.5" foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.6" which@^2.0.1, which@^2.0.2: version "2.0.2" @@ -5151,15 +5082,6 @@ workerpool@^6.1.2: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.5.tgz#0f7cf076b6215fd7e1da903ff6f22ddd1886b581" integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw== -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5185,11 +5107,6 @@ xtend@^4.0.2: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -5200,23 +5117,15 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^20.0.0, yargs-parser@^20.2.2: +yargs-parser@^20.0.0: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^16.0.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" +yarn@^1.22.11: + version "1.22.11" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.11.tgz#d0104043e7349046e0e2aec977c24be106925ed6" + integrity sha512-AWje4bzqO9RUn3sdnM5N8n4ZJ0BqCc/kqFJvpOI5/EVkINXui0yuvU7NDCEF//+WaxHuNay2uOHxA4+tq1P3cg== yocto-queue@^0.1.0: version "0.1.0"