diff --git a/.eslintrc b/.eslintrc index 51a6ed2..1dca80b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,18 +1,13 @@ { - "extends": ["airbnb", "airbnb/hooks", "prettier"], - "parser": "babel-eslint", + "extends": ["next/core-web-vitals", "prettier"], "env": { "browser": true, "node": true, "es6": true }, "rules": { - "no-console": 0, - "react/jsx-props-no-spreading": 0, - "react/forbid-prop-types": 0, - "react/require-default-props": 0, - "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "import/no-extraneous-dependencies": 0, + "@next/next/no-img-element": 0, "import/order": [ "error", { diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 19027ab..ab80e21 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ Thank you for looking into contributing to`daily-demos`! We want these projects ## Before contributing -### Run prebuilt-ui locally +### Run /prebuilt locally Please follow the instructions in `README.md`. @@ -35,7 +35,7 @@ _Bug reports_ Before creating a new bug report, please do two things: 1. If you want to report a bug you experienced while on a Daily call, try out these [troubleshooting tips](https://help.daily.co/en/articles/2303117-top-troubleshooting-tips) to see if that takes care of the bug. -2. If you're still seeing the error, check to see if somebody else has [already filed the issue](https://github.com/daily-co/daily-demos/issues) before creating a new one. +2. If you're still seeing the error, check to see if somebody else has [already filed the issue](https://github.com/daily-demos/examples/issues) before creating a new one. If you've done those two things and need to create an issue, we'll ask you to tell us: diff --git a/README.md b/README.md index 7651b9b..8b9c557 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Setup dependencies via `yarn install`. Add the required environment variables (e.g. your Daily API key) for the demo being used. Each demo's README will list the required environment variables to run it locally. -Run an example via `yarn workspace @dailyjs/basic-call dev` (replacing `basic-call` with the name of the demo). +Run an example via `yarn workspace @custom/basic-call dev` (replacing `basic-call` with the name of the demo). Please note: these demos are intended as educational resources for using the Daily platform as well as showcasing common usage patterns and best practices. That said, they are not intended to be used as production ready applications. @@ -18,11 +18,11 @@ Please note: these demos are intended as educational resources for using the Dai ## Contents -## [Daily JS (Web)](./dailyjs/) +## [Custom (Web)](./custom/) -Examples that showcase the Daily CallObject using our Javascript library +Examples that showcase the Daily call object using our Javascript library -## [Prebuilt UI](./prebuilt-ui) +## [Prebuilt UI](./prebuilt) Examples that showcase using and customizing the Daily Prebuilt UI diff --git a/dailyjs/.gitignore b/custom/.gitignore similarity index 100% rename from dailyjs/.gitignore rename to custom/.gitignore diff --git a/dailyjs/README.md b/custom/README.md similarity index 90% rename from dailyjs/README.md rename to custom/README.md index 81f366e..6b74046 100644 --- a/dailyjs/README.md +++ b/custom/README.md @@ -1,4 +1,4 @@ -# Daily JS Examples +# Custom Examples (Daily JS) ### [🤙 Basic call](./basic-call) @@ -30,7 +30,7 @@ Demonstrates using manual track management to support larger call sizes We recommend starting with the [basic call](./basic-call) example, showcasing the common flow of a call Daily call, device management and error handling. -Run an examples with `yarn workspace @dailyjs/[demo-name] dev` (replacing `[demo-name]` with the name of the demo you'd like to run e.g. `basic-call`. +Run an examples with `yarn workspace @custom/[demo-name] dev` (replacing `[demo-name]` with the name of the demo you'd like to run e.g. `basic-call`. - Please ensure your Daily rooms are setup to use [web sockets](https://docs.daily.co/reference#domain-configuration) - Follow the instructions within each demo first, making sure to set all the necassary local environment variables etc diff --git a/dailyjs/basic-call/.babelrc b/custom/basic-call/.babelrc similarity index 100% rename from dailyjs/basic-call/.babelrc rename to custom/basic-call/.babelrc diff --git a/dailyjs/basic-call/.gitignore b/custom/basic-call/.gitignore similarity index 100% rename from dailyjs/basic-call/.gitignore rename to custom/basic-call/.gitignore diff --git a/dailyjs/basic-call/README.md b/custom/basic-call/README.md similarity index 90% rename from dailyjs/basic-call/README.md rename to custom/basic-call/README.md index 3fde13d..648f221 100644 --- a/dailyjs/basic-call/README.md +++ b/custom/basic-call/README.md @@ -4,7 +4,7 @@ ### Live example -**[See it in action here ➡️](https://dailyjs-basic-call.vercel.app)** +**[See it in action here ➡️](https://custom-basic-call.vercel.app)** --- @@ -28,7 +28,7 @@ mv env.example .env.local # from project root... yarn -yarn workspace @dailyjs/basic-call dev +yarn workspace @custom/basic-call dev ``` ## How does this example work? @@ -47,7 +47,7 @@ Primary call context that manages Daily call state, participant state and call o **[useCallMachine.js](../shared/contexts/useCallMachine.js)** Abstraction hook that manages Daily call state and error handling -**[ParticipantProvider.js](../shared/contexts/ParticipantProvider.js)** +**[ParticipantsProvider.js](../shared/contexts/ParticipantsProvider.js)** Manages participant state and abstracts common selectors / derived data ## Deploy your own on Vercel diff --git a/dailyjs/basic-call/components/App/App.js b/custom/basic-call/components/App/App.js similarity index 80% rename from dailyjs/basic-call/components/App/App.js rename to custom/basic-call/components/App/App.js index fa7c678..81b43d9 100644 --- a/dailyjs/basic-call/components/App/App.js +++ b/custom/basic-call/components/App/App.js @@ -1,10 +1,10 @@ import React, { useMemo } from 'react'; -import ExpiryTimer from '@dailyjs/shared/components/ExpiryTimer'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useCallUI } from '@dailyjs/shared/hooks/useCallUI'; +import ExpiryTimer from '@custom/shared/components/ExpiryTimer'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useCallUI } from '@custom/shared/hooks/useCallUI'; import PropTypes from 'prop-types'; -import Room from '../Room'; +import Room from '../Call/Room'; import { Asides } from './Asides'; import { Modals } from './Modals'; @@ -13,7 +13,7 @@ export const App = ({ customComponentForState }) => { const componentForState = useCallUI({ state, - room: () => , + room: , ...customComponentForState, }); diff --git a/dailyjs/basic-call/components/App/Asides.js b/custom/basic-call/components/App/Asides.js similarity index 55% rename from dailyjs/basic-call/components/App/Asides.js rename to custom/basic-call/components/App/Asides.js index f78b4c8..4afbca0 100644 --- a/dailyjs/basic-call/components/App/Asides.js +++ b/custom/basic-call/components/App/Asides.js @@ -1,6 +1,7 @@ import React from 'react'; -import { PeopleAside } from '@dailyjs/shared/components/Aside/PeopleAside'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import { NetworkAside } from '@custom/shared/components/Aside'; +import { PeopleAside } from '@custom/shared/components/Aside'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; export const Asides = () => { const { asides } = useUIState(); @@ -8,6 +9,7 @@ export const Asides = () => { return ( <> + {asides.map((AsideComponent) => ( ))} diff --git a/dailyjs/basic-call/components/App/Modals.js b/custom/basic-call/components/App/Modals.js similarity index 62% rename from dailyjs/basic-call/components/App/Modals.js rename to custom/basic-call/components/App/Modals.js index 264ddd7..ba5c27c 100644 --- a/dailyjs/basic-call/components/App/Modals.js +++ b/custom/basic-call/components/App/Modals.js @@ -1,6 +1,6 @@ import React from 'react'; -import DeviceSelectModal from '@dailyjs/shared/components/DeviceSelectModal/DeviceSelectModal'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import DeviceSelectModal from '@custom/shared/components/DeviceSelectModal/DeviceSelectModal'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; export const Modals = () => { const { modals } = useUIState(); diff --git a/dailyjs/basic-call/components/App/index.js b/custom/basic-call/components/App/index.js similarity index 53% rename from dailyjs/basic-call/components/App/index.js rename to custom/basic-call/components/App/index.js index 8ab4977..7e7372b 100644 --- a/dailyjs/basic-call/components/App/index.js +++ b/custom/basic-call/components/App/index.js @@ -1,2 +1 @@ export { App as default } from './App'; -export { Modals } from './Modals'; diff --git a/dailyjs/basic-call/components/Room/RoomContainer.js b/custom/basic-call/components/Call/Container.js similarity index 64% rename from dailyjs/basic-call/components/Room/RoomContainer.js rename to custom/basic-call/components/Call/Container.js index b3fed79..22e0d08 100644 --- a/dailyjs/basic-call/components/Room/RoomContainer.js +++ b/custom/basic-call/components/Call/Container.js @@ -1,12 +1,12 @@ import React, { useMemo } from 'react'; -import { Audio } from '@dailyjs/shared/components/Audio'; -import { BasicTray } from '@dailyjs/shared/components/Tray'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import useJoinSound from '@dailyjs/shared/hooks/useJoinSound'; +import { Audio } from '@custom/shared/components/Audio'; +import { BasicTray } from '@custom/shared/components/Tray'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import useJoinSound from '@custom/shared/hooks/useJoinSound'; import PropTypes from 'prop-types'; -import WaitingRoom from '../WaitingRoom'; +import { WaitingRoom } from './WaitingRoom'; -export const RoomContainer = ({ children }) => { +export const Container = ({ children }) => { const { isOwner } = useParticipants(); useJoinSound(); @@ -42,8 +42,8 @@ export const RoomContainer = ({ children }) => { ); }; -RoomContainer.propTypes = { +Container.propTypes = { children: PropTypes.node, }; -export default RoomContainer; +export default Container; diff --git a/dailyjs/basic-call/components/Room/Header.js b/custom/basic-call/components/Call/Header.js similarity index 69% rename from dailyjs/basic-call/components/Room/Header.js rename to custom/basic-call/components/Call/Header.js index 7491b1e..b158054 100644 --- a/dailyjs/basic-call/components/Room/Header.js +++ b/custom/basic-call/components/Call/Header.js @@ -1,7 +1,7 @@ import React, { useMemo } from 'react'; -import HeaderCapsule from '@dailyjs/shared/components/HeaderCapsule'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import HeaderCapsule from '@custom/shared/components/HeaderCapsule'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; export const Header = () => { const { participantCount } = useParticipants(); @@ -10,7 +10,13 @@ export const Header = () => { return useMemo( () => (
- Daily + Daily Basic call demo @@ -31,7 +37,8 @@ export const Header = () => { flex: 0 0 auto; column-gap: var(--spacing-xxs); box-sizing: border-box; - padding: var(--spacing-sm); + padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-xxs) + var(--spacing-sm); align-items: center; width: 100%; } diff --git a/custom/basic-call/components/Call/Room.js b/custom/basic-call/components/Call/Room.js new file mode 100644 index 0000000..aa4cfe6 --- /dev/null +++ b/custom/basic-call/components/Call/Room.js @@ -0,0 +1,19 @@ +import React from 'react'; +import VideoContainer from '@custom/shared/components/VideoContainer/VideoContainer'; + +import { Container } from './Container'; +import { Header } from './Header'; +import { VideoGrid } from './VideoGrid'; + +export function Room() { + return ( + +
+ + + + + ); +} + +export default Room; diff --git a/dailyjs/basic-call/components/VideoGrid/VideoGrid.js b/custom/basic-call/components/Call/VideoGrid.js similarity index 95% rename from dailyjs/basic-call/components/VideoGrid/VideoGrid.js rename to custom/basic-call/components/Call/VideoGrid.js index 7f66798..e71ff6d 100644 --- a/dailyjs/basic-call/components/VideoGrid/VideoGrid.js +++ b/custom/basic-call/components/Call/VideoGrid.js @@ -1,7 +1,7 @@ import React, { useState, useMemo, useEffect, useRef } from 'react'; -import Tile from '@dailyjs/shared/components/Tile'; -import { DEFAULT_ASPECT_RATIO } from '@dailyjs/shared/constants'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; +import Tile from '@custom/shared/components/Tile'; +import { DEFAULT_ASPECT_RATIO } from '@custom/shared/constants'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; import { useDeepCompareMemo } from 'use-deep-compare'; /** diff --git a/dailyjs/basic-call/components/WaitingRoom/WaitingRoom.js b/custom/basic-call/components/Call/WaitingRoom.js similarity index 73% rename from dailyjs/basic-call/components/WaitingRoom/WaitingRoom.js rename to custom/basic-call/components/Call/WaitingRoom.js index c4b2605..4266d44 100644 --- a/dailyjs/basic-call/components/WaitingRoom/WaitingRoom.js +++ b/custom/basic-call/components/Call/WaitingRoom.js @@ -2,8 +2,8 @@ import React from 'react'; import { WaitingRoomModal, WaitingRoomNotification, -} from '@dailyjs/shared/components/WaitingRoom'; -import { useWaitingRoom } from '@dailyjs/shared/contexts/WaitingRoomProvider'; +} from '@custom/shared/components/WaitingRoom'; +import { useWaitingRoom } from '@custom/shared/contexts/WaitingRoomProvider'; export const WaitingRoom = () => { const { setShowModal, showModal } = useWaitingRoom(); diff --git a/dailyjs/basic-call/components/CreatingRoom/CreatingRoom.js b/custom/basic-call/components/Prejoin/CreatingRoom.js similarity index 92% rename from dailyjs/basic-call/components/CreatingRoom/CreatingRoom.js rename to custom/basic-call/components/Prejoin/CreatingRoom.js index 4973120..29b779d 100644 --- a/dailyjs/basic-call/components/CreatingRoom/CreatingRoom.js +++ b/custom/basic-call/components/Prejoin/CreatingRoom.js @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; -import { Card, CardHeader, CardBody } from '@dailyjs/shared/components/Card'; -import Loader from '@dailyjs/shared/components/Loader'; -import { Well } from '@dailyjs/shared/components/Well'; +import { Card, CardHeader, CardBody } from '@custom/shared/components/Card'; +import Loader from '@custom/shared/components/Loader'; +import Well from '@custom/shared/components/Well'; import PropTypes from 'prop-types'; export const CreatingRoom = ({ onCreated }) => { diff --git a/dailyjs/basic-call/components/Intro/Intro.js b/custom/basic-call/components/Prejoin/Intro.js similarity index 87% rename from dailyjs/basic-call/components/Intro/Intro.js rename to custom/basic-call/components/Prejoin/Intro.js index 2fe43bb..0f0eaf8 100644 --- a/dailyjs/basic-call/components/Intro/Intro.js +++ b/custom/basic-call/components/Prejoin/Intro.js @@ -1,14 +1,14 @@ import React, { useEffect, useState } from 'react'; -import { Button } from '@dailyjs/shared/components/Button'; +import Button from '@custom/shared/components/Button'; import { Card, CardBody, CardFooter, CardHeader, -} from '@dailyjs/shared/components/Card'; -import Field from '@dailyjs/shared/components/Field'; -import { TextInput, BooleanInput } from '@dailyjs/shared/components/Input'; -import { Well } from '@dailyjs/shared/components/Well'; +} from '@custom/shared/components/Card'; +import Field from '@custom/shared/components/Field'; +import { TextInput, BooleanInput } from '@custom/shared/components/Input'; +import Well from '@custom/shared/components/Well'; import PropTypes from 'prop-types'; /** diff --git a/dailyjs/basic-call/components/Intro/NotConfigured.js b/custom/basic-call/components/Prejoin/NotConfigured.js similarity index 92% rename from dailyjs/basic-call/components/Intro/NotConfigured.js rename to custom/basic-call/components/Prejoin/NotConfigured.js index 75a32fd..7c379ed 100644 --- a/dailyjs/basic-call/components/Intro/NotConfigured.js +++ b/custom/basic-call/components/Prejoin/NotConfigured.js @@ -1,5 +1,5 @@ import React from 'react'; -import { Card, CardBody, CardHeader } from '@dailyjs/shared/components/Card'; +import { Card, CardBody, CardHeader } from '@custom/shared/components/Card'; export const NotConfigured = () => ( diff --git a/custom/basic-call/env.example b/custom/basic-call/env.example new file mode 100644 index 0000000..b4eeffe --- /dev/null +++ b/custom/basic-call/env.example @@ -0,0 +1,11 @@ +# Domain excluding 'https://' and 'daily.co' e.g. 'somedomain' +DAILY_DOMAIN= + +# Obtained from https://dashboard.daily.co/developers +DAILY_API_KEY= + +# Daily REST API endpoint +DAILY_REST_DOMAIN=https://api.daily.co/v1 + +# Run in demo mode (will create a demo room for you to try) +DAILY_DEMO_MODE=0 \ No newline at end of file diff --git a/dailyjs/basic-call/image.png b/custom/basic-call/image.png similarity index 100% rename from dailyjs/basic-call/image.png rename to custom/basic-call/image.png diff --git a/dailyjs/basic-call/index.js b/custom/basic-call/index.js similarity index 100% rename from dailyjs/basic-call/index.js rename to custom/basic-call/index.js diff --git a/dailyjs/basic-call/next.config.js b/custom/basic-call/next.config.js similarity index 74% rename from dailyjs/basic-call/next.config.js rename to custom/basic-call/next.config.js index d054cbd..81f29cd 100644 --- a/dailyjs/basic-call/next.config.js +++ b/custom/basic-call/next.config.js @@ -1,5 +1,5 @@ const withPlugins = require('next-compose-plugins'); -const withTM = require('next-transpile-modules')(['@dailyjs/shared']); +const withTM = require('next-transpile-modules')(['@custom/shared']); const packageJson = require('./package.json'); diff --git a/custom/basic-call/package.json b/custom/basic-call/package.json new file mode 100644 index 0000000..f82188c --- /dev/null +++ b/custom/basic-call/package.json @@ -0,0 +1,22 @@ +{ + "name": "@custom/basic-call", + "description": "Basic Call Example", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@custom/shared": "*", + "next": "^11.1.2", + "pluralize": "^8.0.0" + }, + "devDependencies": { + "babel-plugin-module-resolver": "^4.1.0", + "next-compose-plugins": "^2.2.1", + "next-transpile-modules": "^8.0.0" + } +} diff --git a/dailyjs/basic-call/pages/_app.js b/custom/basic-call/pages/_app.js similarity index 83% rename from dailyjs/basic-call/pages/_app.js rename to custom/basic-call/pages/_app.js index 790ea7a..d8a7a82 100644 --- a/dailyjs/basic-call/pages/_app.js +++ b/custom/basic-call/pages/_app.js @@ -1,6 +1,5 @@ import React from 'react'; -import GlobalHead from '@dailyjs/shared/components/GlobalHead'; -import GlobalStyle from '@dailyjs/shared/components/GlobalStyle'; +import GlobalStyle from '@custom/shared/components/GlobalStyle'; import Head from 'next/head'; import PropTypes from 'prop-types'; @@ -10,7 +9,6 @@ function App({ Component, pageProps }) { Daily - {process.env.PROJECT_TITLE} - + + + + + +
+ + + + ); + } +} + +export default MyDocument; diff --git a/dailyjs/basic-call/pages/api/createRoom.js b/custom/basic-call/pages/api/createRoom.js similarity index 92% rename from dailyjs/basic-call/pages/api/createRoom.js rename to custom/basic-call/pages/api/createRoom.js index 1a67932..969d16e 100644 --- a/dailyjs/basic-call/pages/api/createRoom.js +++ b/custom/basic-call/pages/api/createRoom.js @@ -1,5 +1,5 @@ export default async function handler(req, res) { - const { privacy, expiryMinutes } = req.body; + const { privacy, expiryMinutes, ...rest } = req.body; if (req.method === 'POST') { console.log(`Creating room on domain ${process.env.DAILY_DOMAIN}`); @@ -16,7 +16,7 @@ export default async function handler(req, res) { exp: Math.round(Date.now() / 1000) + (expiryMinutes || 5) * 60, // expire in x minutes eject_at_room_exp: true, enable_knocking: privacy !== 'public', - enable_recording: 'local', + ...rest, }, }), }; diff --git a/dailyjs/basic-call/pages/api/token.js b/custom/basic-call/pages/api/token.js similarity index 100% rename from dailyjs/basic-call/pages/api/token.js rename to custom/basic-call/pages/api/token.js diff --git a/dailyjs/basic-call/pages/index.js b/custom/basic-call/pages/index.js similarity index 82% rename from dailyjs/basic-call/pages/index.js rename to custom/basic-call/pages/index.js index d2c213b..6ba92ec 100644 --- a/dailyjs/basic-call/pages/index.js +++ b/custom/basic-call/pages/index.js @@ -1,15 +1,16 @@ import React, { useState, useCallback } from 'react'; -import { CallProvider } from '@dailyjs/shared/contexts/CallProvider'; -import { MediaDeviceProvider } from '@dailyjs/shared/contexts/MediaDeviceProvider'; -import { ParticipantsProvider } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { TracksProvider } from '@dailyjs/shared/contexts/TracksProvider'; -import { UIStateProvider } from '@dailyjs/shared/contexts/UIStateProvider'; -import { WaitingRoomProvider } from '@dailyjs/shared/contexts/WaitingRoomProvider'; -import getDemoProps from '@dailyjs/shared/lib/demoProps'; +import { CallProvider } from '@custom/shared/contexts/CallProvider'; +import { MediaDeviceProvider } from '@custom/shared/contexts/MediaDeviceProvider'; +import { ParticipantsProvider } from '@custom/shared/contexts/ParticipantsProvider'; +import { TracksProvider } from '@custom/shared/contexts/TracksProvider'; +import { UIStateProvider } from '@custom/shared/contexts/UIStateProvider'; +import { WaitingRoomProvider } from '@custom/shared/contexts/WaitingRoomProvider'; +import getDemoProps from '@custom/shared/lib/demoProps'; import PropTypes from 'prop-types'; import App from '../components/App'; -import { CreatingRoom } from '../components/CreatingRoom'; -import { Intro, NotConfigured } from '../components/Intro'; +import CreatingRoom from '../components/Prejoin/CreatingRoom'; +import Intro from '../components/Prejoin/Intro'; +import NotConfigured from '../components/Prejoin/NotConfigured'; /** * Index page @@ -22,7 +23,6 @@ import { Intro, NotConfigured } from '../components/Intro'; export default function Index({ domain, isConfigured = false, - predefinedRoom = '', forceFetchToken = false, forceOwner = false, subscribeToTracksAutomatically = true, @@ -32,7 +32,7 @@ export default function Index({ customTrayComponent, customAppComponent, }) { - const [roomName, setRoomName] = useState(predefinedRoom); + const [roomName, setRoomName] = useState(); const [fetchingToken, setFetchingToken] = useState(false); const [token, setToken] = useState(); const [tokenError, setTokenError] = useState(); @@ -137,7 +137,6 @@ export default function Index({ Index.propTypes = { isConfigured: PropTypes.bool.isRequired, - predefinedRoom: PropTypes.string, domain: PropTypes.string, asides: PropTypes.arrayOf(PropTypes.func), modals: PropTypes.arrayOf(PropTypes.func), diff --git a/dailyjs/basic-call/pages/not-found.js b/custom/basic-call/pages/not-found.js similarity index 89% rename from dailyjs/basic-call/pages/not-found.js rename to custom/basic-call/pages/not-found.js index 6a7b1f6..1d25fb7 100644 --- a/dailyjs/basic-call/pages/not-found.js +++ b/custom/basic-call/pages/not-found.js @@ -1,5 +1,5 @@ import React from 'react'; -import MessageCard from '@dailyjs/shared/components/MessageCard'; +import MessageCard from '@custom/shared/components/MessageCard'; export default function RoomNotFound() { return ( diff --git a/dailyjs/basic-call/public/assets/daily-logo-dark.svg b/custom/basic-call/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/basic-call/public/assets/daily-logo-dark.svg rename to custom/basic-call/public/assets/daily-logo-dark.svg diff --git a/dailyjs/basic-call/public/assets/daily-logo.svg b/custom/basic-call/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/basic-call/public/assets/daily-logo.svg rename to custom/basic-call/public/assets/daily-logo.svg diff --git a/dailyjs/basic-call/public/assets/join.mp3 b/custom/basic-call/public/assets/join.mp3 similarity index 100% rename from dailyjs/basic-call/public/assets/join.mp3 rename to custom/basic-call/public/assets/join.mp3 diff --git a/dailyjs/basic-call/public/assets/message.mp3 b/custom/basic-call/public/assets/message.mp3 similarity index 100% rename from dailyjs/basic-call/public/assets/message.mp3 rename to custom/basic-call/public/assets/message.mp3 diff --git a/dailyjs/basic-call/public/assets/pattern-bg.png b/custom/basic-call/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/basic-call/public/assets/pattern-bg.png rename to custom/basic-call/public/assets/pattern-bg.png diff --git a/dailyjs/flying-emojis/.babelrc b/custom/flying-emojis/.babelrc similarity index 100% rename from dailyjs/flying-emojis/.babelrc rename to custom/flying-emojis/.babelrc diff --git a/dailyjs/flying-emojis/README.md b/custom/flying-emojis/README.md similarity index 89% rename from dailyjs/flying-emojis/README.md rename to custom/flying-emojis/README.md index 4c7c69d..c46f833 100644 --- a/dailyjs/flying-emojis/README.md +++ b/custom/flying-emojis/README.md @@ -4,7 +4,7 @@ ### Live example -**[See it in action here ➡️](https://dailyjs-flying-emojis.vercel.app)** +**[See it in action here ➡️](https://custom-flying-emojis.vercel.app)** --- @@ -23,7 +23,7 @@ Please note: this demo is not currently mobile optimised mv env.example .env.local yarn -yarn workspace @dailyjs/flying-emojis dev +yarn workspace @custom/flying-emojis dev ``` ## Deploy your own on Vercel diff --git a/dailyjs/flying-emojis/components/App/App.js b/custom/flying-emojis/components/App.js similarity index 54% rename from dailyjs/flying-emojis/components/App/App.js rename to custom/flying-emojis/components/App.js index e006832..fcee52a 100644 --- a/dailyjs/flying-emojis/components/App/App.js +++ b/custom/flying-emojis/components/App.js @@ -1,6 +1,6 @@ import React from 'react'; -import App from '@dailyjs/basic-call/components/App'; -import FlyingEmojiOverlay from '../FlyingEmojis/FlyingEmojisOverlay'; +import App from '@custom/basic-call/components/App'; +import FlyingEmojiOverlay from './FlyingEmojisOverlay'; export const AppWithEmojis = () => ( <> diff --git a/dailyjs/flying-emojis/components/FlyingEmojis/FlyingEmojisOverlay.js b/custom/flying-emojis/components/FlyingEmojisOverlay.js similarity index 98% rename from dailyjs/flying-emojis/components/FlyingEmojis/FlyingEmojisOverlay.js rename to custom/flying-emojis/components/FlyingEmojisOverlay.js index 68f0ff9..35b87d7 100644 --- a/dailyjs/flying-emojis/components/FlyingEmojis/FlyingEmojisOverlay.js +++ b/custom/flying-emojis/components/FlyingEmojisOverlay.js @@ -1,5 +1,5 @@ import React, { useEffect, useRef, useCallback } from 'react'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; const EMOJI_MAP = { fire: '🔥', diff --git a/dailyjs/flying-emojis/components/Tray/Tray.js b/custom/flying-emojis/components/Tray.js similarity index 91% rename from dailyjs/flying-emojis/components/Tray/Tray.js rename to custom/flying-emojis/components/Tray.js index 113de3d..2ee605f 100644 --- a/dailyjs/flying-emojis/components/Tray/Tray.js +++ b/custom/flying-emojis/components/Tray.js @@ -1,8 +1,8 @@ import React, { useEffect, useState } from 'react'; -import Button from '@dailyjs/shared/components/Button'; -import { TrayButton } from '@dailyjs/shared/components/Tray'; -import { ReactComponent as IconStar } from '@dailyjs/shared/icons/star-md.svg'; +import Button from '@custom/shared/components/Button'; +import { TrayButton } from '@custom/shared/components/Tray'; +import { ReactComponent as IconStar } from '@custom/shared/icons/star-md.svg'; const COOLDOWN = 1500; diff --git a/dailyjs/basic-call/env.example b/custom/flying-emojis/env.example similarity index 100% rename from dailyjs/basic-call/env.example rename to custom/flying-emojis/env.example diff --git a/dailyjs/flying-emojis/image.png b/custom/flying-emojis/image.png similarity index 100% rename from dailyjs/flying-emojis/image.png rename to custom/flying-emojis/image.png diff --git a/dailyjs/flying-emojis/index.js b/custom/flying-emojis/index.js similarity index 100% rename from dailyjs/flying-emojis/index.js rename to custom/flying-emojis/index.js diff --git a/dailyjs/pagination/next.config.js b/custom/flying-emojis/next.config.js similarity index 84% rename from dailyjs/pagination/next.config.js rename to custom/flying-emojis/next.config.js index 9a0a6ee..9140e28 100644 --- a/dailyjs/pagination/next.config.js +++ b/custom/flying-emojis/next.config.js @@ -1,7 +1,7 @@ const withPlugins = require('next-compose-plugins'); const withTM = require('next-transpile-modules')([ - '@dailyjs/shared', - '@dailyjs/basic-call', + '@custom/shared', + '@custom/basic-call', ]); const packageJson = require('./package.json'); diff --git a/dailyjs/flying-emojis/package.json b/custom/flying-emojis/package.json similarity index 83% rename from dailyjs/flying-emojis/package.json rename to custom/flying-emojis/package.json index a084b01..a3244d3 100644 --- a/dailyjs/flying-emojis/package.json +++ b/custom/flying-emojis/package.json @@ -1,5 +1,5 @@ { - "name": "@dailyjs/flying-emojis", + "name": "@custom/flying-emojis", "description": "Basic Call + Flying Emojis", "version": "0.1.0", "private": true, @@ -10,8 +10,8 @@ "lint": "next lint" }, "dependencies": { - "@dailyjs/basic-call": "*", - "@dailyjs/shared": "*", + "@custom/basic-call": "*", + "@custom/shared": "*", "next": "^11.0.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/dailyjs/flying-emojis/pages/_app.js b/custom/flying-emojis/pages/_app.js similarity index 81% rename from dailyjs/flying-emojis/pages/_app.js rename to custom/flying-emojis/pages/_app.js index 16a9742..8f9ab26 100644 --- a/dailyjs/flying-emojis/pages/_app.js +++ b/custom/flying-emojis/pages/_app.js @@ -1,5 +1,5 @@ import React from 'react'; -import App from '@dailyjs/basic-call/pages/_app'; +import App from '@custom/basic-call/pages/_app'; import AppWithEmojis from '../components/App'; import Tray from '../components/Tray'; diff --git a/custom/flying-emojis/pages/_document.js b/custom/flying-emojis/pages/_document.js new file mode 100644 index 0000000..31f6c1f --- /dev/null +++ b/custom/flying-emojis/pages/_document.js @@ -0,0 +1,3 @@ +import Doc from '@custom/basic-call/pages/_document'; + +export default Doc; diff --git a/dailyjs/flying-emojis/pages/api b/custom/flying-emojis/pages/api similarity index 100% rename from dailyjs/flying-emojis/pages/api rename to custom/flying-emojis/pages/api diff --git a/dailyjs/flying-emojis/pages/index.js b/custom/flying-emojis/pages/index.js similarity index 63% rename from dailyjs/flying-emojis/pages/index.js rename to custom/flying-emojis/pages/index.js index d25e77e..84a3f53 100644 --- a/dailyjs/flying-emojis/pages/index.js +++ b/custom/flying-emojis/pages/index.js @@ -1,5 +1,5 @@ -import Index from '@dailyjs/basic-call/pages'; -import getDemoProps from '@dailyjs/shared/lib/demoProps'; +import Index from '@custom/basic-call/pages'; +import getDemoProps from '@custom/shared/lib/demoProps'; export async function getStaticProps() { const defaultProps = getDemoProps(); diff --git a/dailyjs/flying-emojis/public/assets/daily-logo-dark.svg b/custom/flying-emojis/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/flying-emojis/public/assets/daily-logo-dark.svg rename to custom/flying-emojis/public/assets/daily-logo-dark.svg diff --git a/dailyjs/flying-emojis/public/assets/daily-logo.svg b/custom/flying-emojis/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/flying-emojis/public/assets/daily-logo.svg rename to custom/flying-emojis/public/assets/daily-logo.svg diff --git a/dailyjs/flying-emojis/public/assets/join.mp3 b/custom/flying-emojis/public/assets/join.mp3 similarity index 100% rename from dailyjs/flying-emojis/public/assets/join.mp3 rename to custom/flying-emojis/public/assets/join.mp3 diff --git a/dailyjs/flying-emojis/public/assets/message.mp3 b/custom/flying-emojis/public/assets/message.mp3 similarity index 100% rename from dailyjs/flying-emojis/public/assets/message.mp3 rename to custom/flying-emojis/public/assets/message.mp3 diff --git a/dailyjs/flying-emojis/public/assets/pattern-bg.png b/custom/flying-emojis/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/flying-emojis/public/assets/pattern-bg.png rename to custom/flying-emojis/public/assets/pattern-bg.png diff --git a/dailyjs/live-streaming/.babelrc b/custom/live-streaming/.babelrc similarity index 100% rename from dailyjs/live-streaming/.babelrc rename to custom/live-streaming/.babelrc diff --git a/dailyjs/live-streaming/README.md b/custom/live-streaming/README.md similarity index 93% rename from dailyjs/live-streaming/README.md rename to custom/live-streaming/README.md index c5e7974..e8da111 100644 --- a/dailyjs/live-streaming/README.md +++ b/custom/live-streaming/README.md @@ -4,7 +4,7 @@ ### Live example -**[See it in action here ➡️](https://dailyjs-live-streaming.vercel.app)** +**[See it in action here ➡️](https://custom-live-streaming.vercel.app)** --- @@ -25,7 +25,7 @@ Please note: this demo is not currently mobile optimised mv env.example .env.local yarn -yarn workspace @dailyjs/live-streaming dev +yarn workspace @custom/live-streaming dev ``` ## How does this example work? diff --git a/dailyjs/live-streaming/components/App/App.js b/custom/live-streaming/components/App.js similarity index 65% rename from dailyjs/live-streaming/components/App/App.js rename to custom/live-streaming/components/App.js index 4749551..cd47217 100644 --- a/dailyjs/live-streaming/components/App/App.js +++ b/custom/live-streaming/components/App.js @@ -1,7 +1,7 @@ import React from 'react'; -import App from '@dailyjs/basic-call/components/App'; -import { LiveStreamingProvider } from '../../contexts/LiveStreamingProvider'; +import App from '@custom/basic-call/components/App'; +import { LiveStreamingProvider } from '../contexts/LiveStreamingProvider'; // Extend our basic call app component with the live streaming context export const AppWithLiveStreaming = () => ( diff --git a/dailyjs/live-streaming/components/LiveStreamingModal/LiveStreamingModal.js b/custom/live-streaming/components/LiveStreamingModal.js similarity index 85% rename from dailyjs/live-streaming/components/LiveStreamingModal/LiveStreamingModal.js rename to custom/live-streaming/components/LiveStreamingModal.js index 2cee300..698f0d4 100644 --- a/dailyjs/live-streaming/components/LiveStreamingModal/LiveStreamingModal.js +++ b/custom/live-streaming/components/LiveStreamingModal.js @@ -1,14 +1,14 @@ import React, { useEffect, useState } from 'react'; -import { Button } from '@dailyjs/shared/components/Button'; -import { CardBody } from '@dailyjs/shared/components/Card'; -import Field from '@dailyjs/shared/components/Field'; -import { TextInput, SelectInput } from '@dailyjs/shared/components/Input'; -import Modal from '@dailyjs/shared/components/Modal'; -import { Well } from '@dailyjs/shared/components/Well'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { useLiveStreaming } from '../../contexts/LiveStreamingProvider'; +import { Button } from '@custom/shared/components/Button'; +import { CardBody } from '@custom/shared/components/Card'; +import Field from '@custom/shared/components/Field'; +import { TextInput, SelectInput } from '@custom/shared/components/Input'; +import Modal from '@custom/shared/components/Modal'; +import { Well } from '@custom/shared/components/Well'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { useLiveStreaming } from '../contexts/LiveStreamingProvider'; export const LIVE_STREAMING_MODAL = 'live-streaming'; @@ -55,7 +55,7 @@ export const LiveStreamingModal = () => { isOpen={currentModals[LIVE_STREAMING_MODAL]} onClose={() => closeModal(LIVE_STREAMING_MODAL)} actions={[ - , !isStreaming ? ( diff --git a/dailyjs/live-streaming/components/Tray/Tray.js b/custom/live-streaming/components/Tray.js similarity index 51% rename from dailyjs/live-streaming/components/Tray/Tray.js rename to custom/live-streaming/components/Tray.js index fa22345..baee790 100644 --- a/dailyjs/live-streaming/components/Tray/Tray.js +++ b/custom/live-streaming/components/Tray.js @@ -1,11 +1,11 @@ import React from 'react'; -import { TrayButton } from '@dailyjs/shared/components/Tray'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { ReactComponent as IconStream } from '@dailyjs/shared/icons/streaming-md.svg'; +import { TrayButton } from '@custom/shared/components/Tray'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { ReactComponent as IconStream } from '@custom/shared/icons/streaming-md.svg'; -import { useLiveStreaming } from '../../contexts/LiveStreamingProvider'; -import { LIVE_STREAMING_MODAL } from '../LiveStreamingModal'; +import { useLiveStreaming } from '../contexts/LiveStreamingProvider'; +import { LIVE_STREAMING_MODAL } from './LiveStreamingModal'; export const Tray = () => { const { openModal } = useUIState(); diff --git a/dailyjs/live-streaming/contexts/LiveStreamingProvider.js b/custom/live-streaming/contexts/LiveStreamingProvider.js similarity index 93% rename from dailyjs/live-streaming/contexts/LiveStreamingProvider.js rename to custom/live-streaming/contexts/LiveStreamingProvider.js index f0c4a51..6e940c8 100644 --- a/dailyjs/live-streaming/contexts/LiveStreamingProvider.js +++ b/custom/live-streaming/contexts/LiveStreamingProvider.js @@ -5,8 +5,8 @@ import React, { useEffect, useCallback, } from 'react'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; import PropTypes from 'prop-types'; export const LiveStreamingContext = createContext(); diff --git a/dailyjs/flying-emojis/env.example b/custom/live-streaming/env.example similarity index 100% rename from dailyjs/flying-emojis/env.example rename to custom/live-streaming/env.example diff --git a/dailyjs/live-streaming/image.png b/custom/live-streaming/image.png similarity index 100% rename from dailyjs/live-streaming/image.png rename to custom/live-streaming/image.png diff --git a/dailyjs/live-streaming/index.js b/custom/live-streaming/index.js similarity index 100% rename from dailyjs/live-streaming/index.js rename to custom/live-streaming/index.js diff --git a/dailyjs/flying-emojis/next.config.js b/custom/live-streaming/next.config.js similarity index 84% rename from dailyjs/flying-emojis/next.config.js rename to custom/live-streaming/next.config.js index 9a0a6ee..9140e28 100644 --- a/dailyjs/flying-emojis/next.config.js +++ b/custom/live-streaming/next.config.js @@ -1,7 +1,7 @@ const withPlugins = require('next-compose-plugins'); const withTM = require('next-transpile-modules')([ - '@dailyjs/shared', - '@dailyjs/basic-call', + '@custom/shared', + '@custom/basic-call', ]); const packageJson = require('./package.json'); diff --git a/dailyjs/live-streaming/package.json b/custom/live-streaming/package.json similarity index 83% rename from dailyjs/live-streaming/package.json rename to custom/live-streaming/package.json index a255016..e89298e 100644 --- a/dailyjs/live-streaming/package.json +++ b/custom/live-streaming/package.json @@ -1,5 +1,5 @@ { - "name": "@dailyjs/live-streaming", + "name": "@custom/live-streaming", "description": "Basic Call + Live Streaming", "version": "0.1.0", "private": true, @@ -10,8 +10,8 @@ "lint": "next lint" }, "dependencies": { - "@dailyjs/shared": "*", - "@dailyjs/basic-call": "*", + "@custom/shared": "*", + "@custom/basic-call": "*", "next": "^11.0.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/dailyjs/live-streaming/pages/_app.js b/custom/live-streaming/pages/_app.js similarity index 87% rename from dailyjs/live-streaming/pages/_app.js rename to custom/live-streaming/pages/_app.js index 7a097c4..4cc8b4b 100644 --- a/dailyjs/live-streaming/pages/_app.js +++ b/custom/live-streaming/pages/_app.js @@ -1,5 +1,5 @@ import React from 'react'; -import App from '@dailyjs/basic-call/pages/_app'; +import App from '@custom/basic-call/pages/_app'; import AppWithLiveStreaming from '../components/App'; import { LiveStreamingModal } from '../components/LiveStreamingModal'; diff --git a/custom/live-streaming/pages/_document.js b/custom/live-streaming/pages/_document.js new file mode 100644 index 0000000..31f6c1f --- /dev/null +++ b/custom/live-streaming/pages/_document.js @@ -0,0 +1,3 @@ +import Doc from '@custom/basic-call/pages/_document'; + +export default Doc; diff --git a/dailyjs/live-streaming/pages/api b/custom/live-streaming/pages/api similarity index 100% rename from dailyjs/live-streaming/pages/api rename to custom/live-streaming/pages/api diff --git a/dailyjs/pagination/pages/index.js b/custom/live-streaming/pages/index.js similarity index 67% rename from dailyjs/pagination/pages/index.js rename to custom/live-streaming/pages/index.js index 2668138..f61b429 100644 --- a/dailyjs/pagination/pages/index.js +++ b/custom/live-streaming/pages/index.js @@ -1,5 +1,5 @@ -import Index from '@dailyjs/basic-call/pages'; -import getDemoProps from '@dailyjs/shared/lib/demoProps'; +import Index from '@custom/basic-call/pages'; +import getDemoProps from '@custom/shared/lib/demoProps'; export async function getStaticProps() { const defaultProps = getDemoProps(); diff --git a/dailyjs/live-streaming/public/assets/daily-logo-dark.svg b/custom/live-streaming/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/live-streaming/public/assets/daily-logo-dark.svg rename to custom/live-streaming/public/assets/daily-logo-dark.svg diff --git a/dailyjs/live-streaming/public/assets/daily-logo.svg b/custom/live-streaming/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/live-streaming/public/assets/daily-logo.svg rename to custom/live-streaming/public/assets/daily-logo.svg diff --git a/dailyjs/live-streaming/public/assets/join.mp3 b/custom/live-streaming/public/assets/join.mp3 similarity index 100% rename from dailyjs/live-streaming/public/assets/join.mp3 rename to custom/live-streaming/public/assets/join.mp3 diff --git a/dailyjs/live-streaming/public/assets/message.mp3 b/custom/live-streaming/public/assets/message.mp3 similarity index 100% rename from dailyjs/live-streaming/public/assets/message.mp3 rename to custom/live-streaming/public/assets/message.mp3 diff --git a/dailyjs/live-streaming/public/assets/pattern-bg.png b/custom/live-streaming/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/live-streaming/public/assets/pattern-bg.png rename to custom/live-streaming/public/assets/pattern-bg.png diff --git a/dailyjs/pagination/.babelrc b/custom/live-transcription/.babelrc similarity index 100% rename from dailyjs/pagination/.babelrc rename to custom/live-transcription/.babelrc diff --git a/custom/live-transcription/README.md b/custom/live-transcription/README.md new file mode 100644 index 0000000..903c19a --- /dev/null +++ b/custom/live-transcription/README.md @@ -0,0 +1,46 @@ +# Live Transcription + +![Live Transcription](./image.png) + +### Live example + +**[See it in action here ➡️](https://custom-live-transcription.vercel.app)** + +--- + +## What does this demo do? + +- Use `startTranscription()` and `stopTranscription()` methods to create a transcript of a call +- Integrates Deepgram transcription service into Daily calls +- Listen for incoming transcription messages using the call object `app-message` event +- Extend the basic call demo with a transcription provider and aside +- Show a notification bubble on transcript tray button when a new message is received + +Please note: this demo is not currently mobile optimised + +### Getting started + +``` +# set both DAILY_API_KEY and DAILY_DOMAIN +mv env.example .env.local + +yarn +yarn workspace @custom/live-transcription dev +``` + +### Setting up transcription + +For testing the transcription service, you will have to register for a Deepgram API key and configure your Daily domain with that key. + +TODO: Add more instructions here, or point to docs when ready. + +## How does this example work? + +In this example we extend the [basic call demo](../basic-call) with the ability to generate transcription of the meeting in real time and log that in a side panel. + +We pass a custom tray object, a custom app object (wrapping the original in a new `TranscriptionProvider`) as well as add our `TranscriptionAside` panel. We also symlink both the `public` and `pages/api` folders from the basic call. + + +## Deploy your own on Vercel + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/daily-co/clone-flow?repository-url=https%3A%2F%2Fgithub.com%2Fdaily-demos%2Fexamples.git&env=DAILY_DOMAIN%2CDAILY_API_KEY&envDescription=Your%20Daily%20domain%20and%20API%20key%20can%20be%20found%20on%20your%20account%20dashboard&envLink=https%3A%2F%2Fdashboard.daily.co&project-name=daily-examples&repo-name=daily-examples) diff --git a/custom/live-transcription/components/App.js b/custom/live-transcription/components/App.js new file mode 100644 index 0000000..064f8c2 --- /dev/null +++ b/custom/live-transcription/components/App.js @@ -0,0 +1,13 @@ +import React from 'react'; + +import App from '@custom/basic-call/components/App'; +import { TranscriptionProvider } from '../contexts/TranscriptionProvider'; + +// Extend our basic call app component with the Live Transcription context +export const AppWithTranscription = () => ( + + + +); + +export default AppWithTranscription; diff --git a/custom/live-transcription/components/TranscriptionAside.js b/custom/live-transcription/components/TranscriptionAside.js new file mode 100644 index 0000000..7b17dd5 --- /dev/null +++ b/custom/live-transcription/components/TranscriptionAside.js @@ -0,0 +1,97 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Aside } from '@custom/shared/components/Aside'; +import Button from '@custom/shared/components/Button'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { useTranscription } from '../contexts/TranscriptionProvider'; + +export const TRANSCRIPTION_ASIDE = 'transcription'; + +export const TranscriptionAside = () => { + const { callObject } = useCallState(); + const { showAside, setShowAside } = useUIState(); + const { transcriptionHistory } = useTranscription(); + const [isTranscribing, setIsTranscribing] = useState(false); + const { isOwner } = useParticipants(); + + const msgWindowRef = useRef(); + + + useEffect(() => { + if (msgWindowRef.current) { + msgWindowRef.current.scrollTop = msgWindowRef.current.scrollHeight; + } + }, [transcriptionHistory?.length]); + + if (!showAside || showAside !== TRANSCRIPTION_ASIDE) { + return null; + } + + async function startTranscription() { + setIsTranscribing(true); + await callObject.startTranscription(); + } + + async function stopTranscription() { + setIsTranscribing(false); + await callObject.stopTranscription(); + } + + return ( + + ); +}; + +export default TranscriptionAside; diff --git a/custom/live-transcription/components/Tray.js b/custom/live-transcription/components/Tray.js new file mode 100644 index 0000000..5041ab6 --- /dev/null +++ b/custom/live-transcription/components/Tray.js @@ -0,0 +1,26 @@ +import React from 'react'; + +import { TrayButton } from '@custom/shared/components/Tray'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { ReactComponent as IconTranscription } from '@custom/shared/icons/chat-md.svg'; +import { useTranscription } from '../contexts/TranscriptionProvider'; +import { TRANSCRIPTION_ASIDE } from './TranscriptionAside'; + +export const Tray = () => { + const { toggleAside } = useUIState(); + const { hasNewMessages } = useTranscription(); + + return ( + { + toggleAside(TRANSCRIPTION_ASIDE); + }} + > + + + ); +}; + +export default Tray; diff --git a/custom/live-transcription/contexts/TranscriptionProvider.js b/custom/live-transcription/contexts/TranscriptionProvider.js new file mode 100644 index 0000000..6703901 --- /dev/null +++ b/custom/live-transcription/contexts/TranscriptionProvider.js @@ -0,0 +1,92 @@ +import React, { + createContext, + useCallback, + useContext, + useEffect, + useState, +} from 'react'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { nanoid } from 'nanoid'; +import PropTypes from 'prop-types'; + +export const TranscriptionContext = createContext(); + +export const TranscriptionProvider = ({ children }) => { + const { callObject } = useCallState(); + const [transcriptionHistory, setTranscriptionHistory] = useState([]); + const [hasNewMessages, setHasNewMessages] = useState(false); + const [isTranscribing, setIsTranscribing] = useState(false); + + const handleNewMessage = useCallback( + (e) => { + const participants = callObject.participants(); + // Collect only transcription messages, and gather enough + // words to be able to post messages at sentence intervals + if (e.fromId === 'transcription' && e.data?.is_final) { + + // Get the sender's current display name or the local name + const sender = e.data?.session_id !== participants.local.session_id + ? participants[e.data.session_id].user_name + : participants.local.user_name; + + setTranscriptionHistory((oldState) => [ + ...oldState, + { sender, message: e.data.text, id: nanoid() }, + ]); + } + + setHasNewMessages(true); + }, + [callObject] + ); + + const handleTranscriptionStarted = useCallback(() => { + console.log('💬 Transcription started'); + setIsTranscribing(true); + }, []); + + const handleTranscriptionStopped = useCallback(() => { + console.log('💬 Transcription stopped'); + setIsTranscribing(false); + }, []); + + const handleTranscriptionError = useCallback(() => { + console.log('❗ Transcription error!'); + setIsTranscribing(false); + }, []); + + useEffect(() => { + if (!callObject) { + return false; + } + + console.log(`💬 Transcription provider listening for app messages`); + + callObject.on('app-message', handleNewMessage); + + callObject.on('transcription-started', handleTranscriptionStarted); + callObject.on('transcription-stopped', handleTranscriptionStopped); + callObject.on('transcription-error', handleTranscriptionError); + + return () => callObject.off('app-message', handleNewMessage); + }, [callObject, handleNewMessage, handleTranscriptionStarted, handleTranscriptionStopped, handleTranscriptionError]); + + return ( + + {children} + + ); +}; + +TranscriptionProvider.propTypes = { + children: PropTypes.node, +}; + +export const useTranscription = () => useContext(TranscriptionContext); diff --git a/dailyjs/live-streaming/env.example b/custom/live-transcription/env.example similarity index 100% rename from dailyjs/live-streaming/env.example rename to custom/live-transcription/env.example diff --git a/dailyjs/recording/index.js b/custom/live-transcription/index.js similarity index 100% rename from dailyjs/recording/index.js rename to custom/live-transcription/index.js diff --git a/dailyjs/recording/next.config.js b/custom/live-transcription/next.config.js similarity index 84% rename from dailyjs/recording/next.config.js rename to custom/live-transcription/next.config.js index 9a0a6ee..9140e28 100644 --- a/dailyjs/recording/next.config.js +++ b/custom/live-transcription/next.config.js @@ -1,7 +1,7 @@ const withPlugins = require('next-compose-plugins'); const withTM = require('next-transpile-modules')([ - '@dailyjs/shared', - '@dailyjs/basic-call', + '@custom/shared', + '@custom/basic-call', ]); const packageJson = require('./package.json'); diff --git a/dailyjs/basic-call/package.json b/custom/live-transcription/package.json similarity index 74% rename from dailyjs/basic-call/package.json rename to custom/live-transcription/package.json index 495f694..16f434c 100644 --- a/dailyjs/basic-call/package.json +++ b/custom/live-transcription/package.json @@ -1,6 +1,6 @@ { - "name": "@dailyjs/basic-call", - "description": "Basic Call Example", + "name": "@custom/live-transcription", + "description": "Basic Call + Transcription Example", "version": "0.1.0", "private": true, "scripts": { @@ -10,7 +10,8 @@ "lint": "next lint" }, "dependencies": { - "@dailyjs/shared": "*", + "@custom/shared": "*", + "@custom/basic-call": "*", "next": "^11.0.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/custom/live-transcription/pages/_app.js b/custom/live-transcription/pages/_app.js new file mode 100644 index 0000000..4d05411 --- /dev/null +++ b/custom/live-transcription/pages/_app.js @@ -0,0 +1,12 @@ +import React from 'react'; +import App from '@custom/basic-call/pages/_app'; +import AppWithTranscription from '../components/App'; + +import TranscriptionAside from '../components/TranscriptionAside'; +import Tray from '../components/Tray'; + +App.asides = [TranscriptionAside]; +App.customAppComponent = ; +App.customTrayComponent = ; + +export default App; diff --git a/dailyjs/pagination/pages/api b/custom/live-transcription/pages/api similarity index 100% rename from dailyjs/pagination/pages/api rename to custom/live-transcription/pages/api diff --git a/dailyjs/text-chat/pages/index.js b/custom/live-transcription/pages/index.js similarity index 63% rename from dailyjs/text-chat/pages/index.js rename to custom/live-transcription/pages/index.js index d25e77e..84a3f53 100644 --- a/dailyjs/text-chat/pages/index.js +++ b/custom/live-transcription/pages/index.js @@ -1,5 +1,5 @@ -import Index from '@dailyjs/basic-call/pages'; -import getDemoProps from '@dailyjs/shared/lib/demoProps'; +import Index from '@custom/basic-call/pages'; +import getDemoProps from '@custom/shared/lib/demoProps'; export async function getStaticProps() { const defaultProps = getDemoProps(); diff --git a/dailyjs/pagination/public/assets/daily-logo-dark.svg b/custom/live-transcription/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/pagination/public/assets/daily-logo-dark.svg rename to custom/live-transcription/public/assets/daily-logo-dark.svg diff --git a/dailyjs/pagination/public/assets/daily-logo.svg b/custom/live-transcription/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/pagination/public/assets/daily-logo.svg rename to custom/live-transcription/public/assets/daily-logo.svg diff --git a/dailyjs/pagination/public/assets/join.mp3 b/custom/live-transcription/public/assets/join.mp3 similarity index 100% rename from dailyjs/pagination/public/assets/join.mp3 rename to custom/live-transcription/public/assets/join.mp3 diff --git a/dailyjs/pagination/public/assets/message.mp3 b/custom/live-transcription/public/assets/message.mp3 similarity index 100% rename from dailyjs/pagination/public/assets/message.mp3 rename to custom/live-transcription/public/assets/message.mp3 diff --git a/dailyjs/pagination/public/assets/pattern-bg.png b/custom/live-transcription/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/pagination/public/assets/pattern-bg.png rename to custom/live-transcription/public/assets/pattern-bg.png diff --git a/dailyjs/recording/.babelrc b/custom/pagination/.babelrc similarity index 100% rename from dailyjs/recording/.babelrc rename to custom/pagination/.babelrc diff --git a/dailyjs/pagination/components/App/App.js b/custom/pagination/App.js similarity index 71% rename from dailyjs/pagination/components/App/App.js rename to custom/pagination/App.js index 317d450..4f873b8 100644 --- a/dailyjs/pagination/components/App/App.js +++ b/custom/pagination/App.js @@ -1,7 +1,7 @@ import React from 'react'; -import App from '@dailyjs/basic-call/components/App'; -import Room from '@dailyjs/basic-call/components/Room'; +import App from '@custom/basic-call/components/App'; +import Room from '@custom/basic-call/components/Room'; import PaginatedVideoGrid from '../PaginatedVideoGrid'; export const AppWithPagination = () => ( diff --git a/dailyjs/pagination/README.md b/custom/pagination/README.md similarity index 96% rename from dailyjs/pagination/README.md rename to custom/pagination/README.md index 89272f3..c4753cf 100644 --- a/dailyjs/pagination/README.md +++ b/custom/pagination/README.md @@ -4,7 +4,7 @@ ### Live example -**[See it in action here ➡️](https://dailyjs-pagination.vercel.app)** +**[See it in action here ➡️](https://custom-pagination.vercel.app)** --- @@ -22,7 +22,7 @@ Please note: this demo is not currently mobile optimised mv env.example .env.local yarn -yarn workspace @dailyjs/live-streaming dev +yarn workspace @custom/live-streaming dev ``` Note: this example uses an additional env `MANUAL_TRACK_SUBS=1` that will disable [automatic track management](https://docs.daily.co/reference#%EF%B8%8F-setsubscribetotracksautomatically). diff --git a/custom/pagination/components/App.js b/custom/pagination/components/App.js new file mode 100644 index 0000000..5c68179 --- /dev/null +++ b/custom/pagination/components/App.js @@ -0,0 +1,15 @@ +import React from 'react'; + +import App from '@custom/basic-call/components/App'; +import Room from '@custom/basic-call/components/Call/Room'; +import PaginatedVideoGrid from './PaginatedVideoGrid'; + +export const AppWithPagination = () => ( + , + }} + /> +); + +export default AppWithPagination; diff --git a/dailyjs/pagination/components/PaginatedVideoGrid/PaginatedVideoGrid.js b/custom/pagination/components/PaginatedVideoGrid.js similarity index 93% rename from dailyjs/pagination/components/PaginatedVideoGrid/PaginatedVideoGrid.js rename to custom/pagination/components/PaginatedVideoGrid.js index 4d3661e..20b5cbe 100644 --- a/dailyjs/pagination/components/PaginatedVideoGrid/PaginatedVideoGrid.js +++ b/custom/pagination/components/PaginatedVideoGrid.js @@ -5,19 +5,19 @@ import React, { useEffect, useState, } from 'react'; -import { Button } from '@dailyjs/shared/components/Button'; -import Tile from '@dailyjs/shared/components/Tile'; +import { Button } from '@custom/shared/components/Button'; +import Tile from '@custom/shared/components/Tile'; import { DEFAULT_ASPECT_RATIO, MEETING_STATE_JOINED, -} from '@dailyjs/shared/constants'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { isLocalId } from '@dailyjs/shared/contexts/participantsState'; -import { useActiveSpeaker } from '@dailyjs/shared/hooks/useActiveSpeaker'; -import { useCamSubscriptions } from '@dailyjs/shared/hooks/useCamSubscriptions'; -import { ReactComponent as IconArrow } from '@dailyjs/shared/icons/raquo-md.svg'; -import sortByKey from '@dailyjs/shared/lib/sortByKey'; +} from '@custom/shared/constants'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { isLocalId } from '@custom/shared/contexts/participantsState'; +import { useActiveSpeaker } from '@custom/shared/hooks/useActiveSpeaker'; +import { useCamSubscriptions } from '@custom/shared/hooks/useCamSubscriptions'; +import { ReactComponent as IconArrow } from '@custom/shared/icons/raquo-md.svg'; +import sortByKey from '@custom/shared/lib/sortByKey'; import PropTypes from 'prop-types'; import { useDeepCompareMemo } from 'use-deep-compare'; diff --git a/dailyjs/pagination/components/Tray/Tray.js b/custom/pagination/components/Tray.js similarity index 60% rename from dailyjs/pagination/components/Tray/Tray.js rename to custom/pagination/components/Tray.js index e04e896..2099856 100644 --- a/dailyjs/pagination/components/Tray/Tray.js +++ b/custom/pagination/components/Tray.js @@ -1,8 +1,8 @@ import React from 'react'; -import { TrayButton } from '@dailyjs/shared/components/Tray'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { ReactComponent as IconAdd } from '@dailyjs/shared/icons/add-md.svg'; +import { TrayButton } from '@custom/shared/components/Tray'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { ReactComponent as IconAdd } from '@custom/shared/icons/add-md.svg'; export const Tray = () => { const { callObject } = useCallState(); diff --git a/dailyjs/pagination/env.example b/custom/pagination/env.example similarity index 100% rename from dailyjs/pagination/env.example rename to custom/pagination/env.example diff --git a/dailyjs/pagination/image.png b/custom/pagination/image.png similarity index 100% rename from dailyjs/pagination/image.png rename to custom/pagination/image.png diff --git a/dailyjs/live-streaming/next.config.js b/custom/pagination/next.config.js similarity index 84% rename from dailyjs/live-streaming/next.config.js rename to custom/pagination/next.config.js index 9a0a6ee..9140e28 100644 --- a/dailyjs/live-streaming/next.config.js +++ b/custom/pagination/next.config.js @@ -1,7 +1,7 @@ const withPlugins = require('next-compose-plugins'); const withTM = require('next-transpile-modules')([ - '@dailyjs/shared', - '@dailyjs/basic-call', + '@custom/shared', + '@custom/basic-call', ]); const packageJson = require('./package.json'); diff --git a/dailyjs/pagination/package.json b/custom/pagination/package.json similarity index 83% rename from dailyjs/pagination/package.json rename to custom/pagination/package.json index 796128e..eff1894 100644 --- a/dailyjs/pagination/package.json +++ b/custom/pagination/package.json @@ -1,5 +1,5 @@ { - "name": "@dailyjs/pagination", + "name": "@custom/pagination", "description": "Basic Call + Pagination", "version": "0.1.0", "private": true, @@ -10,8 +10,8 @@ "lint": "next lint" }, "dependencies": { - "@dailyjs/shared": "*", - "@dailyjs/basic-call": "*", + "@custom/shared": "*", + "@custom/basic-call": "*", "next": "^11.0.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/dailyjs/pagination/pages/_app.js b/custom/pagination/pages/_app.js similarity index 81% rename from dailyjs/pagination/pages/_app.js rename to custom/pagination/pages/_app.js index 5ffe4b9..d819eae 100644 --- a/dailyjs/pagination/pages/_app.js +++ b/custom/pagination/pages/_app.js @@ -1,6 +1,6 @@ import React from 'react'; -import App from '@dailyjs/basic-call/pages/_app'; +import App from '@custom/basic-call/pages/_app'; import AppWithPagination from '../components/App'; import Tray from '../components/Tray'; diff --git a/custom/pagination/pages/_document.js b/custom/pagination/pages/_document.js new file mode 100644 index 0000000..31f6c1f --- /dev/null +++ b/custom/pagination/pages/_document.js @@ -0,0 +1,3 @@ +import Doc from '@custom/basic-call/pages/_document'; + +export default Doc; diff --git a/dailyjs/recording/pages/api b/custom/pagination/pages/api similarity index 100% rename from dailyjs/recording/pages/api rename to custom/pagination/pages/api diff --git a/dailyjs/live-streaming/pages/index.js b/custom/pagination/pages/index.js similarity index 67% rename from dailyjs/live-streaming/pages/index.js rename to custom/pagination/pages/index.js index 2668138..f61b429 100644 --- a/dailyjs/live-streaming/pages/index.js +++ b/custom/pagination/pages/index.js @@ -1,5 +1,5 @@ -import Index from '@dailyjs/basic-call/pages'; -import getDemoProps from '@dailyjs/shared/lib/demoProps'; +import Index from '@custom/basic-call/pages'; +import getDemoProps from '@custom/shared/lib/demoProps'; export async function getStaticProps() { const defaultProps = getDemoProps(); diff --git a/dailyjs/recording/public/assets/daily-logo-dark.svg b/custom/pagination/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/recording/public/assets/daily-logo-dark.svg rename to custom/pagination/public/assets/daily-logo-dark.svg diff --git a/dailyjs/recording/public/assets/daily-logo.svg b/custom/pagination/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/recording/public/assets/daily-logo.svg rename to custom/pagination/public/assets/daily-logo.svg diff --git a/dailyjs/recording/public/assets/join.mp3 b/custom/pagination/public/assets/join.mp3 similarity index 100% rename from dailyjs/recording/public/assets/join.mp3 rename to custom/pagination/public/assets/join.mp3 diff --git a/dailyjs/recording/public/assets/message.mp3 b/custom/pagination/public/assets/message.mp3 similarity index 100% rename from dailyjs/recording/public/assets/message.mp3 rename to custom/pagination/public/assets/message.mp3 diff --git a/dailyjs/recording/public/assets/pattern-bg.png b/custom/pagination/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/recording/public/assets/pattern-bg.png rename to custom/pagination/public/assets/pattern-bg.png diff --git a/dailyjs/text-chat/.babelrc b/custom/recording/.babelrc similarity index 100% rename from dailyjs/text-chat/.babelrc rename to custom/recording/.babelrc diff --git a/dailyjs/recording/README.md b/custom/recording/README.md similarity index 97% rename from dailyjs/recording/README.md rename to custom/recording/README.md index dd0aa59..523abe6 100644 --- a/dailyjs/recording/README.md +++ b/custom/recording/README.md @@ -22,7 +22,7 @@ Please note: this demo is not currently mobile optimised mv env.example .env.local yarn -yarn workspace @dailyjs/recording dev +yarn workspace @custom/recording dev ``` ### How does this demo work? diff --git a/dailyjs/recording/components/App/App.js b/custom/recording/components/App.js similarity index 64% rename from dailyjs/recording/components/App/App.js rename to custom/recording/components/App.js index 393d2ad..f79f4b5 100644 --- a/dailyjs/recording/components/App/App.js +++ b/custom/recording/components/App.js @@ -1,7 +1,7 @@ import React from 'react'; -import App from '@dailyjs/basic-call/components/App'; -import { RecordingProvider } from '../../contexts/RecordingProvider'; +import App from '@custom/basic-call/components/App'; +import { RecordingProvider } from '../contexts/RecordingProvider'; // Extend our basic call app component with the recording context export const AppWithRecording = () => ( diff --git a/dailyjs/recording/components/RecordingModal/RecordingModal.js b/custom/recording/components/RecordingModal.js similarity index 85% rename from dailyjs/recording/components/RecordingModal/RecordingModal.js rename to custom/recording/components/RecordingModal.js index db1f108..e89efa4 100644 --- a/dailyjs/recording/components/RecordingModal/RecordingModal.js +++ b/custom/recording/components/RecordingModal.js @@ -1,10 +1,10 @@ import React, { useEffect } from 'react'; -import { Button } from '@dailyjs/shared/components/Button'; -import { CardBody } from '@dailyjs/shared/components/Card'; -import Modal from '@dailyjs/shared/components/Modal'; -import Well from '@dailyjs/shared/components/Well'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import Button from '@custom/shared/components/Button'; +import { CardBody } from '@custom/shared/components/Card'; +import Modal from '@custom/shared/components/Modal'; +import Well from '@custom/shared/components/Well'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; import { RECORDING_COUNTDOWN_1, RECORDING_COUNTDOWN_2, @@ -15,7 +15,7 @@ import { RECORDING_TYPE_CLOUD, RECORDING_UPLOADING, useRecording, -} from '../../contexts/RecordingProvider'; +} from '../contexts/RecordingProvider'; export const RECORDING_MODAL = 'recording'; @@ -75,12 +75,13 @@ export const RecordingModal = () => { isOpen={currentModals[RECORDING_MODAL]} onClose={() => closeModal(RECORDING_MODAL)} actions={[ - , , - , + , ]} > diff --git a/dailyjs/shared/components/DeviceSelectModal/index.js b/custom/shared/components/DeviceSelectModal/index.js similarity index 61% rename from dailyjs/shared/components/DeviceSelectModal/index.js rename to custom/shared/components/DeviceSelectModal/index.js index 22feecd..60adbfc 100644 --- a/dailyjs/shared/components/DeviceSelectModal/index.js +++ b/custom/shared/components/DeviceSelectModal/index.js @@ -1,3 +1,2 @@ -export { DeviceSelectModal as default } from './DeviceSelectModal'; export { DeviceSelectModal } from './DeviceSelectModal'; export { DEVICE_MODAL } from './DeviceSelectModal'; diff --git a/dailyjs/shared/components/ExpiryTimer/ExpiryTimer.js b/custom/shared/components/ExpiryTimer/ExpiryTimer.js similarity index 100% rename from dailyjs/shared/components/ExpiryTimer/ExpiryTimer.js rename to custom/shared/components/ExpiryTimer/ExpiryTimer.js diff --git a/dailyjs/shared/components/ExpiryTimer/index.js b/custom/shared/components/ExpiryTimer/index.js similarity index 100% rename from dailyjs/shared/components/ExpiryTimer/index.js rename to custom/shared/components/ExpiryTimer/index.js diff --git a/dailyjs/shared/components/Field/Field.js b/custom/shared/components/Field/Field.js similarity index 100% rename from dailyjs/shared/components/Field/Field.js rename to custom/shared/components/Field/Field.js diff --git a/dailyjs/shared/components/Field/index.js b/custom/shared/components/Field/index.js similarity index 57% rename from dailyjs/shared/components/Field/index.js rename to custom/shared/components/Field/index.js index 5308bf3..b5baff8 100644 --- a/dailyjs/shared/components/Field/index.js +++ b/custom/shared/components/Field/index.js @@ -1,2 +1 @@ export { Field as default } from './Field'; -export { Field } from './Field'; diff --git a/dailyjs/shared/components/GlobalStyle/GlobalStyle.js b/custom/shared/components/GlobalStyle/GlobalStyle.js similarity index 100% rename from dailyjs/shared/components/GlobalStyle/GlobalStyle.js rename to custom/shared/components/GlobalStyle/GlobalStyle.js diff --git a/dailyjs/shared/components/GlobalStyle/index.js b/custom/shared/components/GlobalStyle/index.js similarity index 100% rename from dailyjs/shared/components/GlobalStyle/index.js rename to custom/shared/components/GlobalStyle/index.js diff --git a/dailyjs/shared/components/HairCheck/HairCheck.js b/custom/shared/components/HairCheck/HairCheck.js similarity index 91% rename from dailyjs/shared/components/HairCheck/HairCheck.js rename to custom/shared/components/HairCheck/HairCheck.js index e07307e..4646036 100644 --- a/dailyjs/shared/components/HairCheck/HairCheck.js +++ b/custom/shared/components/HairCheck/HairCheck.js @@ -1,15 +1,15 @@ import React, { useState, useEffect, useMemo } from 'react'; -import Button from '@dailyjs/shared/components/Button'; -import { DEVICE_MODAL } from '@dailyjs/shared/components/DeviceSelectModal/DeviceSelectModal'; -import { TextInput } from '@dailyjs/shared/components/Input'; -import Loader from '@dailyjs/shared/components/Loader'; -import { MuteButton } from '@dailyjs/shared/components/MuteButtons'; -import { Tile } from '@dailyjs/shared/components/Tile'; -import { ACCESS_STATE_LOBBY } from '@dailyjs/shared/constants'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useMediaDevices } from '@dailyjs/shared/contexts/MediaDeviceProvider'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; +import Button from '@custom/shared/components/Button'; +import { DEVICE_MODAL } from '@custom/shared/components/DeviceSelectModal/DeviceSelectModal'; +import { TextInput } from '@custom/shared/components/Input'; +import Loader from '@custom/shared/components/Loader'; +import MuteButton from '@custom/shared/components/MuteButton'; +import Tile from '@custom/shared/components/Tile'; +import { ACCESS_STATE_LOBBY } from '@custom/shared/constants'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useMediaDevices } from '@custom/shared/contexts/MediaDeviceProvider'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; import { DEVICE_STATE_BLOCKED, DEVICE_STATE_NOT_FOUND, @@ -17,8 +17,8 @@ import { DEVICE_STATE_PENDING, DEVICE_STATE_LOADING, DEVICE_STATE_GRANTED, -} from '@dailyjs/shared/contexts/useDevices'; -import IconSettings from '@dailyjs/shared/icons/settings-sm.svg'; +} from '@custom/shared/contexts/useDevices'; +import IconSettings from '@custom/shared/icons/settings-sm.svg'; import { useDeepCompareMemo } from 'use-deep-compare'; diff --git a/dailyjs/shared/components/HairCheck/index.js b/custom/shared/components/HairCheck/index.js similarity index 100% rename from dailyjs/shared/components/HairCheck/index.js rename to custom/shared/components/HairCheck/index.js diff --git a/custom/shared/components/Header/Header.js b/custom/shared/components/Header/Header.js new file mode 100644 index 0000000..ba352fb --- /dev/null +++ b/custom/shared/components/Header/Header.js @@ -0,0 +1,87 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export const Header = ({ demoTitle, repoLink }) => ( +
+
+ Daily +
{demoTitle}
+
+ + +
+); + +Header.propTypes = { + demoTitle: PropTypes.string, + repoLink: PropTypes.string, +}; + +export default Header; diff --git a/custom/shared/components/Header/index.js b/custom/shared/components/Header/index.js new file mode 100644 index 0000000..a70ad39 --- /dev/null +++ b/custom/shared/components/Header/index.js @@ -0,0 +1 @@ +export { Header as default } from './Header'; diff --git a/dailyjs/shared/components/HeaderCapsule/HeaderCapsule.js b/custom/shared/components/HeaderCapsule/HeaderCapsule.js similarity index 100% rename from dailyjs/shared/components/HeaderCapsule/HeaderCapsule.js rename to custom/shared/components/HeaderCapsule/HeaderCapsule.js diff --git a/dailyjs/shared/components/HeaderCapsule/index.js b/custom/shared/components/HeaderCapsule/index.js similarity index 100% rename from dailyjs/shared/components/HeaderCapsule/index.js rename to custom/shared/components/HeaderCapsule/index.js diff --git a/dailyjs/shared/components/Input/Input.js b/custom/shared/components/Input/Input.js similarity index 94% rename from dailyjs/shared/components/Input/Input.js rename to custom/shared/components/Input/Input.js index 5ca32be..947334a 100644 --- a/dailyjs/shared/components/Input/Input.js +++ b/custom/shared/components/Input/Input.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useState, forwardRef } from 'react'; import classNames from 'classnames'; import PropTypes from 'prop-types'; import theme from '../../styles/defaultTheme'; @@ -136,15 +136,17 @@ InputContainer.propTypes = { prefix: PropTypes.string, }; -export const TextInput = ({ onChange, prefix, variant, ...rest }) => { - const cx = classNames('input-container', variant, { prefix }); +export const TextInput = forwardRef( + ({ onChange, prefix, variant, ...rest }, ref) => { + const cx = classNames('input-container', variant, { prefix }); - return ( - - - - ); -}; + return ( + + + + ); + } +); TextInput.propTypes = { onChange: PropTypes.func, diff --git a/dailyjs/shared/components/Input/index.js b/custom/shared/components/Input/index.js similarity index 57% rename from dailyjs/shared/components/Input/index.js rename to custom/shared/components/Input/index.js index c38d7b3..057037e 100644 --- a/dailyjs/shared/components/Input/index.js +++ b/custom/shared/components/Input/index.js @@ -1,2 +1 @@ -export { TextInput as default } from './Input'; export { TextInput, BooleanInput, SelectInput } from './Input'; diff --git a/dailyjs/shared/components/Loader/Loader.js b/custom/shared/components/Loader/Loader.js similarity index 100% rename from dailyjs/shared/components/Loader/Loader.js rename to custom/shared/components/Loader/Loader.js diff --git a/dailyjs/shared/components/Loader/index.js b/custom/shared/components/Loader/index.js similarity index 100% rename from dailyjs/shared/components/Loader/index.js rename to custom/shared/components/Loader/index.js diff --git a/dailyjs/shared/components/MessageCard/MessageCard.js b/custom/shared/components/MessageCard/MessageCard.js similarity index 79% rename from dailyjs/shared/components/MessageCard/MessageCard.js rename to custom/shared/components/MessageCard/MessageCard.js index 19edbc7..ad48d65 100644 --- a/dailyjs/shared/components/MessageCard/MessageCard.js +++ b/custom/shared/components/MessageCard/MessageCard.js @@ -1,11 +1,11 @@ import React from 'react'; -import Button from '@dailyjs/shared/components/Button'; +import Button from '@custom/shared/components/Button'; import { Card, CardBody, CardFooter, CardHeader, -} from '@dailyjs/shared/components/Card'; +} from '@custom/shared/components/Card'; import PropTypes from 'prop-types'; export const MessageCard = ({ @@ -15,7 +15,7 @@ export const MessageCard = ({ hideBack = false, onBack, }) => ( - + {header && {header}} {children && {children}} {!hideBack && ( @@ -23,7 +23,7 @@ export const MessageCard = ({ {onBack ? ( ) : ( - + )} )} diff --git a/dailyjs/shared/components/MessageCard/index.js b/custom/shared/components/MessageCard/index.js similarity index 100% rename from dailyjs/shared/components/MessageCard/index.js rename to custom/shared/components/MessageCard/index.js diff --git a/dailyjs/shared/components/Modal/Modal.js b/custom/shared/components/Modal/Modal.js similarity index 99% rename from dailyjs/shared/components/Modal/Modal.js rename to custom/shared/components/Modal/Modal.js index 89d3f64..3e3442f 100644 --- a/dailyjs/shared/components/Modal/Modal.js +++ b/custom/shared/components/Modal/Modal.js @@ -3,7 +3,7 @@ import classNames from 'classnames'; import noScroll from 'no-scroll'; import { createPortal } from 'react-dom'; import { ReactComponent as IconClose } from '../../icons/close-sm.svg'; -import { Button } from '../Button'; +import Button from '../Button'; import { Card, CardBody, CardFooter, CardHeader } from '../Card'; const transitionMs = 350; diff --git a/dailyjs/shared/components/Modal/index.js b/custom/shared/components/Modal/index.js similarity index 100% rename from dailyjs/shared/components/Modal/index.js rename to custom/shared/components/Modal/index.js diff --git a/dailyjs/shared/components/MuteButtons/MuteButton.js b/custom/shared/components/MuteButton/MuteButton.js similarity index 65% rename from dailyjs/shared/components/MuteButtons/MuteButton.js rename to custom/shared/components/MuteButton/MuteButton.js index 501c83c..3004ce7 100644 --- a/dailyjs/shared/components/MuteButtons/MuteButton.js +++ b/custom/shared/components/MuteButton/MuteButton.js @@ -1,12 +1,12 @@ import React, { useState } from 'react'; -import { ReactComponent as IconCameraOff } from '@dailyjs/shared/icons/camera-off-md.svg'; -import { ReactComponent as IconCameraOn } from '@dailyjs/shared/icons/camera-on-md.svg'; -import { ReactComponent as IconMicOff } from '@dailyjs/shared/icons/mic-off-md.svg'; -import { ReactComponent as IconMicOn } from '@dailyjs/shared/icons/mic-on-md.svg'; +import { ReactComponent as IconCameraOff } from '@custom/shared/icons/camera-off-md.svg'; +import { ReactComponent as IconCameraOn } from '@custom/shared/icons/camera-on-md.svg'; +import { ReactComponent as IconMicOff } from '@custom/shared/icons/mic-off-md.svg'; +import { ReactComponent as IconMicOn } from '@custom/shared/icons/mic-on-md.svg'; import classNames from 'classnames'; import PropTypes from 'prop-types'; import { useCallState } from '../../contexts/CallProvider'; -import { Button } from '../Button'; +import Button from '../Button'; export const MuteButton = ({ isMuted, mic = false, className, ...props }) => { const { callObject } = useCallState(); @@ -23,8 +23,8 @@ export const MuteButton = ({ isMuted, mic = false, className, ...props }) => { }; const Icon = mic - ? [, ] - : [, ]; + ? [, ] + : [, ]; if (!callObject) return null; diff --git a/dailyjs/shared/components/MuteButtons/index.js b/custom/shared/components/MuteButton/index.js similarity index 55% rename from dailyjs/shared/components/MuteButtons/index.js rename to custom/shared/components/MuteButton/index.js index df9740c..da40de3 100644 --- a/dailyjs/shared/components/MuteButtons/index.js +++ b/custom/shared/components/MuteButton/index.js @@ -1,2 +1 @@ export { MuteButton as default } from './MuteButton'; -export { MuteButton } from './MuteButton'; diff --git a/dailyjs/shared/components/ParticipantBar/ParticipantBar.js b/custom/shared/components/ParticipantBar/ParticipantBar.js similarity index 93% rename from dailyjs/shared/components/ParticipantBar/ParticipantBar.js rename to custom/shared/components/ParticipantBar/ParticipantBar.js index 416c27f..781b76a 100644 --- a/dailyjs/shared/components/ParticipantBar/ParticipantBar.js +++ b/custom/shared/components/ParticipantBar/ParticipantBar.js @@ -5,17 +5,17 @@ import React, { useRef, useState, } from 'react'; -import { Tile } from '@dailyjs/shared/components/Tile'; -import { DEFAULT_ASPECT_RATIO } from '@dailyjs/shared/constants'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; -import { useTracks } from '@dailyjs/shared/contexts/TracksProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { isLocalId } from '@dailyjs/shared/contexts/participantsState'; -import { useActiveSpeaker } from '@dailyjs/shared/hooks/useActiveSpeaker'; -import { useCamSubscriptions } from '@dailyjs/shared/hooks/useCamSubscriptions'; -import { useResize } from '@dailyjs/shared/hooks/useResize'; -import { useScrollbarWidth } from '@dailyjs/shared/hooks/useScrollbarWidth'; +import { Tile } from '@custom/shared/components/Tile'; +import { DEFAULT_ASPECT_RATIO } from '@custom/shared/constants'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useParticipants } from '@custom/shared/contexts/ParticipantsProvider'; +import { useTracks } from '@custom/shared/contexts/TracksProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { isLocalId } from '@custom/shared/contexts/participantsState'; +import { useActiveSpeaker } from '@custom/shared/hooks/useActiveSpeaker'; +import { useCamSubscriptions } from '@custom/shared/hooks/useCamSubscriptions'; +import { useResize } from '@custom/shared/hooks/useResize'; +import { useScrollbarWidth } from '@custom/shared/hooks/useScrollbarWidth'; import classnames from 'classnames'; import debounce from 'debounce'; import PropTypes from 'prop-types'; diff --git a/dailyjs/shared/components/ParticipantBar/index.js b/custom/shared/components/ParticipantBar/index.js similarity index 54% rename from dailyjs/shared/components/ParticipantBar/index.js rename to custom/shared/components/ParticipantBar/index.js index 92bde7d..556ae53 100644 --- a/dailyjs/shared/components/ParticipantBar/index.js +++ b/custom/shared/components/ParticipantBar/index.js @@ -1,2 +1 @@ export { ParticipantBar as default } from './ParticipantBar'; -export { ParticipantBar } from './ParticipantBar'; diff --git a/dailyjs/shared/components/ParticipantBar/useBlockScrolling.js b/custom/shared/components/ParticipantBar/useBlockScrolling.js similarity index 100% rename from dailyjs/shared/components/ParticipantBar/useBlockScrolling.js rename to custom/shared/components/ParticipantBar/useBlockScrolling.js diff --git a/dailyjs/shared/components/Tile/Tile.js b/custom/shared/components/Tile/Tile.js similarity index 96% rename from dailyjs/shared/components/Tile/Tile.js rename to custom/shared/components/Tile/Tile.js index 31c3924..a65b0f4 100644 --- a/dailyjs/shared/components/Tile/Tile.js +++ b/custom/shared/components/Tile/Tile.js @@ -1,10 +1,10 @@ import React, { memo, useEffect, useState, useRef } from 'react'; -import useVideoTrack from '@dailyjs/shared/hooks/useVideoTrack'; -import { ReactComponent as IconMicMute } from '@dailyjs/shared/icons/mic-off-sm.svg'; +import useVideoTrack from '@custom/shared/hooks/useVideoTrack'; +import { ReactComponent as IconMicMute } from '@custom/shared/icons/mic-off-sm.svg'; import classNames from 'classnames'; import PropTypes from 'prop-types'; import { DEFAULT_ASPECT_RATIO } from '../../constants'; -import { Video } from './Video'; +import Video from './Video'; import { ReactComponent as Avatar } from './avatar.svg'; const SM_TILE_MAX_WIDTH = 300; diff --git a/dailyjs/shared/components/Tile/Video/Video.js b/custom/shared/components/Tile/Video.js similarity index 98% rename from dailyjs/shared/components/Tile/Video/Video.js rename to custom/shared/components/Tile/Video.js index 7b0008c..660c8cc 100644 --- a/dailyjs/shared/components/Tile/Video/Video.js +++ b/custom/shared/components/Tile/Video.js @@ -50,6 +50,8 @@ export const Video = memo( (p, n) => shallowEqualObjects(p, n) ); +Video.displayName = 'Video'; + Video.propTypes = { videoTrack: PropTypes.any, mirrored: PropTypes.bool, diff --git a/dailyjs/shared/components/Tile/avatar.svg b/custom/shared/components/Tile/avatar.svg similarity index 100% rename from dailyjs/shared/components/Tile/avatar.svg rename to custom/shared/components/Tile/avatar.svg diff --git a/dailyjs/shared/components/Tile/index.js b/custom/shared/components/Tile/index.js similarity index 56% rename from dailyjs/shared/components/Tile/index.js rename to custom/shared/components/Tile/index.js index 7059d99..ca181eb 100644 --- a/dailyjs/shared/components/Tile/index.js +++ b/custom/shared/components/Tile/index.js @@ -1,2 +1,2 @@ export { Tile as default } from './Tile'; -export { Tile } from './Tile'; +export { Video } from './Video'; diff --git a/dailyjs/shared/components/Tray/BasicTray.js b/custom/shared/components/Tray/BasicTray.js similarity index 53% rename from dailyjs/shared/components/Tray/BasicTray.js rename to custom/shared/components/Tray/BasicTray.js index b7f5aaf..d9a80fb 100644 --- a/dailyjs/shared/components/Tray/BasicTray.js +++ b/custom/shared/components/Tray/BasicTray.js @@ -1,16 +1,18 @@ import React from 'react'; -import { PEOPLE_ASIDE } from '@dailyjs/shared/components/Aside/PeopleAside'; -import { DEVICE_MODAL } from '@dailyjs/shared/components/DeviceSelectModal'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; -import { useMediaDevices } from '@dailyjs/shared/contexts/MediaDeviceProvider'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { ReactComponent as IconCameraOff } from '@dailyjs/shared/icons/camera-off-md.svg'; -import { ReactComponent as IconCameraOn } from '@dailyjs/shared/icons/camera-on-md.svg'; -import { ReactComponent as IconLeave } from '@dailyjs/shared/icons/leave-md.svg'; -import { ReactComponent as IconMicOff } from '@dailyjs/shared/icons/mic-off-md.svg'; -import { ReactComponent as IconMicOn } from '@dailyjs/shared/icons/mic-on-md.svg'; -import { ReactComponent as IconPeople } from '@dailyjs/shared/icons/people-md.svg'; -import { ReactComponent as IconSettings } from '@dailyjs/shared/icons/settings-md.svg'; +import { NETWORK_ASIDE } from '@custom/shared/components/Aside/NetworkAside'; +import { PEOPLE_ASIDE } from '@custom/shared/components/Aside/PeopleAside'; +import { DEVICE_MODAL } from '@custom/shared/components/DeviceSelectModal'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; +import { useMediaDevices } from '@custom/shared/contexts/MediaDeviceProvider'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { ReactComponent as IconCameraOff } from '@custom/shared/icons/camera-off-md.svg'; +import { ReactComponent as IconCameraOn } from '@custom/shared/icons/camera-on-md.svg'; +import { ReactComponent as IconLeave } from '@custom/shared/icons/leave-md.svg'; +import { ReactComponent as IconMicOff } from '@custom/shared/icons/mic-off-md.svg'; +import { ReactComponent as IconMicOn } from '@custom/shared/icons/mic-on-md.svg'; +import { ReactComponent as IconNetwork } from '@custom/shared/icons/network-md.svg'; +import { ReactComponent as IconPeople } from '@custom/shared/icons/people-md.svg'; +import { ReactComponent as IconSettings } from '@custom/shared/icons/settings-md.svg'; import { Tray, TrayButton } from './Tray'; export const BasicTray = () => { @@ -47,7 +49,9 @@ export const BasicTray = () => { openModal(DEVICE_MODAL)}> - + toggleAside(NETWORK_ASIDE)}> + + toggleAside(PEOPLE_ASIDE)}> diff --git a/dailyjs/shared/components/Tray/Tray.js b/custom/shared/components/Tray/Tray.js similarity index 97% rename from dailyjs/shared/components/Tray/Tray.js rename to custom/shared/components/Tray/Tray.js index 8c540a4..df5c2b8 100644 --- a/dailyjs/shared/components/Tray/Tray.js +++ b/custom/shared/components/Tray/Tray.js @@ -1,5 +1,5 @@ import React from 'react'; -import Button from '@dailyjs/shared/components/Button'; +import Button from '@custom/shared/components/Button'; import classNames from 'classnames'; import PropTypes from 'prop-types'; diff --git a/dailyjs/shared/components/Tray/TrayButton.js b/custom/shared/components/Tray/TrayButton.js similarity index 93% rename from dailyjs/shared/components/Tray/TrayButton.js rename to custom/shared/components/Tray/TrayButton.js index dffece5..a39399b 100644 --- a/dailyjs/shared/components/Tray/TrayButton.js +++ b/custom/shared/components/Tray/TrayButton.js @@ -1,5 +1,5 @@ import React from 'react'; -import Button from '@dailyjs/shared/components/Button'; +import Button from '@custom/shared/components/Button'; import PropTypes from 'prop-types'; export const TrayButton = ({ children, label, onClick, orange = false }) => ( diff --git a/dailyjs/shared/components/Tray/TrayMicButton.js b/custom/shared/components/Tray/TrayMicButton.js similarity index 59% rename from dailyjs/shared/components/Tray/TrayMicButton.js rename to custom/shared/components/Tray/TrayMicButton.js index 68bea2a..f88a476 100644 --- a/dailyjs/shared/components/Tray/TrayMicButton.js +++ b/custom/shared/components/Tray/TrayMicButton.js @@ -1,8 +1,8 @@ import React from 'react'; -import { TrayButton } from '@dailyjs/shared/components/Tray'; -import { useAudioLevel } from '@dailyjs/shared/hooks/useAudioLevel'; -import { ReactComponent as IconMicOff } from '@dailyjs/shared/icons/mic-off-md.svg'; -import { ReactComponent as IconMicOn } from '@dailyjs/shared/icons/mic-on-md.svg'; +import { TrayButton } from '@custom/shared/components/Tray'; +import { useAudioLevel } from '@custom/shared/hooks/useAudioLevel'; +import { ReactComponent as IconMicOff } from '@custom/shared/icons/mic-off-md.svg'; +import { ReactComponent as IconMicOn } from '@custom/shared/icons/mic-on-md.svg'; import PropTypes from 'prop-types'; diff --git a/dailyjs/shared/components/Tray/index.js b/custom/shared/components/Tray/index.js similarity index 66% rename from dailyjs/shared/components/Tray/index.js rename to custom/shared/components/Tray/index.js index 45e5fb6..0354e7d 100644 --- a/dailyjs/shared/components/Tray/index.js +++ b/custom/shared/components/Tray/index.js @@ -1,3 +1,2 @@ -export { Tray as default } from './Tray'; export { Tray, TrayButton } from './Tray'; export { BasicTray } from './BasicTray'; diff --git a/dailyjs/shared/components/VideoContainer/VideoContainer.js b/custom/shared/components/VideoContainer/VideoContainer.js similarity index 100% rename from dailyjs/shared/components/VideoContainer/VideoContainer.js rename to custom/shared/components/VideoContainer/VideoContainer.js diff --git a/custom/shared/components/VideoContainer/index.js b/custom/shared/components/VideoContainer/index.js new file mode 100644 index 0000000..73b64e2 --- /dev/null +++ b/custom/shared/components/VideoContainer/index.js @@ -0,0 +1 @@ +export { VideoContainer as default } from './VideoContainer'; diff --git a/dailyjs/shared/components/WaitingRoom/WaitingParticipantRow.js b/custom/shared/components/WaitingRoom/WaitingParticipantRow.js similarity index 97% rename from dailyjs/shared/components/WaitingRoom/WaitingParticipantRow.js rename to custom/shared/components/WaitingRoom/WaitingParticipantRow.js index 9d30cd1..4671191 100644 --- a/dailyjs/shared/components/WaitingRoom/WaitingParticipantRow.js +++ b/custom/shared/components/WaitingRoom/WaitingParticipantRow.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { useWaitingRoom } from '../../contexts/WaitingRoomProvider'; -import { Button } from '../Button'; +import Button from '../Button'; export const WaitingParticipantRow = ({ participant }) => { const { grantAccess, denyAccess } = useWaitingRoom(); diff --git a/dailyjs/shared/components/WaitingRoom/WaitingRoomModal.js b/custom/shared/components/WaitingRoom/WaitingRoomModal.js similarity index 66% rename from dailyjs/shared/components/WaitingRoom/WaitingRoomModal.js rename to custom/shared/components/WaitingRoom/WaitingRoomModal.js index 05f2088..f77f2b5 100644 --- a/dailyjs/shared/components/WaitingRoom/WaitingRoomModal.js +++ b/custom/shared/components/WaitingRoom/WaitingRoomModal.js @@ -1,8 +1,8 @@ import React from 'react'; -import Modal from '@dailyjs/shared/components/Modal'; -import { useWaitingRoom } from '@dailyjs/shared/contexts/WaitingRoomProvider'; +import Modal from '@custom/shared/components/Modal'; +import { useWaitingRoom } from '@custom/shared/contexts/WaitingRoomProvider'; import PropTypes from 'prop-types'; -import { Button } from '../Button'; +import Button from '../Button'; import { WaitingParticipantRow } from './WaitingParticipantRow'; export const WaitingRoomModal = ({ onClose }) => { @@ -23,10 +23,20 @@ export const WaitingRoomModal = ({ onClose }) => { isOpen onClose={() => onClose()} actions={[ - , - , ]} diff --git a/dailyjs/shared/components/WaitingRoom/WaitingRoomNotification.js b/custom/shared/components/WaitingRoom/WaitingRoomNotification.js similarity index 99% rename from dailyjs/shared/components/WaitingRoom/WaitingRoomNotification.js rename to custom/shared/components/WaitingRoom/WaitingRoomNotification.js index c322d55..3dee756 100644 --- a/dailyjs/shared/components/WaitingRoom/WaitingRoomNotification.js +++ b/custom/shared/components/WaitingRoom/WaitingRoomNotification.js @@ -3,7 +3,7 @@ import React, { useEffect, useState } from 'react'; import { useCallState } from '../../contexts/CallProvider'; import { useWaitingRoom } from '../../contexts/WaitingRoomProvider'; import { ReactComponent as IconWaiting } from '../../icons/add-person-lg.svg'; -import { Button } from '../Button'; +import Button from '../Button'; import { Card, CardBody, CardFooter } from '../Card'; export const WaitingRoomNotification = () => { diff --git a/dailyjs/shared/components/WaitingRoom/index.js b/custom/shared/components/WaitingRoom/index.js similarity index 100% rename from dailyjs/shared/components/WaitingRoom/index.js rename to custom/shared/components/WaitingRoom/index.js diff --git a/dailyjs/shared/components/Well/Well.js b/custom/shared/components/Well/Well.js similarity index 100% rename from dailyjs/shared/components/Well/Well.js rename to custom/shared/components/Well/Well.js diff --git a/dailyjs/shared/components/Well/index.js b/custom/shared/components/Well/index.js similarity index 57% rename from dailyjs/shared/components/Well/index.js rename to custom/shared/components/Well/index.js index c8a68c0..f92fb64 100644 --- a/dailyjs/shared/components/Well/index.js +++ b/custom/shared/components/Well/index.js @@ -1,2 +1 @@ export { Well as default } from './Well'; -export { Well } from './Well'; diff --git a/dailyjs/shared/constants.js b/custom/shared/constants.js similarity index 100% rename from dailyjs/shared/constants.js rename to custom/shared/constants.js diff --git a/dailyjs/shared/contexts/CallProvider.js b/custom/shared/contexts/CallProvider.js similarity index 100% rename from dailyjs/shared/contexts/CallProvider.js rename to custom/shared/contexts/CallProvider.js diff --git a/dailyjs/shared/contexts/MediaDeviceProvider.js b/custom/shared/contexts/MediaDeviceProvider.js similarity index 61% rename from dailyjs/shared/contexts/MediaDeviceProvider.js rename to custom/shared/contexts/MediaDeviceProvider.js index 0563392..2e5e6e7 100644 --- a/dailyjs/shared/contexts/MediaDeviceProvider.js +++ b/custom/shared/contexts/MediaDeviceProvider.js @@ -1,15 +1,15 @@ -import React, { useState, useEffect, createContext, useContext } from 'react'; +import React, { createContext, useContext } from 'react'; import PropTypes from 'prop-types'; import { useCallState } from './CallProvider'; +import { useParticipants } from './ParticipantsProvider'; import { useDevices } from './useDevices'; export const MediaDeviceContext = createContext(); export const MediaDeviceProvider = ({ children }) => { const { callObject } = useCallState(); - const [isCamMuted, setIsCamMuted] = useState(false); - const [isMicMuted, setIsMicMuted] = useState(false); + const { localParticipant } = useParticipants(); const { cams, @@ -24,20 +24,6 @@ export const MediaDeviceProvider = ({ children }) => { setSpeakersDevice, } = useDevices(callObject); - useEffect(() => { - if (!callObject) return false; - - const handleNewDeviceState = () => { - setIsCamMuted(!callObject.participants()?.local?.video); - setIsMicMuted(!callObject.participants()?.local?.audio); - }; - - callObject.on('participant-updated', handleNewDeviceState); - return () => { - callObject.off('participant-updated', handleNewDeviceState); - }; - }, [callObject]); - return ( { micError, currentDevices, deviceState, - isCamMuted, - isMicMuted, + isCamMuted: localParticipant.isCamMuted, + isMicMuted: localParticipant.isMicMuted, setMicDevice, setCamDevice, setSpeakersDevice, diff --git a/dailyjs/shared/contexts/ParticipantsProvider.js b/custom/shared/contexts/ParticipantsProvider.js similarity index 99% rename from dailyjs/shared/contexts/ParticipantsProvider.js rename to custom/shared/contexts/ParticipantsProvider.js index 81b6a94..f6c9428 100644 --- a/dailyjs/shared/contexts/ParticipantsProvider.js +++ b/custom/shared/contexts/ParticipantsProvider.js @@ -10,7 +10,7 @@ import React, { import { useUIState, VIEW_MODE_SPEAKER, -} from '@dailyjs/shared/contexts/UIStateProvider'; +} from '@custom/shared/contexts/UIStateProvider'; import PropTypes from 'prop-types'; import { diff --git a/dailyjs/shared/contexts/TracksProvider.js b/custom/shared/contexts/TracksProvider.js similarity index 74% rename from dailyjs/shared/contexts/TracksProvider.js rename to custom/shared/contexts/TracksProvider.js index 4021d43..c92067c 100644 --- a/dailyjs/shared/contexts/TracksProvider.js +++ b/custom/shared/contexts/TracksProvider.js @@ -11,6 +11,7 @@ import React, { import PropTypes from 'prop-types'; +import { useDeepCompareEffect } from 'use-deep-compare'; import { sortByKey } from '../lib/sortByKey'; import { useCallState } from './CallProvider'; import { useParticipants } from './ParticipantsProvider'; @@ -20,6 +21,8 @@ import { REMOVE_TRACKS, TRACK_STARTED, TRACK_STOPPED, + TRACK_VIDEO_UPDATED, + TRACK_AUDIO_UPDATED, tracksReducer, } from './tracksState'; @@ -111,17 +114,15 @@ export const TracksProvider = ({ children }) => { // participant's cam if (desiredSubscription === currentSubscription) return u; - return { - ...u, - [id]: { - setSubscribedTracks: { - audio: true, - screenAudio: true, - screenVideo: true, - video: desiredSubscription, - }, + u[id] = { + setSubscribedTracks: { + audio: true, + screenAudio: true, + screenVideo: true, + video: desiredSubscription, }, }; + return u; }, {}); if (Object.keys(updates).length === 0) return; @@ -181,26 +182,25 @@ export const TracksProvider = ({ children }) => { joinedSubscriptionQueue.push(participant.session_id); }; - const joinBatchInterval = setInterval(() => { + const joinBatchInterval = setInterval(async () => { if (!joinedSubscriptionQueue.length) return; const ids = joinedSubscriptionQueue.splice(0); - const callParticipants = callObject.participants(); + const participants = callObject.participants(); + const topology = (await callObject.getNetworkTopology())?.topology; const updates = ids.reduce((o, id) => { - const { subscribed } = callParticipants?.[id]?.tracks?.audio; - const result = { ...o[id] }; - if (!subscribed) { - result.setSubscribedTracks = { - audio: true, - screenAudio: true, - screenVideo: true, + if (!participants?.[id]?.tracks?.audio?.subscribed) { + o[id] = { + setSubscribedTracks: { + audio: true, + screenAudio: true, + screenVideo: true, + }, }; } - - if (rtcpeers?.getCurrentType?.() === 'peer-to-peer') { - result.setSubscribedTracks = true; + if (topology === 'peer') { + o[id] = { setSubscribedTracks: true }; } - - return { [id]: result }; + return o; }, {}); if (!subscribeToTracksAutomatically && Object.keys(updates).length0) { @@ -222,6 +222,62 @@ export const TracksProvider = ({ children }) => { }; }, [callObject, subscribeToTracksAutomatically]); + useDeepCompareEffect(() => { + if (!callObject) return; + + const handleParticipantUpdated = ({ participant }) => { + const hasAudioChanged = + // State changed + participant.tracks.audio.state !== + state.audioTracks?.[participant.user_id]?.state || + // Off/blocked reason changed + !deepEqual( + { + ...(participant.tracks.audio?.blocked ?? {}), + ...(participant.tracks.audio?.off ?? {}), + }, + { + ...(state.audioTracks?.[participant.user_id].blocked ?? {}), + ...(state.audioTracks?.[participant.user_id].off ?? {}), + } + ); + const hasVideoChanged = + // State changed + participant.tracks.video.state !== + state.videoTracks?.[participant.user_id]?.state || + // Off/blocked reason changed + !deepEqual( + { + ...(participant.tracks.video?.blocked ?? {}), + ...(participant.tracks.video?.off ?? {}), + }, + { + ...(state.videoTracks?.[participant.user_id].blocked ?? {}), + ...(state.videoTracks?.[participant.user_id].off ?? {}), + } + ); + if (hasAudioChanged) { + // Update audio track state + dispatch({ + type: TRACK_AUDIO_UPDATED, + participant, + }); + } + if (hasVideoChanged) { + // Update video track state + dispatch({ + type: TRACK_VIDEO_UPDATED, + participant, + }); + } + }; + + callObject.on('participant-updated', handleParticipantUpdated); + return () => { + callObject.off('participant-updated', handleParticipantUpdated); + }; + }, [callObject, state.audioTracks, state.videoTracks]); + return ( { const dailyRoomInfo = await co.room(); + const { access } = co.accessState(); const prejoinEnabled = dailyRoomInfo?.config?.enable_prejoin_ui === null @@ -61,7 +62,12 @@ export const useCallMachine = ({ const knockingEnabled = !!dailyRoomInfo?.config?.enable_knocking; - return prejoinEnabled || knockingEnabled; + return ( + prejoinEnabled || + (access !== ACCESS_STATE_UNKNOWN && + access?.level === ACCESS_STATE_LOBBY && + knockingEnabled) + ); }; // --- Callbacks --- diff --git a/dailyjs/shared/contexts/useDevices.js b/custom/shared/contexts/useDevices.js similarity index 100% rename from dailyjs/shared/contexts/useDevices.js rename to custom/shared/contexts/useDevices.js diff --git a/dailyjs/shared/hooks/useActiveSpeaker.js b/custom/shared/hooks/useActiveSpeaker.js similarity index 100% rename from dailyjs/shared/hooks/useActiveSpeaker.js rename to custom/shared/hooks/useActiveSpeaker.js diff --git a/dailyjs/shared/hooks/useAudioLevel.js b/custom/shared/hooks/useAudioLevel.js similarity index 100% rename from dailyjs/shared/hooks/useAudioLevel.js rename to custom/shared/hooks/useAudioLevel.js diff --git a/dailyjs/shared/hooks/useAudioTrack.js b/custom/shared/hooks/useAudioTrack.js similarity index 100% rename from dailyjs/shared/hooks/useAudioTrack.js rename to custom/shared/hooks/useAudioTrack.js diff --git a/dailyjs/shared/hooks/useCallUI.js b/custom/shared/hooks/useCallUI.js similarity index 87% rename from dailyjs/shared/hooks/useCallUI.js rename to custom/shared/hooks/useCallUI.js index ae28715..9e07a27 100644 --- a/dailyjs/shared/hooks/useCallUI.js +++ b/custom/shared/hooks/useCallUI.js @@ -1,6 +1,6 @@ import React, { useCallback, useEffect } from 'react'; -import Loader from '@dailyjs/shared/components/Loader'; -import MessageCard from '@dailyjs/shared/components/MessageCard'; +import Loader from '@custom/shared/components/Loader'; +import MessageCard from '@custom/shared/components/MessageCard'; import { CALL_STATE_ENDED, CALL_STATE_JOINED, @@ -12,7 +12,7 @@ import { CALL_STATE_REDIRECTING, CALL_STATE_NOT_ALLOWED, CALL_STATE_EXPIRED, -} from '@dailyjs/shared/contexts/useCallMachine'; +} from '@custom/shared/contexts/useCallMachine'; import { useRouter } from 'next/router'; import HairCheck from '../components/HairCheck'; @@ -66,7 +66,7 @@ export const useCallUI = ({ return haircheck ? haircheck() : ; case CALL_STATE_JOINED: return room ? ( - room() + room ) : ( ); @@ -81,7 +81,8 @@ export const useCallUI = ({ callEnded() ) : ( - You have left the call. We hope you had fun! + You have left the call (either manually or because the room + expired). We hope you had fun! ); default: @@ -89,11 +90,7 @@ export const useCallUI = ({ } return ( - window.location.reload()} - > + A fatal error occured in the call loop. Please check you have entered a valid DAILY_DOMAIN and DAILY_API_KEY{' '} environmental variables. diff --git a/dailyjs/shared/hooks/useCamSubscriptions.js b/custom/shared/hooks/useCamSubscriptions.js similarity index 100% rename from dailyjs/shared/hooks/useCamSubscriptions.js rename to custom/shared/hooks/useCamSubscriptions.js diff --git a/dailyjs/shared/hooks/useJoinSound.js b/custom/shared/hooks/useJoinSound.js similarity index 100% rename from dailyjs/shared/hooks/useJoinSound.js rename to custom/shared/hooks/useJoinSound.js diff --git a/dailyjs/shared/hooks/useNetworkState.js b/custom/shared/hooks/useNetworkState.js similarity index 100% rename from dailyjs/shared/hooks/useNetworkState.js rename to custom/shared/hooks/useNetworkState.js diff --git a/dailyjs/shared/hooks/useResize.js b/custom/shared/hooks/useResize.js similarity index 100% rename from dailyjs/shared/hooks/useResize.js rename to custom/shared/hooks/useResize.js diff --git a/dailyjs/shared/hooks/useScrollbarWidth.js b/custom/shared/hooks/useScrollbarWidth.js similarity index 100% rename from dailyjs/shared/hooks/useScrollbarWidth.js rename to custom/shared/hooks/useScrollbarWidth.js diff --git a/dailyjs/shared/hooks/useSound.js b/custom/shared/hooks/useSound.js similarity index 100% rename from dailyjs/shared/hooks/useSound.js rename to custom/shared/hooks/useSound.js diff --git a/dailyjs/shared/hooks/useVideoTrack.js b/custom/shared/hooks/useVideoTrack.js similarity index 100% rename from dailyjs/shared/hooks/useVideoTrack.js rename to custom/shared/hooks/useVideoTrack.js diff --git a/dailyjs/shared/icons/add-md.svg b/custom/shared/icons/add-md.svg similarity index 100% rename from dailyjs/shared/icons/add-md.svg rename to custom/shared/icons/add-md.svg diff --git a/dailyjs/shared/icons/add-person-lg.svg b/custom/shared/icons/add-person-lg.svg similarity index 100% rename from dailyjs/shared/icons/add-person-lg.svg rename to custom/shared/icons/add-person-lg.svg diff --git a/dailyjs/shared/icons/avatar-md.svg b/custom/shared/icons/avatar-md.svg similarity index 100% rename from dailyjs/shared/icons/avatar-md.svg rename to custom/shared/icons/avatar-md.svg diff --git a/dailyjs/shared/icons/camera-off-md.svg b/custom/shared/icons/camera-off-md.svg similarity index 100% rename from dailyjs/shared/icons/camera-off-md.svg rename to custom/shared/icons/camera-off-md.svg diff --git a/dailyjs/shared/icons/camera-off-sm.svg b/custom/shared/icons/camera-off-sm.svg similarity index 100% rename from dailyjs/shared/icons/camera-off-sm.svg rename to custom/shared/icons/camera-off-sm.svg diff --git a/dailyjs/shared/icons/camera-on-md.svg b/custom/shared/icons/camera-on-md.svg similarity index 100% rename from dailyjs/shared/icons/camera-on-md.svg rename to custom/shared/icons/camera-on-md.svg diff --git a/dailyjs/shared/icons/camera-on-sm.svg b/custom/shared/icons/camera-on-sm.svg similarity index 100% rename from dailyjs/shared/icons/camera-on-sm.svg rename to custom/shared/icons/camera-on-sm.svg diff --git a/dailyjs/shared/icons/chat-md.svg b/custom/shared/icons/chat-md.svg similarity index 100% rename from dailyjs/shared/icons/chat-md.svg rename to custom/shared/icons/chat-md.svg diff --git a/dailyjs/shared/icons/close-sm.svg b/custom/shared/icons/close-sm.svg similarity index 100% rename from dailyjs/shared/icons/close-sm.svg rename to custom/shared/icons/close-sm.svg diff --git a/dailyjs/shared/icons/leave-md.svg b/custom/shared/icons/leave-md.svg similarity index 100% rename from dailyjs/shared/icons/leave-md.svg rename to custom/shared/icons/leave-md.svg diff --git a/dailyjs/shared/icons/mic-off-md.svg b/custom/shared/icons/mic-off-md.svg similarity index 100% rename from dailyjs/shared/icons/mic-off-md.svg rename to custom/shared/icons/mic-off-md.svg diff --git a/dailyjs/shared/icons/mic-off-sm.svg b/custom/shared/icons/mic-off-sm.svg similarity index 100% rename from dailyjs/shared/icons/mic-off-sm.svg rename to custom/shared/icons/mic-off-sm.svg diff --git a/dailyjs/shared/icons/mic-on-md.svg b/custom/shared/icons/mic-on-md.svg similarity index 100% rename from dailyjs/shared/icons/mic-on-md.svg rename to custom/shared/icons/mic-on-md.svg diff --git a/dailyjs/shared/icons/mic-on-sm.svg b/custom/shared/icons/mic-on-sm.svg similarity index 100% rename from dailyjs/shared/icons/mic-on-sm.svg rename to custom/shared/icons/mic-on-sm.svg diff --git a/custom/shared/icons/network-md.svg b/custom/shared/icons/network-md.svg new file mode 100644 index 0000000..1259c14 --- /dev/null +++ b/custom/shared/icons/network-md.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dailyjs/shared/icons/people-md.svg b/custom/shared/icons/people-md.svg similarity index 100% rename from dailyjs/shared/icons/people-md.svg rename to custom/shared/icons/people-md.svg diff --git a/dailyjs/shared/icons/raquo-md.svg b/custom/shared/icons/raquo-md.svg similarity index 100% rename from dailyjs/shared/icons/raquo-md.svg rename to custom/shared/icons/raquo-md.svg diff --git a/dailyjs/shared/icons/record-md.svg b/custom/shared/icons/record-md.svg similarity index 100% rename from dailyjs/shared/icons/record-md.svg rename to custom/shared/icons/record-md.svg diff --git a/dailyjs/shared/icons/settings-md.svg b/custom/shared/icons/settings-md.svg similarity index 100% rename from dailyjs/shared/icons/settings-md.svg rename to custom/shared/icons/settings-md.svg diff --git a/dailyjs/shared/icons/settings-sm.svg b/custom/shared/icons/settings-sm.svg similarity index 100% rename from dailyjs/shared/icons/settings-sm.svg rename to custom/shared/icons/settings-sm.svg diff --git a/dailyjs/shared/icons/star-md.svg b/custom/shared/icons/star-md.svg similarity index 100% rename from dailyjs/shared/icons/star-md.svg rename to custom/shared/icons/star-md.svg diff --git a/dailyjs/shared/icons/streaming-md.svg b/custom/shared/icons/streaming-md.svg similarity index 100% rename from dailyjs/shared/icons/streaming-md.svg rename to custom/shared/icons/streaming-md.svg diff --git a/dailyjs/text-chat/index.js b/custom/shared/index.js similarity index 100% rename from dailyjs/text-chat/index.js rename to custom/shared/index.js diff --git a/dailyjs/shared/lib/demoProps.js b/custom/shared/lib/demoProps.js similarity index 83% rename from dailyjs/shared/lib/demoProps.js rename to custom/shared/lib/demoProps.js index ba814bb..757128c 100644 --- a/dailyjs/shared/lib/demoProps.js +++ b/custom/shared/lib/demoProps.js @@ -3,8 +3,6 @@ export default function getDemoProps() { domain: process.env.DAILY_DOMAIN || null, // Check that both domain and key env vars are set isConfigured: !!process.env.DAILY_DOMAIN && !!process.env.DAILY_API_KEY, - // Have we predefined a room to use? - predefinedRoom: process.env.DAILY_ROOM || '', // Manual or automatic track subscriptions subscribeToTracksAutomatically: !process.env.MANUAL_TRACK_SUBS, // Are we running in demo mode? (automatically creates a short-expiry room) diff --git a/dailyjs/shared/lib/mediaUtils.js b/custom/shared/lib/mediaUtils.js similarity index 100% rename from dailyjs/shared/lib/mediaUtils.js rename to custom/shared/lib/mediaUtils.js diff --git a/dailyjs/shared/lib/sortByKey.js b/custom/shared/lib/sortByKey.js similarity index 100% rename from dailyjs/shared/lib/sortByKey.js rename to custom/shared/lib/sortByKey.js diff --git a/dailyjs/shared/lib/sortLastActive.js b/custom/shared/lib/sortLastActive.js similarity index 100% rename from dailyjs/shared/lib/sortLastActive.js rename to custom/shared/lib/sortLastActive.js diff --git a/dailyjs/shared/lib/token.js b/custom/shared/lib/token.js similarity index 100% rename from dailyjs/shared/lib/token.js rename to custom/shared/lib/token.js diff --git a/dailyjs/shared/package.json b/custom/shared/package.json similarity index 86% rename from dailyjs/shared/package.json rename to custom/shared/package.json index 0c0a123..d4d542b 100644 --- a/dailyjs/shared/package.json +++ b/custom/shared/package.json @@ -1,10 +1,10 @@ { - "name": "@dailyjs/shared", + "name": "@custom/shared", "version": "0.1.0", "private": true, "main": "index.js", "dependencies": { - "@daily-co/daily-js": "^0.18.0", + "@daily-co/daily-js": "^0.19.0", "bowser": "^2.11.0", "classnames": "^2.3.1", "debounce": "^1.2.1", diff --git a/dailyjs/shared/styles/defaultTheme.js b/custom/shared/styles/defaultTheme.js similarity index 100% rename from dailyjs/shared/styles/defaultTheme.js rename to custom/shared/styles/defaultTheme.js diff --git a/dailyjs/shared/styles/global.js b/custom/shared/styles/global.js similarity index 100% rename from dailyjs/shared/styles/global.js rename to custom/shared/styles/global.js diff --git a/custom/text-chat/.babelrc b/custom/text-chat/.babelrc new file mode 100644 index 0000000..a6f4434 --- /dev/null +++ b/custom/text-chat/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["next/babel"], + "plugins": ["inline-react-svg"] +} diff --git a/dailyjs/text-chat/README.md b/custom/text-chat/README.md similarity index 93% rename from dailyjs/text-chat/README.md rename to custom/text-chat/README.md index 6703492..47e5b37 100644 --- a/dailyjs/text-chat/README.md +++ b/custom/text-chat/README.md @@ -4,7 +4,7 @@ ### Live example -**[See it in action here ➡️](https://dailyjs-text-chat.vercel.app)** +**[See it in action here ➡️](https://custom-text-chat.vercel.app)** --- @@ -25,7 +25,7 @@ Please note: this demo is not currently mobile optimised mv env.example .env.local yarn -yarn workspace @dailyjs/text-chat dev +yarn workspace @custom/text-chat dev ``` ## How does this example work? diff --git a/dailyjs/text-chat/components/App/App.js b/custom/text-chat/components/App.js similarity index 64% rename from dailyjs/text-chat/components/App/App.js rename to custom/text-chat/components/App.js index 7a9a4ce..39292cf 100644 --- a/dailyjs/text-chat/components/App/App.js +++ b/custom/text-chat/components/App.js @@ -1,7 +1,7 @@ import React from 'react'; -import App from '@dailyjs/basic-call/components/App'; -import { ChatProvider } from '../../contexts/ChatProvider'; +import App from '@custom/basic-call/components/App'; +import { ChatProvider } from '../contexts/ChatProvider'; // Extend our basic call app component with the chat context export const AppWithChat = () => ( diff --git a/dailyjs/text-chat/components/ChatAside/ChatAside.js b/custom/text-chat/components/ChatAside.js similarity index 89% rename from dailyjs/text-chat/components/ChatAside/ChatAside.js rename to custom/text-chat/components/ChatAside.js index 2c88d3e..16ae754 100644 --- a/dailyjs/text-chat/components/ChatAside/ChatAside.js +++ b/custom/text-chat/components/ChatAside.js @@ -1,10 +1,10 @@ import React, { useEffect, useRef, useState } from 'react'; -import Aside from '@dailyjs/shared/components/Aside'; -import { Button } from '@dailyjs/shared/components/Button'; -import { TextInput } from '@dailyjs/shared/components/Input'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { useChat } from '../../contexts/ChatProvider'; -import { useMessageSound } from '../../hooks/useMessageSound'; +import { Aside } from '@custom/shared/components/Aside'; +import Button from '@custom/shared/components/Button'; +import { TextInput } from '@custom/shared/components/Input'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { useChat } from '../contexts/ChatProvider'; +import { useMessageSound } from '../hooks/useMessageSound'; export const CHAT_ASIDE = 'chat'; diff --git a/dailyjs/text-chat/components/Tray/Tray.js b/custom/text-chat/components/Tray.js similarity index 52% rename from dailyjs/text-chat/components/Tray/Tray.js rename to custom/text-chat/components/Tray.js index b9b12c8..e6904ac 100644 --- a/dailyjs/text-chat/components/Tray/Tray.js +++ b/custom/text-chat/components/Tray.js @@ -1,10 +1,10 @@ import React from 'react'; -import { TrayButton } from '@dailyjs/shared/components/Tray'; -import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; -import { ReactComponent as IconChat } from '@dailyjs/shared/icons/chat-md.svg'; -import { useChat } from '../../contexts/ChatProvider'; -import { CHAT_ASIDE } from '../ChatAside/ChatAside'; +import { TrayButton } from '@custom/shared/components/Tray'; +import { useUIState } from '@custom/shared/contexts/UIStateProvider'; +import { ReactComponent as IconChat } from '@custom/shared/icons/chat-md.svg'; +import { useChat } from '../contexts/ChatProvider'; +import { CHAT_ASIDE } from './ChatAside'; export const Tray = () => { const { toggleAside } = useUIState(); diff --git a/dailyjs/text-chat/contexts/ChatProvider.js b/custom/text-chat/contexts/ChatProvider.js similarity index 96% rename from dailyjs/text-chat/contexts/ChatProvider.js rename to custom/text-chat/contexts/ChatProvider.js index 6ad611a..db90609 100644 --- a/dailyjs/text-chat/contexts/ChatProvider.js +++ b/custom/text-chat/contexts/ChatProvider.js @@ -5,7 +5,7 @@ import React, { useEffect, useState, } from 'react'; -import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; +import { useCallState } from '@custom/shared/contexts/CallProvider'; import { nanoid } from 'nanoid'; import PropTypes from 'prop-types'; diff --git a/dailyjs/text-chat/env.example b/custom/text-chat/env.example similarity index 100% rename from dailyjs/text-chat/env.example rename to custom/text-chat/env.example diff --git a/dailyjs/text-chat/hooks/useMessageSound.js b/custom/text-chat/hooks/useMessageSound.js similarity index 87% rename from dailyjs/text-chat/hooks/useMessageSound.js rename to custom/text-chat/hooks/useMessageSound.js index 3324693..7449e10 100644 --- a/dailyjs/text-chat/hooks/useMessageSound.js +++ b/custom/text-chat/hooks/useMessageSound.js @@ -1,6 +1,6 @@ import { useEffect, useMemo } from 'react'; -import { useSound } from '@dailyjs/shared/hooks/useSound'; +import { useSound } from '@custom/shared/hooks/useSound'; import { debounce } from 'debounce'; /** diff --git a/dailyjs/text-chat/image.png b/custom/text-chat/image.png similarity index 100% rename from dailyjs/text-chat/image.png rename to custom/text-chat/image.png diff --git a/custom/text-chat/index.js b/custom/text-chat/index.js new file mode 100644 index 0000000..9044efc --- /dev/null +++ b/custom/text-chat/index.js @@ -0,0 +1 @@ +// Note: I am here because next-transpile-modules requires a mainfile diff --git a/custom/text-chat/next.config.js b/custom/text-chat/next.config.js new file mode 100644 index 0000000..9140e28 --- /dev/null +++ b/custom/text-chat/next.config.js @@ -0,0 +1,13 @@ +const withPlugins = require('next-compose-plugins'); +const withTM = require('next-transpile-modules')([ + '@custom/shared', + '@custom/basic-call', +]); + +const packageJson = require('./package.json'); + +module.exports = withPlugins([withTM], { + env: { + PROJECT_TITLE: packageJson.description, + }, +}); diff --git a/dailyjs/text-chat/package.json b/custom/text-chat/package.json similarity index 84% rename from dailyjs/text-chat/package.json rename to custom/text-chat/package.json index cd719e9..c2a4c9a 100644 --- a/dailyjs/text-chat/package.json +++ b/custom/text-chat/package.json @@ -1,5 +1,5 @@ { - "name": "@dailyjs/text-chat", + "name": "@custom/text-chat", "description": "Basic Call + Chat Example", "version": "0.1.0", "private": true, @@ -10,8 +10,8 @@ "lint": "next lint" }, "dependencies": { - "@dailyjs/shared": "*", - "@dailyjs/basic-call": "*", + "@custom/shared": "*", + "@custom/basic-call": "*", "next": "^11.0.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/dailyjs/text-chat/pages/_app.js b/custom/text-chat/pages/_app.js similarity index 85% rename from dailyjs/text-chat/pages/_app.js rename to custom/text-chat/pages/_app.js index ad38f4e..64121fa 100644 --- a/dailyjs/text-chat/pages/_app.js +++ b/custom/text-chat/pages/_app.js @@ -1,5 +1,5 @@ import React from 'react'; -import App from '@dailyjs/basic-call/pages/_app'; +import App from '@custom/basic-call/pages/_app'; import AppWithChat from '../components/App'; import ChatAside from '../components/ChatAside'; diff --git a/custom/text-chat/pages/_document.js b/custom/text-chat/pages/_document.js new file mode 100644 index 0000000..31f6c1f --- /dev/null +++ b/custom/text-chat/pages/_document.js @@ -0,0 +1,3 @@ +import Doc from '@custom/basic-call/pages/_document'; + +export default Doc; diff --git a/custom/text-chat/pages/api b/custom/text-chat/pages/api new file mode 120000 index 0000000..999f604 --- /dev/null +++ b/custom/text-chat/pages/api @@ -0,0 +1 @@ +../../basic-call/pages/api \ No newline at end of file diff --git a/custom/text-chat/pages/index.js b/custom/text-chat/pages/index.js new file mode 100644 index 0000000..84a3f53 --- /dev/null +++ b/custom/text-chat/pages/index.js @@ -0,0 +1,13 @@ +import Index from '@custom/basic-call/pages'; +import getDemoProps from '@custom/shared/lib/demoProps'; + +export async function getStaticProps() { + const defaultProps = getDemoProps(); + + // Pass through domain as prop + return { + props: defaultProps, + }; +} + +export default Index; diff --git a/dailyjs/text-chat/public/assets/daily-logo-dark.svg b/custom/text-chat/public/assets/daily-logo-dark.svg similarity index 100% rename from dailyjs/text-chat/public/assets/daily-logo-dark.svg rename to custom/text-chat/public/assets/daily-logo-dark.svg diff --git a/dailyjs/text-chat/public/assets/daily-logo.svg b/custom/text-chat/public/assets/daily-logo.svg similarity index 100% rename from dailyjs/text-chat/public/assets/daily-logo.svg rename to custom/text-chat/public/assets/daily-logo.svg diff --git a/dailyjs/text-chat/public/assets/join.mp3 b/custom/text-chat/public/assets/join.mp3 similarity index 100% rename from dailyjs/text-chat/public/assets/join.mp3 rename to custom/text-chat/public/assets/join.mp3 diff --git a/dailyjs/text-chat/public/assets/message.mp3 b/custom/text-chat/public/assets/message.mp3 similarity index 100% rename from dailyjs/text-chat/public/assets/message.mp3 rename to custom/text-chat/public/assets/message.mp3 diff --git a/dailyjs/text-chat/public/assets/pattern-bg.png b/custom/text-chat/public/assets/pattern-bg.png similarity index 100% rename from dailyjs/text-chat/public/assets/pattern-bg.png rename to custom/text-chat/public/assets/pattern-bg.png diff --git a/custom/text-chat/public/components/Header/Header.js b/custom/text-chat/public/components/Header/Header.js new file mode 100644 index 0000000..595d93d --- /dev/null +++ b/custom/text-chat/public/components/Header/Header.js @@ -0,0 +1,95 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export const Header = ({ demoTitle, repoLink }) => ( +
+
+ Daily +
{demoTitle}
+
+ + +
+); + +Header.propTypes = { + demoTitle: PropTypes.string, + repoLink: PropTypes.string, +}; + +export default Header; diff --git a/custom/text-chat/public/components/Header/index.js b/custom/text-chat/public/components/Header/index.js new file mode 100644 index 0000000..a70ad39 --- /dev/null +++ b/custom/text-chat/public/components/Header/index.js @@ -0,0 +1 @@ +export { Header as default } from './Header'; diff --git a/dailyjs/basic-call/components/CreatingRoom/index.js b/dailyjs/basic-call/components/CreatingRoom/index.js deleted file mode 100644 index c92b6f2..0000000 --- a/dailyjs/basic-call/components/CreatingRoom/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { CreatingRoom as default } from './CreatingRoom'; -export { CreatingRoom } from './CreatingRoom'; diff --git a/dailyjs/basic-call/components/Intro/index.js b/dailyjs/basic-call/components/Intro/index.js deleted file mode 100644 index 7994320..0000000 --- a/dailyjs/basic-call/components/Intro/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { Intro as default } from './Intro'; -export { Intro } from './Intro'; -export { NotConfigured } from './NotConfigured'; diff --git a/dailyjs/basic-call/components/Room/Room.js b/dailyjs/basic-call/components/Room/Room.js deleted file mode 100644 index 8efc0bb..0000000 --- a/dailyjs/basic-call/components/Room/Room.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import VideoContainer from '@dailyjs/shared/components/VideoContainer/VideoContainer'; - -import { VideoGrid } from '../VideoGrid'; -import { Header } from './Header'; -import { RoomContainer } from './RoomContainer'; - -export const Room = () => ( - -
- - - - -); - -export default Room; diff --git a/dailyjs/basic-call/components/Room/index.js b/dailyjs/basic-call/components/Room/index.js deleted file mode 100644 index 2dc7fcb..0000000 --- a/dailyjs/basic-call/components/Room/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { Room as default } from './Room'; -export { RoomContainer } from './RoomContainer'; diff --git a/dailyjs/basic-call/components/VideoGrid/index.js b/dailyjs/basic-call/components/VideoGrid/index.js deleted file mode 100644 index 5285614..0000000 --- a/dailyjs/basic-call/components/VideoGrid/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { VideoGrid as default } from './VideoGrid'; -export { VideoGrid } from './VideoGrid'; diff --git a/dailyjs/basic-call/components/WaitingRoom/index.js b/dailyjs/basic-call/components/WaitingRoom/index.js deleted file mode 100644 index 48d19f6..0000000 --- a/dailyjs/basic-call/components/WaitingRoom/index.js +++ /dev/null @@ -1 +0,0 @@ -export { WaitingRoom as default } from './WaitingRoom'; diff --git a/dailyjs/flying-emojis/components/App/index.js b/dailyjs/flying-emojis/components/App/index.js deleted file mode 100644 index 8887a4b..0000000 --- a/dailyjs/flying-emojis/components/App/index.js +++ /dev/null @@ -1 +0,0 @@ -export { AppWithEmojis as default } from './App'; diff --git a/dailyjs/flying-emojis/components/FlyingEmojis/index.js b/dailyjs/flying-emojis/components/FlyingEmojis/index.js deleted file mode 100644 index 6e98cc3..0000000 --- a/dailyjs/flying-emojis/components/FlyingEmojis/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { FlyingEmojisOverlay } from './FlyingEmojisOverlay'; -export { FlyingEmojisOverlay as default } from './FlyingEmojisOverlay'; diff --git a/dailyjs/flying-emojis/components/Tray/index.js b/dailyjs/flying-emojis/components/Tray/index.js deleted file mode 100644 index 100bcc8..0000000 --- a/dailyjs/flying-emojis/components/Tray/index.js +++ /dev/null @@ -1 +0,0 @@ -export { Tray as default } from './Tray'; diff --git a/dailyjs/live-streaming/components/App/index.js b/dailyjs/live-streaming/components/App/index.js deleted file mode 100644 index c46acf2..0000000 --- a/dailyjs/live-streaming/components/App/index.js +++ /dev/null @@ -1 +0,0 @@ -export { AppWithLiveStreaming as default } from './App'; diff --git a/dailyjs/live-streaming/components/LiveStreamingModal/index.js b/dailyjs/live-streaming/components/LiveStreamingModal/index.js deleted file mode 100644 index 12ffdf0..0000000 --- a/dailyjs/live-streaming/components/LiveStreamingModal/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { LiveStreamingModal as default } from './LiveStreamingModal'; -export { LiveStreamingModal } from './LiveStreamingModal'; -export { LIVE_STREAMING_MODAL } from './LiveStreamingModal'; diff --git a/dailyjs/live-streaming/components/Tray/index.js b/dailyjs/live-streaming/components/Tray/index.js deleted file mode 100644 index 100bcc8..0000000 --- a/dailyjs/live-streaming/components/Tray/index.js +++ /dev/null @@ -1 +0,0 @@ -export { Tray as default } from './Tray'; diff --git a/dailyjs/pagination/components/App/index.js b/dailyjs/pagination/components/App/index.js deleted file mode 100644 index 2851771..0000000 --- a/dailyjs/pagination/components/App/index.js +++ /dev/null @@ -1 +0,0 @@ -export { AppWithPagination as default } from './App'; diff --git a/dailyjs/pagination/components/PaginatedVideoGrid/index.js b/dailyjs/pagination/components/PaginatedVideoGrid/index.js deleted file mode 100644 index ea21f7a..0000000 --- a/dailyjs/pagination/components/PaginatedVideoGrid/index.js +++ /dev/null @@ -1 +0,0 @@ -export { PaginatedVideoGrid as default } from './PaginatedVideoGrid'; diff --git a/dailyjs/pagination/components/Tray/index.js b/dailyjs/pagination/components/Tray/index.js deleted file mode 100644 index 100bcc8..0000000 --- a/dailyjs/pagination/components/Tray/index.js +++ /dev/null @@ -1 +0,0 @@ -export { Tray as default } from './Tray'; diff --git a/dailyjs/recording/components/App/index.js b/dailyjs/recording/components/App/index.js deleted file mode 100644 index 82a89dc..0000000 --- a/dailyjs/recording/components/App/index.js +++ /dev/null @@ -1 +0,0 @@ -export { AppWithRecording as default } from './App'; diff --git a/dailyjs/recording/components/RecordingModal/index.js b/dailyjs/recording/components/RecordingModal/index.js deleted file mode 100644 index 0a0deca..0000000 --- a/dailyjs/recording/components/RecordingModal/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { RecordingModal as default } from './RecordingModal'; -export { RecordingModal } from './RecordingModal'; -export { RECORDING_MODAL } from './RecordingModal'; diff --git a/dailyjs/recording/components/Tray/index.js b/dailyjs/recording/components/Tray/index.js deleted file mode 100644 index 100bcc8..0000000 --- a/dailyjs/recording/components/Tray/index.js +++ /dev/null @@ -1 +0,0 @@ -export { Tray as default } from './Tray'; diff --git a/dailyjs/shared/components/Audio/AudioTrack.js b/dailyjs/shared/components/Audio/AudioTrack.js deleted file mode 100644 index e8e53ce..0000000 --- a/dailyjs/shared/components/Audio/AudioTrack.js +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useRef, useEffect } from 'react'; -import PropTypes from 'prop-types'; - -const AudioTrack = React.memo( - ({ track }) => { - const audioRef = useRef(null); - - useEffect(() => { - if (!audioRef.current) return false; - let playTimeout; - - const handleCanPlay = () => { - playTimeout = setTimeout(() => { - console.log('Unable to autoplay audio element'); - }, 1500); - }; - const handlePlay = () => { - clearTimeout(playTimeout); - }; - audioRef.current.addEventListener('canplay', handleCanPlay); - audioRef.current.addEventListener('play', handlePlay); - audioRef.current.srcObject = new MediaStream([track]); - - const audioEl = audioRef.current; - - return () => { - audioEl?.removeEventListener('canplay', handleCanPlay); - audioEl?.removeEventListener('play', handlePlay); - }; - }, [track]); - - return track ? ( - - ) : null; - }, - () => true -); - -AudioTrack.propTypes = { - track: PropTypes.object, -}; - -export default AudioTrack; diff --git a/dailyjs/shared/components/Audio/index.js b/dailyjs/shared/components/Audio/index.js deleted file mode 100644 index de613b3..0000000 --- a/dailyjs/shared/components/Audio/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { Audio as default } from './Audio'; -export { Audio } from './Audio'; diff --git a/dailyjs/shared/components/GlobalHead/GlobalHead.js b/dailyjs/shared/components/GlobalHead/GlobalHead.js deleted file mode 100644 index dc4660a..0000000 --- a/dailyjs/shared/components/GlobalHead/GlobalHead.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import Head from 'next/head'; - -export const GlobalHead = () => ( - - - - -); - -export default GlobalHead; diff --git a/dailyjs/shared/components/GlobalHead/index.js b/dailyjs/shared/components/GlobalHead/index.js deleted file mode 100644 index 2d9ccec..0000000 --- a/dailyjs/shared/components/GlobalHead/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { GlobalHead as default } from './GlobalHead'; -export { GlobalHead } from './GlobalHead'; diff --git a/dailyjs/shared/components/Tile/Video/index.js b/dailyjs/shared/components/Tile/Video/index.js deleted file mode 100644 index ff5c13f..0000000 --- a/dailyjs/shared/components/Tile/Video/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { Video as default } from './Video'; -export { Video } from './Video'; diff --git a/dailyjs/shared/components/VideoContainer/index.js b/dailyjs/shared/components/VideoContainer/index.js deleted file mode 100644 index e69de29..0000000 diff --git a/dailyjs/text-chat/components/App/index.js b/dailyjs/text-chat/components/App/index.js deleted file mode 100644 index 770f031..0000000 --- a/dailyjs/text-chat/components/App/index.js +++ /dev/null @@ -1 +0,0 @@ -export { AppWithChat as default } from './App'; diff --git a/dailyjs/text-chat/components/ChatAside/index.js b/dailyjs/text-chat/components/ChatAside/index.js deleted file mode 100644 index 8e15e50..0000000 --- a/dailyjs/text-chat/components/ChatAside/index.js +++ /dev/null @@ -1 +0,0 @@ -export { ChatAside as default } from './ChatAside'; diff --git a/dailyjs/text-chat/components/Tray/index.js b/dailyjs/text-chat/components/Tray/index.js deleted file mode 100644 index 100bcc8..0000000 --- a/dailyjs/text-chat/components/Tray/index.js +++ /dev/null @@ -1 +0,0 @@ -export { Tray as default } from './Tray'; diff --git a/dailyjs/text-chat/next.config.js b/dailyjs/text-chat/next.config.js deleted file mode 100644 index 9a0a6ee..0000000 --- a/dailyjs/text-chat/next.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const withPlugins = require('next-compose-plugins'); -const withTM = require('next-transpile-modules')([ - '@dailyjs/shared', - '@dailyjs/basic-call', -]); - -const packageJson = require('./package.json'); - -module.exports = withPlugins([withTM], { - env: { - PROJECT_TITLE: packageJson.description, - }, -}); diff --git a/package.json b/package.json index 6ac8fe8..820025e 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "license": "MIT", "private": true, "workspaces": [ - "dailyjs/*", - "prebuilt-ui/*" + "custom/*", + "prebuilt/*" ], "engines": { "node": ">=0.12" @@ -15,13 +15,9 @@ "babel-eslint": "^10.1.0", "babel-plugin-inline-react-svg": "^2.0.1", "eslint": "^7.25.0", - "eslint-config-airbnb": "^18.2.1", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-prettier": "^3.4.0", - "eslint-plugin-react": "^7.23.2", - "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-import": "^2.22.1", "eslint-config-next": "^11.0.1" } } diff --git a/prebuilt-ui/README.md b/prebuilt/README.md similarity index 58% rename from prebuilt-ui/README.md rename to prebuilt/README.md index 951f93f..24acd13 100644 --- a/prebuilt-ui/README.md +++ b/prebuilt/README.md @@ -8,6 +8,12 @@ These examples demonstrate how to customise and extend the prebuilt UI. ## Examples +### [✅ Basic embed](./basic-embed) +Embeds [Daily Prebuilt](https://docs.daily.co/prebuilt), a ready-to-use video chat interface, into a Next.js app. + +### [💬 Chat overlay](./chat-overlay) +Uses the Daily [sendAppMessage()](https://docs.daily.co/reference/daily-js/instance-methods/send-app-message#main) method to add a custom chat around a Daily Prebuilt call. + ### [🤙 iOS WebView](./ios-webview) Shows how to wrap the prebuilt UI in a native iOS application (using WKWebView) diff --git a/prebuilt/basic-embed/.env.example b/prebuilt/basic-embed/.env.example new file mode 100644 index 0000000..a298ab5 --- /dev/null +++ b/prebuilt/basic-embed/.env.example @@ -0,0 +1,8 @@ +# Domain excluding 'https://' and 'daily.co' e.g. 'somedomain' +DAILY_DOMAIN= + +# Obtained from https://dashboard.daily.co/developers +DAILY_API_KEY= + +# Daily REST API endpoint +DAILY_REST_DOMAIN=https://api.daily.co/v1 \ No newline at end of file diff --git a/prebuilt/basic-embed/.gitignore b/prebuilt/basic-embed/.gitignore new file mode 100644 index 0000000..74b7586 --- /dev/null +++ b/prebuilt/basic-embed/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/prebuilt/basic-embed/README.md b/prebuilt/basic-embed/README.md new file mode 100644 index 0000000..b95a70e --- /dev/null +++ b/prebuilt/basic-embed/README.md @@ -0,0 +1,27 @@ +# Daily Prebuilt: Next.js demo + +![Clicking create room button starts a call](./basic-embed.gif) + +**Test out the live demo**: [https://prebuilt-basic-embed.vercel.app/](https://prebuilt-basic-embed.vercel.app/) + +## How the demo works + +This demo embeds [Daily Prebuilt](https://www.daily.co/prebuilt), a ready-to-use video chat interface, into a Next.js site. It makes use of [Next API routes](https://nextjs.org/docs/api-routes/introduction) to create Daily rooms server-side. + +## Requirements + +You'll need to create a [Daily account](https://dashboard.daily.co/signup) before using this demo. You'll need your Daily API key, which you can find in your Daily dashboard on the [Developers page](https://dashboard.daily.co/developers), if you want to create rooms through the demo UI. + +You can also paste an existing Daily room into the input. The room URL should be in this format to be valid: https://domain-name.daily.co/room-name, with daily-domain changed to your domain, and room-name changed to the name of the existing room you would like to use. + +# Running locally +1. Copy .env.example and change it to an .env.local with your own DAILY_API_KEY and DAILY_DOMAIN +2. `cd basic-embed` +3. yarn +4. yarn workspace @prebuilt/basic-embed dev + +Or... + +# Deploy your own on Vercel + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/daily-co/clone-flow?repository-url=https%3A%2F%2Fgithub.com%2Fdaily-demos%2Fexamples.git&env=DAILY_DOMAIN%2CDAILY_API_KEY&envDescription=Your%20Daily%20domain%20and%20API%20key%20can%20be%20found%20on%20your%20account%20dashboard&envLink=https%3A%2F%2Fdashboard.daily.co&project-name=daily-examples&repo-name=daily-examples) \ No newline at end of file diff --git a/prebuilt/basic-embed/basic-embed.gif b/prebuilt/basic-embed/basic-embed.gif new file mode 100644 index 0000000..c749233 Binary files /dev/null and b/prebuilt/basic-embed/basic-embed.gif differ diff --git a/prebuilt/basic-embed/components/Call.js b/prebuilt/basic-embed/components/Call.js new file mode 100644 index 0000000..59900d9 --- /dev/null +++ b/prebuilt/basic-embed/components/Call.js @@ -0,0 +1,129 @@ +import { useCallback, useEffect, useRef, useState } from 'react'; +import Button from '@custom/shared/components/Button'; +import { + Card, + CardBody, + CardHeader, + CardFooter, +} from '@custom/shared/components/Card'; +import { TextInput } from '@custom/shared/components/Input'; +import DailyIframe from '@daily-co/daily-js'; +import { writeText } from 'clipboard-polyfill'; +import ExpiryTimer from '../components/ExpiryTimer'; + +const CALL_OPTIONS = { + showLeaveButton: true, + iframeStyle: { + height: '100%', + width: '100%', + aspectRatio: 16 / 9, + minwidth: '400px', + maxWidth: '920px', + border: '0', + borderRadius: '12px', + }, +}; + +export function Call({ room, setRoom, callFrame, setCallFrame, expiry }) { + const callRef = useRef(null); + const [isLinkCopied, setIsLinkCopied] = useState(false); + + const handleCopyClick = useCallback(() => { + writeText(room); + setIsLinkCopied(true); + setTimeout(() => setIsLinkCopied(false), 5000); + }, [room, isLinkCopied]); + + const createAndJoinCall = useCallback(() => { + const newCallFrame = DailyIframe.createFrame( + callRef?.current, + CALL_OPTIONS + ); + + setCallFrame(newCallFrame); + + newCallFrame.join({ url: room }); + + const leaveCall = () => { + setRoom(null); + setCallFrame(null); + callFrame.destroy(); + }; + + newCallFrame.on('left-meeting', leaveCall); + }, [room, setCallFrame]); + + /** + * Initiate Daily iframe creation on component render if it doesn't already exist + */ + useEffect(() => { + if (callFrame) return; + + createAndJoinCall(); + }, [callFrame, createAndJoinCall]); + + return ( +
+
+ {/* Daily iframe container */} +
+ + Copy and share the URL to invite others + + + + + + + {expiry && ( + + Room expires in: + + + )} + + + +
+
+ ); +} + +export default Call; diff --git a/prebuilt/basic-embed/components/CreateRoomButton.js b/prebuilt/basic-embed/components/CreateRoomButton.js new file mode 100644 index 0000000..053f6f0 --- /dev/null +++ b/prebuilt/basic-embed/components/CreateRoomButton.js @@ -0,0 +1,49 @@ +import React, { useState } from 'react'; +import Button from '@custom/shared/components/Button'; +import Well from '@custom/shared/components/Well'; + +export function CreateRoomButton({ + isConfigured, + isValidRoom, + setRoom, + setExpiry, +}) { + const [isError, setIsError] = useState(false); + + /** + * Send a request to create a Daily room server-side via Next API routes, then set the returned url in local state to trigger Daily iframe creation in + */ + const createRoom = async () => { + try { + const res = await fetch('/api/room', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const resJson = await res.json(); + setExpiry(resJson.config?.exp); + setRoom(resJson.url); + } catch (e) { + setIsError(true); + } + }; + return ( + <> + {!isConfigured && ( + + You must configure env variables to create rooms (see README + instructions). + + )} + {isError && ( + Error creating the room. Please try again. + )} + + + ); +} + +export default CreateRoomButton; diff --git a/prebuilt/basic-embed/components/ExpiryTimer.js b/prebuilt/basic-embed/components/ExpiryTimer.js new file mode 100644 index 0000000..9c652f8 --- /dev/null +++ b/prebuilt/basic-embed/components/ExpiryTimer.js @@ -0,0 +1,54 @@ +import React, { useEffect, useState } from 'react'; +import PropTypes from 'prop-types'; + +export const ExpiryTimer = ({ expiry }) => { + const [secs, setSecs] = useState('--:--'); + + // If room has an expiry time, we'll calculate how many seconds until expiry + useEffect(() => { + if (!expiry) { + return false; + } + const i = setInterval(() => { + const timeLeft = Math.round(expiry - Date.now() / 1000); + if (timeLeft < 0) { + return setSecs(null); + } + setSecs(`${Math.floor(timeLeft / 60)}:${`0${timeLeft % 60}`.slice(-2)}`); + }, 1000); + + return () => clearInterval(i); + }, [expiry]); + + if (!secs) { + return null; + } + + return ( +
+ {secs} + +
+ ); +}; + +ExpiryTimer.propTypes = { + expiry: PropTypes.number, +}; + +export default ExpiryTimer; diff --git a/prebuilt/basic-embed/components/Home.js b/prebuilt/basic-embed/components/Home.js new file mode 100644 index 0000000..a21ce96 --- /dev/null +++ b/prebuilt/basic-embed/components/Home.js @@ -0,0 +1,68 @@ +import React, { useCallback, useRef, useState } from 'react'; +import Button from '@custom/shared/components/Button'; +import { + Card, + CardBody, + CardHeader, + CardFooter, +} from '@custom/shared/components/Card'; +import Field from '@custom/shared/components/Field'; +import { TextInput } from '@custom/shared/components/Input'; +import CreateRoomButton from './CreateRoomButton'; + +export const Home = ({ setRoom, setExpiry, isConfigured }) => { + const roomRef = useRef(null); + const [isValidRoom, setIsValidRoom] = useState(false); + + /** + * If the room is valid, setIsValidRoom and enable the join button + */ + const checkValidity = useCallback( + (e) => { + if (e?.target?.checkValidity()) { + setIsValidRoom(true); + } + }, + [isValidRoom] + ); + + /** + * Set the roomUrl in local state to trigger Daily iframe creation in + */ + const joinCall = useCallback(() => { + const roomUrl = roomRef?.current?.value; + setRoom(roomUrl); + }, [roomRef]); + + return ( + + + Start demo with a new unique room, or paste in your own room URL + + + + + + + + + + + + ); +}; + +export default Home; diff --git a/prebuilt/basic-embed/next.config.js b/prebuilt/basic-embed/next.config.js new file mode 100644 index 0000000..81f29cd --- /dev/null +++ b/prebuilt/basic-embed/next.config.js @@ -0,0 +1,10 @@ +const withPlugins = require('next-compose-plugins'); +const withTM = require('next-transpile-modules')(['@custom/shared']); + +const packageJson = require('./package.json'); + +module.exports = withPlugins([withTM], { + env: { + PROJECT_TITLE: packageJson.description, + }, +}); diff --git a/prebuilt/basic-embed/package.json b/prebuilt/basic-embed/package.json new file mode 100644 index 0000000..fc54d86 --- /dev/null +++ b/prebuilt/basic-embed/package.json @@ -0,0 +1,23 @@ +{ + "name": "@prebuilt/basic-embed", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "clipboard-polyfill": "^3.0.3", + "next": "11.1.2", + "next-compose-plugins": "^2.2.1", + "next-transpile-modules": "^8.0.0", + "react": "17.0.2", + "react-dom": "17.0.2" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-next": "11.1.2" + } +} diff --git a/prebuilt/basic-embed/pages/_app.js b/prebuilt/basic-embed/pages/_app.js new file mode 100644 index 0000000..3779d73 --- /dev/null +++ b/prebuilt/basic-embed/pages/_app.js @@ -0,0 +1,22 @@ +import React from 'react'; +import GlobalStyle from '@custom/shared/components/GlobalStyle'; +import Head from 'next/head'; + +function App({ Component, pageProps }) { + return ( + <> + + Daily Prebuilt + Next.js demo + + + + + + + ); +} + +export default App; diff --git a/prebuilt/basic-embed/pages/api/room/index.js b/prebuilt/basic-embed/pages/api/room/index.js new file mode 100644 index 0000000..3b4aa9d --- /dev/null +++ b/prebuilt/basic-embed/pages/api/room/index.js @@ -0,0 +1,41 @@ +/** + * Generates a demo room server-side + */ + +export default async function handler(req, res) { + if (req.method === 'POST') { + const options = { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + Authorization: `Bearer ${process.env.DAILY_API_KEY}`, + }, + body: JSON.stringify({ + properties: { + enable_prejoin_ui: true, + enable_network_ui: true, + enable_screenshare: true, + enable_chat: true, + exp: Math.round(Date.now() / 1000) + 300, + eject_at_room_exp: true, + }, + }), + }; + + const dailyRes = await fetch( + `${process.env.DAILY_REST_DOMAIN}/rooms`, + options + ); + + const response = await dailyRes.json(); + + if (response.error) { + return res.status(500).json(response.error); + } + + return res.status(200).json(response); + } + + return res.status(500); +} diff --git a/prebuilt/basic-embed/pages/index.js b/prebuilt/basic-embed/pages/index.js new file mode 100644 index 0000000..9aacee4 --- /dev/null +++ b/prebuilt/basic-embed/pages/index.js @@ -0,0 +1,70 @@ +import React, { useState } from 'react'; +import Header from '@custom/shared/components/Header'; +import getDemoProps from '@custom/shared/lib/demoProps'; +import Call from '../components/Call'; +import Home from '../components/Home'; + +export default function Index({ isConfigured = false }) { + const [room, setRoom] = useState(null); + const [expiry, setExpiry] = useState(null); + const [callFrame, setCallFrame] = useState(null); + + return ( +
+
+
+ {room ? ( + + ) : ( + + )} +
+ +
+ ); +} + +export async function getStaticProps() { + const defaultProps = getDemoProps(); + + return { + props: defaultProps, + }; +} diff --git a/prebuilt/basic-embed/public/daily-logo.svg b/prebuilt/basic-embed/public/daily-logo.svg new file mode 100644 index 0000000..534a18a --- /dev/null +++ b/prebuilt/basic-embed/public/daily-logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/prebuilt/basic-embed/public/favicon.ico b/prebuilt/basic-embed/public/favicon.ico new file mode 100644 index 0000000..3fb8ff0 Binary files /dev/null and b/prebuilt/basic-embed/public/favicon.ico differ diff --git a/prebuilt/basic-embed/public/github-logo.png b/prebuilt/basic-embed/public/github-logo.png new file mode 100644 index 0000000..73db1f6 Binary files /dev/null and b/prebuilt/basic-embed/public/github-logo.png differ diff --git a/prebuilt/basic-embed/yarn.lock b/prebuilt/basic-embed/yarn.lock new file mode 100644 index 0000000..81b2320 --- /dev/null +++ b/prebuilt/basic-embed/yarn.lock @@ -0,0 +1,3208 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@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== + +"@babel/highlight@^7.10.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/plugin-syntax-jsx@7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/runtime-corejs3@^7.10.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.3.tgz#28754263988198f2a928c09733ade2fb4d28089d" + integrity sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A== + dependencies: + core-js-pure "^3.16.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.15.3", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.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" + +"@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" + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@hapi/accept@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" + integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw== + dependencies: + "@hapi/boom" "9.x.x" + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" + integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/hoek@9.x.x": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" + integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@napi-rs/triples@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c" + integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA== + +"@next/env@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/env/-/env-11.1.2.tgz#27996efbbc54c5f949f5e8c0a156e3aa48369b99" + integrity sha512-+fteyVdQ7C/OoulfcF6vd1Yk0FEli4453gr8kSFbU8sKseNSizYq6df5MKz/AjwLptsxrUeIkgBdAzbziyJ3mA== + +"@next/eslint-plugin-next@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-11.1.2.tgz#f26cf90bcb6cd2e4645e2ba253bbc9aaaa43a170" + integrity sha512-cN+ojHRsufr9Yz0rtvjv8WI5En0RPZRJnt0y16Ha7DD+0n473evz8i1ETEJHmOLeR7iPJR0zxRrxeTN/bJMOjg== + dependencies: + glob "7.1.7" + +"@next/polyfill-module@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-11.1.2.tgz#1fe92c364fdc81add775a16c678f5057c6aace98" + integrity sha512-xZmixqADM3xxtqBV0TpAwSFzWJP0MOQzRfzItHXf1LdQHWb0yofHHC+7eOrPFic8+ZGz5y7BdPkkgR1S25OymA== + +"@next/react-dev-overlay@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-11.1.2.tgz#73795dc5454b7af168bac93df7099965ebb603be" + integrity sha512-rDF/mGY2NC69mMg2vDqzVpCOlWqnwPUXB2zkARhvknUHyS6QJphPYv9ozoPJuoT/QBs49JJd9KWaAzVBvq920A== + dependencies: + "@babel/code-frame" "7.12.11" + anser "1.4.9" + chalk "4.0.0" + classnames "2.2.6" + css.escape "1.5.1" + data-uri-to-buffer "3.0.1" + platform "1.3.6" + shell-quote "1.7.2" + source-map "0.8.0-beta.0" + stacktrace-parser "0.1.10" + strip-ansi "6.0.0" + +"@next/react-refresh-utils@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-11.1.2.tgz#44ea40d8e773e4b77bad85e24f6ac041d5e4b4a5" + integrity sha512-hsoJmPfhVqjZ8w4IFzoo8SyECVnN+8WMnImTbTKrRUHOVJcYMmKLL7xf7T0ft00tWwAl/3f3Q3poWIN2Ueql/Q== + +"@next/swc-darwin-arm64@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.2.tgz#93226c38db488c4b62b30a53b530e87c969b8251" + integrity sha512-hZuwOlGOwBZADA8EyDYyjx3+4JGIGjSHDHWrmpI7g5rFmQNltjlbaefAbiU5Kk7j3BUSDwt30quJRFv3nyJQ0w== + +"@next/swc-darwin-x64@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.2.tgz#792003989f560c00677b5daeff360b35b510db83" + integrity sha512-PGOp0E1GisU+EJJlsmJVGE+aPYD0Uh7zqgsrpD3F/Y3766Ptfbe1lEPPWnRDl+OzSSrSrX1lkyM/Jlmh5OwNvA== + +"@next/swc-linux-x64-gnu@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.2.tgz#8216b2ae1f21f0112958735c39dd861088108f37" + integrity sha512-YcDHTJjn/8RqvyJVB6pvEKXihDcdrOwga3GfMv/QtVeLphTouY4BIcEUfrG5+26Nf37MP1ywN3RRl1TxpurAsQ== + +"@next/swc-win32-x64-msvc@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.2.tgz#e15824405df137129918205e43cb5e9339589745" + integrity sha512-e/pIKVdB+tGQYa1cW3sAeHm8gzEri/HYLZHT4WZojrUxgWXqx8pk7S7Xs47uBcFTqBDRvK3EcQpPLf3XdVsDdg== + +"@node-rs/helper@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@node-rs/helper/-/helper-1.2.1.tgz#e079b05f21ff4329d82c4e1f71c0290e4ecdc70c" + integrity sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg== + dependencies: + "@napi-rs/triples" "^1.0.3" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@rushstack/eslint-patch@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz#023d72a5c4531b4ce204528971700a78a85a0c50" + integrity sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/node@*": + version "16.7.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.9.tgz#3bf27710839e62a470ddf6bd8dd321f1737ce5b4" + integrity sha512-KktxVzS4FPDFVHUUOWyZMvRo//8vqOLITtLMhFSW9IdLsYT/sPyXj3wXtaTcR7A7olCe7R2Xy7R+q5pg2bU46g== + +"@typescript-eslint/parser@^4.20.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d" + integrity sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg== + dependencies: + "@typescript-eslint/scope-manager" "4.30.0" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/typescript-estree" "4.30.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee" + integrity sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A== + dependencies: + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" + +"@typescript-eslint/types@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f" + integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw== + +"@typescript-eslint/typescript-estree@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac" + integrity sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg== + dependencies: + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" + 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.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e" + integrity sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw== + dependencies: + "@typescript-eslint/types" "4.30.0" + eslint-visitor-keys "^2.0.0" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +anser@1.4.9: + version "1.4.9" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" + integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +assert@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +ast-types@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" + integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axe-core@^4.0.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325" + integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@0.2.0, browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +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== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== + +chalk@2.4.2, chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +classnames@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@1.0.0, constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +convert-source-map@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +core-js-pure@^3.16.0: + version "3.16.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.16.4.tgz#8b23122628d88c560f209812b9b2d9ebbce5e29c" + integrity sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@3.12.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css.escape@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +cssnano-preset-simple@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz#e95d0012699ca2c741306e9a3b8eeb495a348dbe" + integrity sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w== + dependencies: + caniuse-lite "^1.0.30001202" + +cssnano-simple@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-3.0.0.tgz#a4b8ccdef4c7084af97e19bc5b93b4ecf211e90f" + integrity sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg== + dependencies: + cssnano-preset-simple "^3.0.0" + +damerau-levenshtein@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + +data-uri-to-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + +debug@2, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domain-browser@4.19.0: + version "4.19.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1" + integrity sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +electron-to-chromium@^1.3.723: + version "1.3.825" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.825.tgz#5d361eeaaf591bb2ce06cfeff86354b429d662b8" + integrity sha512-BO3FfWVeH8GQ0DBbi4HCL09OPgvN+0goqWlgKOCmCXcnrlgL5GA69nb7ZyjpWgpFUacBftg8BrXU2WLOSuHAxQ== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encoding@0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + 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.5: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-next@11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-11.1.2.tgz#73c918f2fa6120d5f65080bf3fcf6b154905707e" + integrity sha512-dFutecxX2Z5/QVlLwdtKt+gIfmNMP8Qx6/qZh3LM/DFVdGJEAnUKrr4VwGmACB2kx/PQ5bx3R+QxnEg4fDPiTg== + dependencies: + "@next/eslint-plugin-next" "11.1.2" + "@rushstack/eslint-patch" "^1.0.6" + "@typescript-eslint/parser" "^4.20.0" + eslint-import-resolver-node "^0.3.4" + eslint-import-resolver-typescript "^2.4.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jsx-a11y "^6.4.1" + eslint-plugin-react "^7.23.1" + eslint-plugin-react-hooks "^4.2.0" + +eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + 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.22.1: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== + 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.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" + has "^1.0.3" + is-core-module "^2.6.0" + minimatch "^3.0.4" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.11.0" + +eslint-plugin-jsx-a11y@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +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" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.23.1: + version "7.25.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" + integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + estraverse "^5.2.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.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.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== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "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-glob@^3.1.1: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +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" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.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" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +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" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-orientation@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-orientation/-/get-orientation-1.1.2.tgz#20507928951814f8a91ded0a0e67b29dfab98947" + integrity sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ== + dependencies: + stream-parser "^0.3.1" + +glob-parent@^5.1.2, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.7, glob@^7.1.3, glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.6.0, globals@^13.9.0: + 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.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graceful-fs@^4.1.2: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "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@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +https-browserify@1.0.0, https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +image-size@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.0.tgz#58b31fe4743b1cec0a0ac26f5c914d3c5b2f0750" + integrity sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw== + dependencies: + queue "6.0.2" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.0.4: + 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.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + 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" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + 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.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.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + 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-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + 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" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-regex@^1.1.3: + 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-tostringtag "^1.0.0" + +is-string@^1.0.5, is-string@^1.0.6: + 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" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +jest-worker@27.0.0-next.5: + version "27.0.0-next.5" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.0-next.5.tgz#5985ee29b12a4e191f4aae4bb73b97971d86ec28" + integrity sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.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" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +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.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.1.23: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +native-url@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" + integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== + dependencies: + querystring "^0.2.0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +next@11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/next/-/next-11.1.2.tgz#527475787a9a362f1bc916962b0c0655cc05bc91" + integrity sha512-azEYL0L+wFjv8lstLru3bgvrzPvK0P7/bz6B/4EJ9sYkXeW8r5Bjh78D/Ol7VOg0EIPz0CXoe72hzAlSAXo9hw== + dependencies: + "@babel/runtime" "7.15.3" + "@hapi/accept" "5.0.2" + "@next/env" "11.1.2" + "@next/polyfill-module" "11.1.2" + "@next/react-dev-overlay" "11.1.2" + "@next/react-refresh-utils" "11.1.2" + "@node-rs/helper" "1.2.1" + assert "2.0.0" + ast-types "0.13.2" + browserify-zlib "0.2.0" + browserslist "4.16.6" + buffer "5.6.0" + caniuse-lite "^1.0.30001228" + chalk "2.4.2" + chokidar "3.5.1" + constants-browserify "1.0.0" + crypto-browserify "3.12.0" + cssnano-simple "3.0.0" + domain-browser "4.19.0" + encoding "0.1.13" + etag "1.8.1" + find-cache-dir "3.3.1" + get-orientation "1.1.2" + https-browserify "1.0.0" + image-size "1.0.0" + jest-worker "27.0.0-next.5" + native-url "0.3.4" + node-fetch "2.6.1" + node-html-parser "1.4.9" + node-libs-browser "^2.2.1" + os-browserify "0.3.0" + p-limit "3.1.0" + path-browserify "1.0.1" + pnp-webpack-plugin "1.6.4" + postcss "8.2.15" + process "0.11.10" + querystring-es3 "0.2.1" + raw-body "2.4.1" + react-is "17.0.2" + react-refresh "0.8.3" + stream-browserify "3.0.0" + stream-http "3.1.1" + string_decoder "1.3.0" + styled-jsx "4.0.1" + timers-browserify "2.0.12" + tty-browserify "0.0.1" + use-subscription "1.5.1" + util "0.12.4" + vm-browserify "1.1.2" + watchpack "2.1.1" + optionalDependencies: + "@next/swc-darwin-arm64" "11.1.2" + "@next/swc-darwin-x64" "11.1.2" + "@next/swc-linux-x64-gnu" "11.1.2" + "@next/swc-win32-x64-msvc" "11.1.2" + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-html-parser@1.4.9: + version "1.4.9" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" + integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== + dependencies: + he "1.2.0" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.71: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-browserify@0.3.0, os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +p-limit@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.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== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-browserify@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +platform@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" + integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +postcss@8.2.15: + version "8.2.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" + integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map "^0.6.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@0.11.10, process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +querystring-es3@0.2.1, querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +raw-body@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-dom@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-is@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-refresh@0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.10.0, resolve@^1.17.0, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +source-map@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + 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" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stacktrace-parser@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" + integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-parser@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= + dependencies: + debug "2" + +string-hash@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +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== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@1.3.0, string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "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== + +styled-jsx@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-4.0.1.tgz#ae3f716eacc0792f7050389de88add6d5245b9e9" + integrity sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ== + dependencies: + "@babel/plugin-syntax-jsx" "7.14.5" + "@babel/types" "7.15.0" + convert-source-map "1.7.0" + loader-utils "1.2.3" + source-map "0.7.3" + string-hash "1.1.3" + stylis "3.5.4" + stylis-rule-sheet "0.0.10" + +stylis-rule-sheet@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" + integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw== + +stylis@3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" + integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +timers-browserify@2.0.12, timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "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-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-subscription@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" + integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== + dependencies: + object-assign "^4.1.1" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@0.12.4, util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vm-browserify@1.1.2, vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +watchpack@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" + integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.7" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.0, xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/prebuilt-ui/chat-overlay/README.md b/prebuilt/chat-overlay/README.md similarity index 95% rename from prebuilt-ui/chat-overlay/README.md rename to prebuilt/chat-overlay/README.md index 84b83e8..bca514c 100644 --- a/prebuilt-ui/chat-overlay/README.md +++ b/prebuilt/chat-overlay/README.md @@ -10,7 +10,7 @@ ## Getting started -- Clone this repository and navigate to this folder (`git clone git@github.com:daily-demos/examples.git && cd prebuilt-ui/chat-overlay`) +- Clone this repository and navigate to this folder (`git clone git@github.com:daily-demos/examples.git && cd prebuilt/chat-overlay`) - Set `ROOM_URL` on the first line of `main.js` to a Daily room you have created. Sign up and create a room from the [Daily dashboard](https://dashboard.daily.co/signup), if you haven't already! - Run a server from this repo's directory. You can use something like `python -m SimpleHTTPServer` run on the command line in the repo's directory or use VSCode's Live Server extension. See [How do you set up a local testing server?](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server) for more info. - Register for a Daily.co account and create a Room [in the dashboard](https://dashboard.daily.co/rooms), and use that room URL on this page. You can join that room directly using other browser tabs or another device. diff --git a/prebuilt-ui/chat-overlay/image.jpg b/prebuilt/chat-overlay/image.jpg similarity index 100% rename from prebuilt-ui/chat-overlay/image.jpg rename to prebuilt/chat-overlay/image.jpg diff --git a/prebuilt-ui/chat-overlay/index.html b/prebuilt/chat-overlay/index.html similarity index 100% rename from prebuilt-ui/chat-overlay/index.html rename to prebuilt/chat-overlay/index.html diff --git a/prebuilt-ui/chat-overlay/main.css b/prebuilt/chat-overlay/main.css similarity index 100% rename from prebuilt-ui/chat-overlay/main.css rename to prebuilt/chat-overlay/main.css diff --git a/prebuilt-ui/chat-overlay/main.js b/prebuilt/chat-overlay/main.js similarity index 100% rename from prebuilt-ui/chat-overlay/main.js rename to prebuilt/chat-overlay/main.js diff --git a/prebuilt-ui/ios-webview/.gitignore b/prebuilt/ios-webview/.gitignore similarity index 100% rename from prebuilt-ui/ios-webview/.gitignore rename to prebuilt/ios-webview/.gitignore diff --git a/prebuilt-ui/ios-webview/README.md b/prebuilt/ios-webview/README.md similarity index 100% rename from prebuilt-ui/ios-webview/README.md rename to prebuilt/ios-webview/README.md diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.pbxproj b/prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.pbxproj similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.pbxproj rename to prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.pbxproj diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to prebuilt/ios-webview/WebViewPrebuilt.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/AppDelegate.swift b/prebuilt/ios-webview/WebViewPrebuilt/AppDelegate.swift similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/AppDelegate.swift rename to prebuilt/ios-webview/WebViewPrebuilt/AppDelegate.swift diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/AccentColor.colorset/Contents.json b/prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/AccentColor.colorset/Contents.json rename to prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/AppIcon.appiconset/Contents.json b/prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/AppIcon.appiconset/Contents.json rename to prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/Contents.json b/prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/Contents.json similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Assets.xcassets/Contents.json rename to prebuilt/ios-webview/WebViewPrebuilt/Assets.xcassets/Contents.json diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Base.lproj/LaunchScreen.storyboard b/prebuilt/ios-webview/WebViewPrebuilt/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Base.lproj/LaunchScreen.storyboard rename to prebuilt/ios-webview/WebViewPrebuilt/Base.lproj/LaunchScreen.storyboard diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Base.lproj/Main.storyboard b/prebuilt/ios-webview/WebViewPrebuilt/Base.lproj/Main.storyboard similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Base.lproj/Main.storyboard rename to prebuilt/ios-webview/WebViewPrebuilt/Base.lproj/Main.storyboard diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/Info.plist b/prebuilt/ios-webview/WebViewPrebuilt/Info.plist similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/Info.plist rename to prebuilt/ios-webview/WebViewPrebuilt/Info.plist diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/SceneDelegate.swift b/prebuilt/ios-webview/WebViewPrebuilt/SceneDelegate.swift similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/SceneDelegate.swift rename to prebuilt/ios-webview/WebViewPrebuilt/SceneDelegate.swift diff --git a/prebuilt-ui/ios-webview/WebViewPrebuilt/ViewController.swift b/prebuilt/ios-webview/WebViewPrebuilt/ViewController.swift similarity index 100% rename from prebuilt-ui/ios-webview/WebViewPrebuilt/ViewController.swift rename to prebuilt/ios-webview/WebViewPrebuilt/ViewController.swift diff --git a/prebuilt-ui/ios-webview/image.png b/prebuilt/ios-webview/image.png similarity index 100% rename from prebuilt-ui/ios-webview/image.png rename to prebuilt/ios-webview/image.png diff --git a/yarn.lock b/yarn.lock index 073555d..084aa3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,6 +46,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== +"@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + "@babel/helper-split-export-declaration@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" @@ -58,6 +63,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@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== + "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" @@ -82,6 +92,13 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== +"@babel/plugin-syntax-jsx@7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/runtime-corejs3@^7.10.2": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz#9baf45f03d4d013f021760b992d6349a9d27deaf" @@ -90,10 +107,10 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== +"@babel/runtime@7.15.3": + 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" @@ -105,9 +122,9 @@ regenerator-runtime "^0.13.4" "@babel/runtime@^7.12.5": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: regenerator-runtime "^0.13.4" @@ -134,13 +151,12 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@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: - esutils "^2.0.2" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" "@babel/types@^7.12.13": @@ -160,10 +176,10 @@ "@babel/helper-validator-identifier" "^7.12.11" to-fast-properties "^2.0.0" -"@daily-co/daily-js@^0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@daily-co/daily-js/-/daily-js-0.18.0.tgz#b8341c2ac12b6e27fec2ab187be6cca699e60dce" - integrity sha512-MXY6mpC0bJ1RCbVLlNioOfoNFhMX8lwoI/G9t3d/CAQqO9brxnp73t2Ltyaf2SXMIR+S88flgtfMcRtEBnFsjQ== +"@daily-co/daily-js@^0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@daily-co/daily-js/-/daily-js-0.19.0.tgz#86ff62156c7ec25a1c49df5ca8edb3b7c078fb45" + integrity sha512-0Ixg80NUeHQX6Z044ZhKIYd0ppo5kK8SmEWbrmsjWAB01zaYQTshA+dY4HgkJfc6pG59LzZ8maziwpNEPLyliA== dependencies: "@babel/runtime" "^7.12.5" bowser "^2.8.1" @@ -186,6 +202,21 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@hapi/accept@5.0.2": version "5.0.2" resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" @@ -206,25 +237,51 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa" integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== -"@next/env@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@next/env/-/env-11.0.0.tgz#bdd306a45e88ba3e4e7a36aa91806f6486bb61d0" - integrity sha512-VKpmDvTYeCpEQjREg3J4pCmVs/QjEzoLmkM8shGFK6e9AmFd0G9QXOL8HGA8qKhy/XmNb7dHeMqrcMiBua4OgA== +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@napi-rs/triples@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c" + integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA== + +"@next/env@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/env/-/env-11.1.2.tgz#27996efbbc54c5f949f5e8c0a156e3aa48369b99" + integrity sha512-+fteyVdQ7C/OoulfcF6vd1Yk0FEli4453gr8kSFbU8sKseNSizYq6df5MKz/AjwLptsxrUeIkgBdAzbziyJ3mA== "@next/eslint-plugin-next@11.0.1": version "11.0.1" resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-11.0.1.tgz#5dd3264a40fadcf28eba00d914d69103422bb7e6" integrity sha512-UzdX3y6XSrj9YuASUb/p4sRvfjP2klj2YgIOfMwrWoLTTPJQMh00hREB9Ftr7m7RIxjVSAaaLXIRLdxvq948GA== -"@next/polyfill-module@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-11.0.0.tgz#cb2f46b323bbe7f8a337ccd80fb82314d4039403" - integrity sha512-gydtFzRqsT549U8+sY8382I/f4HFcelD8gdUGnAofQJa/jEU1jkxmjCHC8tmEiyeMLidl7iDZgchfSCpmMzzUg== +"@next/eslint-plugin-next@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-11.1.2.tgz#f26cf90bcb6cd2e4645e2ba253bbc9aaaa43a170" + integrity sha512-cN+ojHRsufr9Yz0rtvjv8WI5En0RPZRJnt0y16Ha7DD+0n473evz8i1ETEJHmOLeR7iPJR0zxRrxeTN/bJMOjg== + dependencies: + glob "7.1.7" -"@next/react-dev-overlay@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-11.0.0.tgz#6befb4d00d952551db1b3909023074eb5778ac5d" - integrity sha512-q+Wp+eStEMThe77zxdeJ/nbuODkHR6P+/dfUqYXZSqbLf6x5c5xwLBauwwVbkCYFZpAlDuL8Jk8QSAH1OsqC2w== +"@next/polyfill-module@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-11.1.2.tgz#1fe92c364fdc81add775a16c678f5057c6aace98" + integrity sha512-xZmixqADM3xxtqBV0TpAwSFzWJP0MOQzRfzItHXf1LdQHWb0yofHHC+7eOrPFic8+ZGz5y7BdPkkgR1S25OymA== + +"@next/react-dev-overlay@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-11.1.2.tgz#73795dc5454b7af168bac93df7099965ebb603be" + integrity sha512-rDF/mGY2NC69mMg2vDqzVpCOlWqnwPUXB2zkARhvknUHyS6QJphPYv9ozoPJuoT/QBs49JJd9KWaAzVBvq920A== dependencies: "@babel/code-frame" "7.12.11" anser "1.4.9" @@ -238,10 +295,37 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-11.0.0.tgz#cb671723c50b904eaa44b4b45c0845476ecd8825" - integrity sha512-hi5eY+KBn4QGtUv7VL2OptdM33fI2hxhd7+omOFmAK+S0hDWhg1uqHqqGJk0W1IfqlWEzzL10WvTJDPRAtDugQ== +"@next/react-refresh-utils@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-11.1.2.tgz#44ea40d8e773e4b77bad85e24f6ac041d5e4b4a5" + integrity sha512-hsoJmPfhVqjZ8w4IFzoo8SyECVnN+8WMnImTbTKrRUHOVJcYMmKLL7xf7T0ft00tWwAl/3f3Q3poWIN2Ueql/Q== + +"@next/swc-darwin-arm64@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.2.tgz#93226c38db488c4b62b30a53b530e87c969b8251" + integrity sha512-hZuwOlGOwBZADA8EyDYyjx3+4JGIGjSHDHWrmpI7g5rFmQNltjlbaefAbiU5Kk7j3BUSDwt30quJRFv3nyJQ0w== + +"@next/swc-darwin-x64@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.2.tgz#792003989f560c00677b5daeff360b35b510db83" + integrity sha512-PGOp0E1GisU+EJJlsmJVGE+aPYD0Uh7zqgsrpD3F/Y3766Ptfbe1lEPPWnRDl+OzSSrSrX1lkyM/Jlmh5OwNvA== + +"@next/swc-linux-x64-gnu@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.2.tgz#8216b2ae1f21f0112958735c39dd861088108f37" + integrity sha512-YcDHTJjn/8RqvyJVB6pvEKXihDcdrOwga3GfMv/QtVeLphTouY4BIcEUfrG5+26Nf37MP1ywN3RRl1TxpurAsQ== + +"@next/swc-win32-x64-msvc@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.2.tgz#e15824405df137129918205e43cb5e9339589745" + integrity sha512-e/pIKVdB+tGQYa1cW3sAeHm8gzEri/HYLZHT4WZojrUxgWXqx8pk7S7Xs47uBcFTqBDRvK3EcQpPLf3XdVsDdg== + +"@node-rs/helper@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@node-rs/helper/-/helper-1.2.1.tgz#e079b05f21ff4329d82c4e1f71c0290e4ecdc70c" + integrity sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg== + dependencies: + "@napi-rs/triples" "^1.0.3" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -373,6 +457,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -544,11 +633,6 @@ babel-plugin-module-resolver@^4.1.0: reselect "^4.0.0" resolve "^1.13.1" -babel-plugin-syntax-jsx@6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -794,6 +878,11 @@ classnames@^2.3.1: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== +clipboard-polyfill@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/clipboard-polyfill/-/clipboard-polyfill-3.0.3.tgz#159ea0768e20edc7ffda404bd13c54c73de4ff40" + integrity sha512-hts0o01ZkwjA1qHA5gFePzAj/780W7v+eyN3GdaCRyDnapzcPsKRV5aodv77gcr40NDIcyNjNmc+HvfKV+jD0g== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -838,11 +927,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -confusing-browser-globals@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" - integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -961,19 +1045,19 @@ css.escape@1.5.1: resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= -cssnano-preset-simple@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz#b55e72cb970713f425560a0e141b0335249e2f96" - integrity sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg== +cssnano-preset-simple@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz#e95d0012699ca2c741306e9a3b8eeb495a348dbe" + integrity sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w== dependencies: caniuse-lite "^1.0.30001202" -cssnano-simple@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-2.0.0.tgz#930d9dcd8ba105c5a62ce719cb00854da58b5c05" - integrity sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w== +cssnano-simple@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-3.0.0.tgz#a4b8ccdef4c7084af97e19bc5b93b4ecf211e90f" + integrity sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg== dependencies: - cssnano-preset-simple "^2.0.0" + cssnano-preset-simple "^3.0.0" csso@^4.2.0: version "4.2.0" @@ -1160,9 +1244,9 @@ encoding@0.1.13: iconv-lite "^0.6.2" enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -1254,23 +1338,25 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-config-airbnb-base@^14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.2" +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-airbnb@^18.2.1: - version "18.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" - integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== +eslint-config-next@11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-11.1.2.tgz#73c918f2fa6120d5f65080bf3fcf6b154905707e" + integrity sha512-dFutecxX2Z5/QVlLwdtKt+gIfmNMP8Qx6/qZh3LM/DFVdGJEAnUKrr4VwGmACB2kx/PQ5bx3R+QxnEg4fDPiTg== dependencies: - eslint-config-airbnb-base "^14.2.1" - object.assign "^4.1.2" - object.entries "^1.1.2" + "@next/eslint-plugin-next" "11.1.2" + "@rushstack/eslint-patch" "^1.0.6" + "@typescript-eslint/parser" "^4.20.0" + eslint-import-resolver-node "^0.3.4" + eslint-import-resolver-typescript "^2.4.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jsx-a11y "^6.4.1" + eslint-plugin-react "^7.23.1" + eslint-plugin-react-hooks "^4.2.0" eslint-config-next@^11.0.1: version "11.0.1" @@ -1385,24 +1471,6 @@ eslint-plugin-react@^7.23.1: resolve "^2.0.0-next.3" string.prototype.matchall "^4.0.5" -eslint-plugin-react@^7.23.2: - version "7.23.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" - integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== - dependencies: - array-includes "^3.1.3" - array.prototype.flatmap "^1.2.4" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.0.4" - object.entries "^1.1.3" - object.fromentries "^2.0.4" - object.values "^1.1.3" - prop-types "^15.7.2" - resolve "^2.0.0-next.3" - string.prototype.matchall "^4.0.4" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -1428,6 +1496,52 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== +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== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + eslint@^7.25.0: version "7.25.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" @@ -1683,7 +1797,7 @@ get-orientation@1.1.2: dependencies: stream-parser "^0.3.1" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1695,6 +1809,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -1726,6 +1852,13 @@ globals@^13.6.0: dependencies: type-fest "^0.20.2" +globals@^13.9.0: + 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.3: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" @@ -1738,11 +1871,16 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -2189,6 +2327,11 @@ lodash.isplainobject@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= +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" @@ -2199,7 +2342,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2297,11 +2440,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanoid@^3.1.22: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== - nanoid@^3.1.23: version "3.1.23" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" @@ -2332,17 +2470,18 @@ next-transpile-modules@^8.0.0: enhanced-resolve "^5.7.0" escalade "^3.1.1" -next@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/next/-/next-11.0.0.tgz#866b833f192f5a94ddb3267d5cc0f4b0ce405ac7" - integrity sha512-1OA0ccCTwVtdLats/1v7ReiBVx+Akya0UVhHo9IBr8ZkpDI3/SGNcaruJBp5agy8ROF97VDKkZamoUXxRB9NUA== +next@11.1.2, next@^11.0.0, next@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/next/-/next-11.1.2.tgz#527475787a9a362f1bc916962b0c0655cc05bc91" + integrity sha512-azEYL0L+wFjv8lstLru3bgvrzPvK0P7/bz6B/4EJ9sYkXeW8r5Bjh78D/Ol7VOg0EIPz0CXoe72hzAlSAXo9hw== dependencies: - "@babel/runtime" "7.12.5" + "@babel/runtime" "7.15.3" "@hapi/accept" "5.0.2" - "@next/env" "11.0.0" - "@next/polyfill-module" "11.0.0" - "@next/react-dev-overlay" "11.0.0" - "@next/react-refresh-utils" "11.0.0" + "@next/env" "11.1.2" + "@next/polyfill-module" "11.1.2" + "@next/react-dev-overlay" "11.1.2" + "@next/react-refresh-utils" "11.1.2" + "@node-rs/helper" "1.2.1" assert "2.0.0" ast-types "0.13.2" browserify-zlib "0.2.0" @@ -2353,7 +2492,7 @@ next@^11.0.0: chokidar "3.5.1" constants-browserify "1.0.0" crypto-browserify "3.12.0" - cssnano-simple "2.0.0" + cssnano-simple "3.0.0" domain-browser "4.19.0" encoding "0.1.13" etag "1.8.1" @@ -2370,9 +2509,8 @@ next@^11.0.0: p-limit "3.1.0" path-browserify "1.0.1" pnp-webpack-plugin "1.6.4" - postcss "8.2.13" + postcss "8.2.15" process "0.11.10" - prop-types "15.7.2" querystring-es3 "0.2.1" raw-body "2.4.1" react-is "17.0.2" @@ -2380,13 +2518,18 @@ next@^11.0.0: stream-browserify "3.0.0" stream-http "3.1.1" string_decoder "1.3.0" - styled-jsx "3.3.2" + styled-jsx "4.0.1" timers-browserify "2.0.12" tty-browserify "0.0.1" use-subscription "1.5.1" - util "0.12.3" + util "0.12.4" vm-browserify "1.1.2" watchpack "2.1.1" + optionalDependencies: + "@next/swc-darwin-arm64" "11.1.2" + "@next/swc-darwin-x64" "11.1.2" + "@next/swc-linux-x64-gnu" "11.1.2" + "@next/swc-win32-x64-msvc" "11.1.2" no-scroll@^2.1.1: version "2.1.1" @@ -2499,16 +2642,6 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - object.entries@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" @@ -2528,7 +2661,7 @@ object.fromentries@^2.0.4: es-abstract "^1.18.0-next.2" has "^1.0.3" -object.values@^1.1.1, object.values@^1.1.3: +object.values@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -2764,13 +2897,13 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" -postcss@8.2.13: - version "8.2.13" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.13.tgz#dbe043e26e3c068e45113b1ed6375d2d37e2129f" - integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ== +postcss@8.2.15: + version "8.2.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" + integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== dependencies: colorette "^1.2.2" - nanoid "^3.1.22" + nanoid "^3.1.23" source-map "^0.6.1" prelude-ls@^1.2.1: @@ -2800,7 +2933,7 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prop-types@15.7.2, prop-types@^15.5.8, prop-types@^15.7.2: +prop-types@^15.5.8, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -2888,7 +3021,7 @@ raw-body@2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -react-dom@^17.0.2: +react-dom@17.0.2, react-dom@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -2919,7 +3052,7 @@ react-refresh@0.8.3: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== -react@^17.0.2: +react@17.0.2, react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -3280,18 +3413,14 @@ string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" - integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has-symbols "^1.0.1" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" - side-channel "^1.0.4" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" string.prototype.matchall@^4.0.5: version "4.0.5" @@ -3344,6 +3473,13 @@ strip-ansi@6.0.0, strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -3354,13 +3490,13 @@ 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== -styled-jsx@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018" - integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g== +styled-jsx@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-4.0.1.tgz#ae3f716eacc0792f7050389de88add6d5245b9e9" + integrity sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ== dependencies: - "@babel/types" "7.8.3" - babel-plugin-syntax-jsx "6.18.0" + "@babel/plugin-syntax-jsx" "7.14.5" + "@babel/types" "7.15.0" convert-source-map "1.7.0" loader-utils "1.2.3" source-map "0.7.3" @@ -3425,10 +3561,22 @@ table@^6.0.4: string-width "^4.2.0" strip-ansi "^6.0.0" +table@^6.0.9: + version "6.7.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0" + integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== text-table@^0.2.0: version "0.2.0" @@ -3586,10 +3734,10 @@ util@0.10.3: dependencies: inherits "2.0.1" -util@0.12.3, util@^0.12.0: - version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== +util@0.12.4: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" @@ -3605,6 +3753,18 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@^0.12.0: + version "0.12.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"