From 98448877aaee05865dcd80fb66abf754b13e6a64 Mon Sep 17 00:00:00 2001 From: Nirmalya Ghosh Date: Wed, 13 Jan 2021 14:57:09 +0530 Subject: [PATCH 1/8] feat: simplifies on-boarding process --- backend/.env.example | 6 + backend/Dockerfile | 2 +- backend/docker-compose.yml | 11 +- frontend/.env.example | 3 +- .../access-denied-indicator/index.tsx | 9 +- frontend/components/layout/container.tsx | 23 - frontend/components/layout/index.tsx | 17 +- frontend/components/loader/index.tsx | 2 +- frontend/components/navbar/index.tsx | 19 +- frontend/components/pages/error/index.tsx | 2 +- .../pages/feeds/add-new-feed-form.tsx | 2 +- frontend/components/pages/feeds/feed.tsx | 2 +- frontend/components/pages/feeds/index.tsx | 2 +- frontend/components/pages/index/index.tsx | 2 +- .../components/pages/my-account/index.tsx | 67 +- frontend/package.json | 13 +- frontend/pages/_app.tsx | 16 +- frontend/yarn.lock | 1220 +++++++++++------ license.md | 2 +- package.json | 7 +- readme.md | 169 +-- scripts/generate-keys.ts | 63 + 22 files changed, 974 insertions(+), 685 deletions(-) create mode 100644 backend/.env.example delete mode 100644 frontend/components/layout/container.tsx create mode 100644 scripts/generate-keys.ts diff --git a/backend/.env.example b/backend/.env.example new file mode 100644 index 00000000..7e59ae66 --- /dev/null +++ b/backend/.env.example @@ -0,0 +1,6 @@ +HASURA_GRAPHQL_ADMIN_SECRET=secret +PORT=8080 +DATABASE_URL=postgresql://user:password@db:5432/database +POSTGRES_USER=user +POSTGRES_PASSWORD=password +POSTGRES_DB=database diff --git a/backend/Dockerfile b/backend/Dockerfile index 0a1973ff..88ca2b56 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM hasura/graphql-engine:v1.3.1.cli-migrations-v2 +FROM hasura/graphql-engine:v1.3.3.cli-migrations-v2 # # Copy migrations directory COPY ./migrations /hasura-migrations diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 9a837f75..cfedb163 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -8,23 +8,18 @@ services: context: . depends_on: - db - environment: - DATABASE_URL: postgres://postgres:@db:5432/postgres - HASURA_GRAPHQL_JWT_SECRET: '{"type":"RS256", "key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0U3NR0eyMehHBlx6DK5s\nJ+Pys9dTWf558kpKVeQvL2oIZEY3LvS3/jdrIm/dU4WrIGPki1r/AWXQAyBZ2FKn\nZROcUWN0IqdmxrC5zTDymuscqhKXqxjSwrwOVWHc+zWWmXCQGmDdoCokXd9ZW66n\nA0BN66MdMC2+d5GrZdKUF305dpzTUdzDE12/XwOEUalCM0703eGu8zFwutLYc3+v\nf2CFOQ1z+rvDQD4N2aZABKTxZRtEkMHljnoyKlF9rljNzT/5N8YQE7qn4pBh6CMa\n1zcSilk9nhgl55n/Kjn2xMieWdIalaOEKw1LqqIjiT1ESkAKfPaIoSSnmTaYy78g\nbwIDAQAB\n-----END PUBLIC KEY-----\n"}' - HASURA_GRAPHQL_ADMIN_SECRET: secret - PORT: 8080 + env_file: ./.env ports: - "8080:8080" - restart: on-failure db: container_name: nextjs-hasura-boilerplate-db - image: postgres:11.3-alpine + image: postgres:latest ports: - "5432:5432" volumes: - db_data:/var/lib/postgresql/data - restart: unless-stopped + env_file: ./.env volumes: db_data: diff --git a/frontend/.env.example b/frontend/.env.example index 8c5f41e6..f9b245a7 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -1,7 +1,6 @@ NEXT_PUBLIC_API_URL=http://localhost:8080/v1/graphql NEXT_PUBLIC_WS_URL=ws://localhost:8080/v1/graphql -DATABASE_URL=postgres://postgres:@localhost:5432/postgres -AUTH_PRIVATE_KEY='{"type":"RS256", "key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0U3NR0eyMehHBlx6DK5sJ+Pys9dTWf558kpKVeQvL2oIZEY3\nLvS3/jdrIm/dU4WrIGPki1r/AWXQAyBZ2FKnZROcUWN0IqdmxrC5zTDymuscqhKX\nqxjSwrwOVWHc+zWWmXCQGmDdoCokXd9ZW66nA0BN66MdMC2+d5GrZdKUF305dpzT\nUdzDE12/XwOEUalCM0703eGu8zFwutLYc3+vf2CFOQ1z+rvDQD4N2aZABKTxZRtE\nkMHljnoyKlF9rljNzT/5N8YQE7qn4pBh6CMa1zcSilk9nhgl55n/Kjn2xMieWdIa\nlaOEKw1LqqIjiT1ESkAKfPaIoSSnmTaYy78gbwIDAQABAoIBAF+3t+AYLqraMdj7\n46j2/2lCupR6LZkjYntmdBZRky6YzBunbMchjR9KEsmd5Na0c20NodAFHkdyWy2C\n1vOx4PG9hShHVi4e5kaJPX9UGi60xNgWRpwtbv01aUysw5VyjVvAeXZGxDPh8d2o\nLcJa3fADsV7IqqmE0ez2hi67nZQbkbEUbKs7aGfCE6srCfjCfOadfNnto9+7qDjJ\nnd4rK18H1rBSLTqj4T7wd1K8THgo25vjEuVRbGsEVrNB/B1Dz0pdOqhqukzixfcS\nVL/7uYDXehLasmUQu2VtMFsLqDpAbQgvpoNnzeZuB0WARvygSi/n4t+pCi84hXXe\na1m/01kCgYEA6+i5FwJAPxe2oCc0iignHjA20itTalyUhgJrLa8tTs721GJ3ku0A\n/EJVgmoNOLCQnZMldWvEDGmf6QuaWitq8ZWK/0BmHrEjbDA7m1fPdf3hrNx6eH/i\nazxjAoWA/u0yZg6QvUC7hSOO6WEpFYGuc2+/mHlnm5RLdL3QNIlHyyUCgYEA4yEI\n2deZ9MgmxbnFc76u7VhT1lc1MHpuAcDR3hqKT9xH2fTBaTDpVqeFbQJR5Hu+ZqgT\nL3+zV5kzIz3RaNMGN1IaxDEEx+tDnL9aw8sqawauWZtp7W2EeFvtP8uhHiBWpqVl\nvus6Gpl6hpNg6X96vHRcW+mB13I/h5YWA25EEwMCgYA5YbkrvJNuBVGZsQ+Zj1y8\nfhPHmVxH4c8KranuSc7mfXcSgAT/ywBTW7s65prisCfs/C6/WgAs2MBZykW4Kxlv\nO+W8Yqi0THgGR9En3vsKgz+ScWqkxs6HMQAQS/LtjzqUEnToY8d5AgYwBD8fCRUq\n5QKgjt9Bu5eDBOyQ6td4tQKBgBtDrOdRfTaoDBdyHGSvgBoXn0C8iTL/j1MAjXDG\n6NF7VNiyC8GP0ILJazfRrnjp7cou5Nav0pxyVHQniIq3wihD39irNbK16BDZ25Bj\nQ/1C+Qzing2VNvCnwEwHKpkOMrigZB1N6VSmFdIvwNNmrRoQMcIKvr5ZBY1GE/Bn\nfR53AoGBAIXaWIoDW5d9XwFa8HdxkgMPyLlizckZKyXASYEGWD2VU8P1NwA/bZ1t\nymioQPRJymTBfUL6E44Ebwx25DezjYEun1yqouZ+WZBlsEYtssffzTs2IocZ6aCN\nYfzt3orUEI/rWbRSqYFEuOntzzf3a7r3MtDU41e7iXcNkRSxCAIV\n-----END RSA PRIVATE KEY-----\n"}' +DATABASE_URL=postgres://user:password@localhost:5432/database NEXTAUTH_URL=http://localhost:3000 GOOGLE_CLIENT_ID="" GOOGLE_CLIENT_SECRET="" diff --git a/frontend/components/access-denied-indicator/index.tsx b/frontend/components/access-denied-indicator/index.tsx index 736dbd17..1382b004 100644 --- a/frontend/components/access-denied-indicator/index.tsx +++ b/frontend/components/access-denied-indicator/index.tsx @@ -1,7 +1,8 @@ -import React, { FC } from "react"; -import { Icon, Flex, Button, Stack, Box } from "@chakra-ui/core"; -import Link from "next/link"; +import { WarningTwoIcon } from "@chakra-ui/icons"; +import { Box, Button, Flex, Stack } from "@chakra-ui/react"; import { signIn } from "next-auth/client"; +import Link from "next/link"; +import React, { FC } from "react"; interface IProps { message?: string; @@ -11,7 +12,7 @@ const AccessDeniedIndicator: FC = ({ message = "You need to Sign In to view this content!", }) => { const iconNode = () => { - return ; + return ; }; const signInButtonNode = () => { diff --git a/frontend/components/layout/container.tsx b/frontend/components/layout/container.tsx deleted file mode 100644 index 8c97f8de..00000000 --- a/frontend/components/layout/container.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { FC } from "react"; -import { Box, useColorMode } from "@chakra-ui/core"; - -const Container: FC = ({ children }) => { - const { colorMode } = useColorMode(); - const bgColor = { light: "gray.100", dark: "gray.900" }; - const heightOfNavbar: string = "74px"; - - return ( - - - {children} - - - ); -}; - -export default Container; diff --git a/frontend/components/layout/index.tsx b/frontend/components/layout/index.tsx index 8eba4acb..d3862e3d 100644 --- a/frontend/components/layout/index.tsx +++ b/frontend/components/layout/index.tsx @@ -1,16 +1,15 @@ -import React, { FC } from "react"; -import { ColorModeProvider, LightMode } from "@chakra-ui/core"; -import Container from "components/layout/container"; +import { Box, ChakraProvider, theme, VStack } from "@chakra-ui/react"; import Navbar from "components/navbar"; +import React, { FC } from "react"; const Layout: FC = ({ children }) => { return ( - - - - {children} - - + + + + {children} + + ); }; diff --git a/frontend/components/loader/index.tsx b/frontend/components/loader/index.tsx index 3361e9b2..5a38aa24 100644 --- a/frontend/components/loader/index.tsx +++ b/frontend/components/loader/index.tsx @@ -1,5 +1,5 @@ import React, { FC } from "react"; -import { Box, CircularProgress } from "@chakra-ui/core"; +import { Box, CircularProgress } from "@chakra-ui/react"; interface Props { size?: string; diff --git a/frontend/components/navbar/index.tsx b/frontend/components/navbar/index.tsx index 4a822ba8..e7335fef 100644 --- a/frontend/components/navbar/index.tsx +++ b/frontend/components/navbar/index.tsx @@ -1,15 +1,16 @@ -import React from "react"; -import { NextComponentType } from "next"; -import Link from "next/link"; -import { signIn, signOut, useSession } from "next-auth/client"; +import { MoonIcon, SunIcon } from "@chakra-ui/icons"; import { Box, - Stack, - Link as _Link, Button, IconButton, + Link as _Link, + Stack, useColorMode, -} from "@chakra-ui/core"; +} from "@chakra-ui/react"; +import { NextComponentType } from "next"; +import { signIn, signOut, useSession } from "next-auth/client"; +import Link from "next/link"; +import React from "react"; const Navbar: NextComponentType = () => { const [session] = useSession(); @@ -18,8 +19,6 @@ const Navbar: NextComponentType = () => { const color = { light: "gray.800", dark: "gray.100" }; const handleToggleTheme = () => { - console.log("hello"); - toggleColorMode(); }; @@ -91,7 +90,7 @@ const Navbar: NextComponentType = () => { : } onClick={handleToggleTheme} /> ); diff --git a/frontend/components/pages/error/index.tsx b/frontend/components/pages/error/index.tsx index ab55ca92..b9484dc6 100644 --- a/frontend/components/pages/error/index.tsx +++ b/frontend/components/pages/error/index.tsx @@ -1,5 +1,5 @@ import React, { FC } from "react"; -import { Box, Heading, Stack, Text, Button, Flex } from "@chakra-ui/core"; +import { Box, Heading, Stack, Text, Button, Flex } from "@chakra-ui/react"; import Link from "next/link"; interface IProps { diff --git a/frontend/components/pages/feeds/add-new-feed-form.tsx b/frontend/components/pages/feeds/add-new-feed-form.tsx index b44467ac..0eb68b86 100644 --- a/frontend/components/pages/feeds/add-new-feed-form.tsx +++ b/frontend/components/pages/feeds/add-new-feed-form.tsx @@ -13,7 +13,7 @@ import { CloseButton, Textarea, useColorMode, -} from "@chakra-ui/core"; +} from "@chakra-ui/react"; import { useSession } from "next-auth/client"; import AccessDeniedIndicator from "components/access-denied-indicator"; diff --git a/frontend/components/pages/feeds/feed.tsx b/frontend/components/pages/feeds/feed.tsx index 41c2e077..e34ecea5 100644 --- a/frontend/components/pages/feeds/feed.tsx +++ b/frontend/components/pages/feeds/feed.tsx @@ -1,5 +1,5 @@ import React, { FC } from "react"; -import { Box, Stack, Text, Avatar, useColorMode } from "@chakra-ui/core"; +import { Box, Stack, Text, Avatar, useColorMode } from "@chakra-ui/react"; import IFeed from "types/feed"; import timeFromNow from "lib/time-from-now"; diff --git a/frontend/components/pages/feeds/index.tsx b/frontend/components/pages/feeds/index.tsx index bff504b4..74cefd8e 100644 --- a/frontend/components/pages/feeds/index.tsx +++ b/frontend/components/pages/feeds/index.tsx @@ -1,7 +1,7 @@ import React from "react"; import gql from "graphql-tag"; import { useSubscription } from "urql"; -import { Box, Stack } from "@chakra-ui/core"; +import { Box, Stack } from "@chakra-ui/react"; import IFeed from "types/feed"; import Feed from "components/pages/feeds/feed"; import AddNewFeedForm from "components/pages/feeds/add-new-feed-form"; diff --git a/frontend/components/pages/index/index.tsx b/frontend/components/pages/index/index.tsx index c9134786..602b5f2e 100644 --- a/frontend/components/pages/index/index.tsx +++ b/frontend/components/pages/index/index.tsx @@ -7,7 +7,7 @@ import { Button, Flex, useColorMode, -} from "@chakra-ui/core"; +} from "@chakra-ui/react"; import { signIn, signOut, useSession } from "next-auth/client"; import Link from "next/link"; diff --git a/frontend/components/pages/my-account/index.tsx b/frontend/components/pages/my-account/index.tsx index 194aeda0..e8bf06dc 100644 --- a/frontend/components/pages/my-account/index.tsx +++ b/frontend/components/pages/my-account/index.tsx @@ -15,7 +15,7 @@ import { AlertIcon, AlertTitle, CloseButton, -} from "@chakra-ui/core"; +} from "@chakra-ui/react"; import Loader from "components/loader"; import { useSession } from "next-auth/client"; @@ -98,42 +98,39 @@ const MyAccountPageComponent = () => { }; return ( - + My Account {errorNode()} - - - - - Name - ) => - setName(e.currentTarget.value) - } - isDisabled={updateUserFetching} - /> - - - - - - - + + + + Name + ) => + setName(e.currentTarget.value) + } + isDisabled={updateUserFetching} + /> + + + + + + ); }; diff --git a/frontend/package.json b/frontend/package.json index 5ef72e94..0ae4e384 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,11 +12,12 @@ "type-check": "tsc" }, "dependencies": { - "@chakra-ui/core": "^0.8.0", - "@emotion/core": "^10.1.1", - "@emotion/styled": "^10.0.27", + "@chakra-ui/icons": "^1.0.3", + "@chakra-ui/react": "^1.1.4", + "@emotion/react": "^11.1.4", + "@emotion/styled": "^11.0.0", "dayjs": "^1.10.3", - "emotion-theming": "^10.0.27", + "framer-motion": "^3.2.1", "graphql": "^15.4.0", "graphql-tag": "^2.11.0", "isomorphic-unfetch": "^3.1.0", @@ -26,8 +27,8 @@ "next-auth": "^3.1.0", "next-urql": "^2.1.1", "pg": "^8.5.1", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", "react-is": "^17.0.1", "subscriptions-transport-ws": "^0.9.18", "urql": "^1.11.5", diff --git a/frontend/pages/_app.tsx b/frontend/pages/_app.tsx index 5875cd55..16c37df8 100644 --- a/frontend/pages/_app.tsx +++ b/frontend/pages/_app.tsx @@ -1,9 +1,8 @@ -import React from "react"; +import Layout from "components/layout"; +import { Provider as NextAuthProvider } from "next-auth/client"; import { AppProps } from "next/app"; import Head from "next/head"; -import { Provider as NextAuthProvider } from "next-auth/client"; -import { ThemeProvider, CSSReset, theme } from "@chakra-ui/core"; -import Layout from "components/layout"; +import React from "react"; const App = ({ Component, pageProps }: AppProps) => { const { session } = pageProps; @@ -14,12 +13,9 @@ const App = ({ Component, pageProps }: AppProps) => { - - - - - - + + + ); diff --git a/frontend/yarn.lock b/frontend/yarn.lock index e4acaf04..82cf1ae1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -67,18 +67,28 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/helper-module-imports@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== +"@babel/helper-module-imports@^7.7.0": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.5" + +"@babel/helper-plugin-utils@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -88,7 +98,14 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/runtime@7.12.5", "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2": +"@babel/plugin-syntax-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/runtime@7.12.5", "@babel/runtime@^7.0.0", "@babel/runtime@^7.7.2": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== @@ -104,135 +121,627 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.10.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.12.5": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" to-fast-properties "^2.0.0" -"@chakra-ui/core@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@chakra-ui/core/-/core-0.8.0.tgz#a377286becd86008448ec8cf29ceb8fc301ac2dc" - integrity sha512-il1I1nEWOmWJSspnC+WyArLHbHvs82hvKTNDd24wr6spa/7v2jaXFZeWDNenY35ay1NHV7Ya2StcBwQRGHMWYA== +"@chakra-ui/accordion@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/accordion/-/accordion-1.0.4.tgz#aab45c838a9a41c6bd00559feeac41f172c08d4d" + integrity sha512-7LwIv2oQJ57ilIVWk7LNeehNqfZRTKuaUDupG7vYkh46YDj/ncBL2aKrxnL9b9YRE4xuPM50yQNFOXC48GXfHA== dependencies: - "@reach/auto-id" "0.10.2" - "@styled-system/css" "5.1.5" - "@styled-system/should-forward-prop" "5.1.5" - "@types/styled-system" "5.1.9" - aria-hidden "^1.1.1" - body-scroll-lock "^3.0.1" - color "3.1.2" + "@chakra-ui/descendant" "1.0.3" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/alert@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/alert/-/alert-1.0.4.tgz#94f38b7ad06115cdca05166c7338f306e36419fb" + integrity sha512-8troDT/T+hp9/Jxtpooi5B8DwsxZCw/OyhRIOhkGP4rNP4oMccM8PMEYszVLfBf4faGW9KawNwBPGtcMXZKvJQ== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/avatar@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/avatar/-/avatar-1.0.3.tgz#a736ee73b310ce86c1d4f11a811934efa40204f9" + integrity sha512-NtsthORuGzfhTrkxWNP5jLIeUQWbcpqSJPXto2LF5IvZE21/sa1GXwZb1beFVRIJ+D984gQZZ4Ah9cu9ltmM5A== + dependencies: + "@chakra-ui/image" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/breadcrumb@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/breadcrumb/-/breadcrumb-1.0.3.tgz#d592e9cbc2515da902f7668d265eceb80da4fbf8" + integrity sha512-KZBzBE89CyGndzbDgSx/h4YSRvFB4eZk3eGUUrUi0DVocQDP6GA5t6EbqtiY2y48xpfIycSGRBXlLnuL+NEEqg== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/button@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/button/-/button-1.0.4.tgz#f38cc0042bdc4afa0f430248c368c5c95f50c153" + integrity sha512-j9JIuuJ1SV9e3eXprNN2h15pwEYcuz1K0scO49xWAVHZ77BZX9TVe7GrF3MUYtWNT9DQVuNh0Fx+vQquscHlJA== + dependencies: + "@chakra-ui/spinner" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/checkbox@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/checkbox/-/checkbox-1.1.1.tgz#aa637946c6ddd706187d6decda94bd5a358e5f57" + integrity sha512-c9bj/liR11Jb6yCJxP5ZtkX5hPpl2t8nlhfxqIBTR+qcoe16OkN7Gg+9BH+JNTQL00IBjzvONeKKT7I6qyqUlw== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/clickable@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/clickable/-/clickable-1.0.3.tgz#fdeade4954b9b4cc71dee2eb965308dd0922e862" + integrity sha512-61TKhyu8x/q5tOO5YEMcPqcoE/gGYvhZUyRkHkGtJzn1v50JvBiMNWJV94/KLZ5QEvL/QwJqLH123A+Lj484ag== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/close-button@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/close-button/-/close-button-1.0.4.tgz#acf32a11c8a5ac30530bcd74c0f67d829a486c9b" + integrity sha512-IFCwPSGLyc6Y+co1w0phd3fiuKpNpEmRklKYyFeSVplJTQ8hoWw9qmeqzFkkSQHF371BXz5huubY9s4y4xqMmA== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/color-mode@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/color-mode/-/color-mode-1.0.3.tgz#9d984cbf038144c3270daa0fc1f2d5aff1bf514a" + integrity sha512-5SjvZP3z4FUWYQZM619gHgITbibu5SOfnuZDk/KkseL2WiRxj9qNmHrg/MKfdhROdgehha5Vb355bvIcfpbFxg== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/control-box@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/control-box/-/control-box-1.0.3.tgz#338782765b9ed584ebb99b6fdca5ded16d5ba9e8" + integrity sha512-ihhDS5DirjZqH7u621luufkq/j9FLXwdX70zJhXlEIqLPOTGRkETASN6l0A+lYvqz4fM1eIag1qeAFaPz72ejw== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/counter@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/counter/-/counter-1.0.3.tgz#4ebb2b0a450b820ed7fb08a267a55df8e926d47c" + integrity sha512-SEEyAV6W9jcohyvkRbwOXMuwjtV9zWpv06tskr0xyYrJvgJU2XB6mWLSq/enLh3+MuPit4/dH7KIgfXZpg5W0w== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/css-reset@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@chakra-ui/css-reset/-/css-reset-1.0.0.tgz#8395921b35ef27bee0579a4d730c5ab7f7b39734" + integrity sha512-UaPsImGHvCgFO3ayp6Ugafu2/3/EG8wlW/8Y9Ihfk1UFv8cpV+3BfWKmuZ7IcmxcBL9dkP6E8p3/M1T0FB92hg== + +"@chakra-ui/descendant@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/descendant/-/descendant-1.0.3.tgz#bfad8da185612425d8b1f94b4b05c4a472035947" + integrity sha512-Y+beAv+Foy1hfnCucUdIc0eF/A1cTMZZMOXF+hJpOJjL0UVTVhMOntRvhbVfWvJnBRi1KuX2CiwjyjIV80D/Gw== + dependencies: + "@chakra-ui/hooks" "1.1.0" + +"@chakra-ui/editable@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/editable/-/editable-1.0.3.tgz#7e9a99091530322d5d0fa0a86c2a7c65f817fb8a" + integrity sha512-DKmPvbEB7S8GZsJR3EVCxDwfPmD7/0aOxKTrFjcQtVNmFbj32y0rmFSC582vdLvUTrwCaTWC6MyosRBdu/rP1Q== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/focus-lock@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/focus-lock/-/focus-lock-1.0.3.tgz#22f1b8277bceaf1df43da1f5a0cc433368e475af" + integrity sha512-WxkQGAoqIutaDu10zl/22XGICRd5+cZpRzPeF9w8Hv031fHADDiEb5T7LreFvPCGu7bHy/LI0V/6RrMA1ACHnA== + dependencies: + "@chakra-ui/utils" "1.1.0" + react-focus-lock "2.4.1" + +"@chakra-ui/form-control@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/form-control/-/form-control-1.1.1.tgz#c20cb2e80023fcf1935640406046273412ada438" + integrity sha512-NMf2rABRzc+h1NZ4ZotuVJUuo8KETRqFpHwhu9MimGm2X2RGwCdC6jnbuaM9EQXdDQVwfZ88UA/PGzDJuj1GxQ== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/hooks@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@chakra-ui/hooks/-/hooks-1.1.0.tgz#18ad0125bdf244171e39995b0392ee06f886b497" + integrity sha512-DDCs4Q308j1bEMhP57SUYXpwsoaeY/dLvMuVGFYvBswQA/CaeQ4t8g5mQsTpot5ex9OKsd9PHyTqhoqpHVo0KQ== + dependencies: + "@chakra-ui/utils" "1.1.0" + compute-scroll-into-view "1.0.14" copy-to-clipboard "3.3.1" - exenv "^1.2.2" - popper.js "^1.15.0" - react-animate-height "2.0.21" - react-focus-lock "^2.2.1" - react-spring "^8.0.27" - styled-system "5.1.5" - toasted-notes "3.2.0" - use-dark-mode "2.3.1" - -"@emotion/cache@^10.0.27": - version "10.0.29" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" - integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== - dependencies: - "@emotion/sheet" "0.9.4" - "@emotion/stylis" "0.8.5" - "@emotion/utils" "0.11.3" - "@emotion/weak-memoize" "0.2.5" - -"@emotion/core@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.1.1.tgz#c956c1365f2f2481960064bcb8c4732e5fb612c3" - integrity sha512-ZMLG6qpXR8x031NXD8HJqugy/AZSkAuMxxqB46pmAR7ze47MhNJ56cdoX243QPZdGctrdfo+s08yZTiwaUcRKA== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/cache" "^10.0.27" - "@emotion/css" "^10.0.27" - "@emotion/serialize" "^0.11.15" - "@emotion/sheet" "0.9.4" - "@emotion/utils" "0.11.3" - -"@emotion/css@^10.0.27": - version "10.0.27" - resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c" - integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw== - dependencies: - "@emotion/serialize" "^0.11.15" - "@emotion/utils" "0.11.3" - babel-plugin-emotion "^10.0.27" - -"@emotion/hash@0.8.0": + +"@chakra-ui/icon@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-1.0.3.tgz#e186331c14dcbcd6cf18c3d20e03e0ca28ec223f" + integrity sha512-wiNbipXLtwlItmtEf136xlgNjtFZuVOZBw1kM01Nk81fhe3lz+IsrEZW/Iyw1z0yzjrFkENR56TP+P3GVBLVwg== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/icons@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/icons/-/icons-1.0.3.tgz#5281d1e914edbbc9c9cafd259549d170d4840533" + integrity sha512-YfBeG6TNSvBvzr/2RaVYMwYfMUtbS2nJ2YVygRELkAhQ8h0mUbTcNfw2YgUbY3H2BVfuRp9qCnbf6kp2evuh7A== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@types/react" "^17.0.0" + +"@chakra-ui/image@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.3.tgz#67cc85213a65f70e8fe5fa47f4c4a306e3054f13" + integrity sha512-HNdAomd5ibqsZyJJR5OuQOkmUDzajUOlr9KJXM7bZnRuO8N3SJttzbE1jtdjzwdzXkcUclUtjWKN1CIq2DKR8w== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/input@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/input/-/input-1.0.4.tgz#dbefc6fa8b7d6f22d3abad1b81b8b3b3b0dd4b47" + integrity sha512-T/zd3IqP39mZsVrJAN9RLo1iCXrqty024YosVFUGiixXniimfxClyYxL8thHv5/zEut/wcdpZkRf63qq1jS1ig== + dependencies: + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/layout@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/layout/-/layout-1.1.3.tgz#fda4ac35e5da98a38b5f14981322c5f1c8f0b850" + integrity sha512-6ndSC2YAtd2LPBwMqCZ9QEBI6IEDgTJ6RrBt6zm3stUxwUu5zoNWJcBV8bBxkk+WDGBPkXSrnBPg10MrIQVg9A== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/live-region@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/live-region/-/live-region-1.0.3.tgz#80f99783043606fbe71258e278805dbef62391ed" + integrity sha512-dYZm1o7JV1YGhgY90sLm8dSjWH/j5M14M4swXdSPx85Fc9gdG3QShzobJnCK21dl1CrERNksG8J1GsHQTqBFOw== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/media-query@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/media-query/-/media-query-1.0.4.tgz#689728e811559d6cac40bb5a739afd3e87b2dee1" + integrity sha512-ZhHcWubwaIgkUi6Tl5KeepOfZ83xXp0d5Sz4pXWyAP/9jfDmxk8s8qrMXMh+19EOBfm2AvfeCIj9+23/ZpXJUg== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/menu@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/menu/-/menu-1.0.4.tgz#61f6dff18e47b1475a4002d84e956518bfaf42d0" + integrity sha512-RDny2aSI2j6skrnIkpdX1sympvnVm9IcNHIoLs6rRaIczUAdLNvQJ/poOfs5nnIe4o9lzNQlNsKjzss6f/wG7g== + dependencies: + "@chakra-ui/clickable" "1.0.3" + "@chakra-ui/descendant" "1.0.3" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/popper" "1.0.3" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/modal@1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/modal/-/modal-1.4.3.tgz#824b869a6f39ca61270f10376c1d9e1975f32a61" + integrity sha512-UuqpdXgOsc0T9fefQmQSvviCWNu4kpI+zzGixg7tWsH1ixqqDoD5OaOVKWPFuXnBvMMmWu43i7+8vQGEQzABpg== + dependencies: + "@chakra-ui/close-button" "1.0.4" + "@chakra-ui/focus-lock" "1.0.3" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/portal" "1.0.4" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.4.0" + +"@chakra-ui/number-input@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/number-input/-/number-input-1.0.4.tgz#40dc758d09b00bd30fa529be2be467ec054230d9" + integrity sha512-/a+AiyHy0nntuHVln0Ik6xhI3ZmYzm/WrYV+QTIyN9gDm+gnPxGdXspTxSu4dEnQv69UmYXxKbSz5lWxt16Ytw== + dependencies: + "@chakra-ui/counter" "1.0.3" + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/pin-input@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/pin-input/-/pin-input-1.1.3.tgz#f482b2d39c861e8c66b0f932c8c7f3754ea4a70d" + integrity sha512-cEjq4huxkCDKQ7ZMBL93H/gt66qRpNrMIsDGO80RqRqmkmCRgrvm8oC9Qx2Xt5LpaZSvrCi4OX38YHwDfFMMGQ== + dependencies: + "@chakra-ui/descendant" "1.0.3" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/popover@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@chakra-ui/popover/-/popover-1.0.6.tgz#6c333c1ca9c6d7a122d384537f227802ac5794a6" + integrity sha512-MFj89kRn4L+WqEMOdNXbF+8LdUnS1MCfwQKSIH0T7m0rZ3/nVydFGJ9iPtqzGpt4eaJ97vWe8VYMFvbVnlHliA== + dependencies: + "@chakra-ui/close-button" "1.0.4" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/popper" "1.0.3" + "@chakra-ui/portal" "1.0.4" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/popper@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/popper/-/popper-1.0.3.tgz#3d902313370e5ea85840ec814eec23d059af3309" + integrity sha512-G1Q3rZFOKU3tjVnkEulLVfeQM9VtpwP4EH/KxRGKBcbCrFWD6VgeyXMvQngy5VZZemhniF2dhriB30FL0vA7JA== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + "@popperjs/core" "2.4.4" + dequal "2.0.2" + +"@chakra-ui/portal@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/portal/-/portal-1.0.4.tgz#07a00eed253bc2231090127adc12150a536a380f" + integrity sha512-2uHBtbI8wV1WZXY1NuZoSlMMtbNLitv5DCP9XflVVQHN/sj6xocBCeyKi4ShU0D+1MpH239p4v60byvkyAyZ1g== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/progress@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/progress/-/progress-1.0.4.tgz#898334f473159c50d099713141d0fcbd136a6cba" + integrity sha512-km6+Ru4ksBW0DwGk/XIigIgsvwqczMEs52DfA6MRWFBG1ZMk3DueQ97kWCmJ9vLuo/jBHoCyaEMBhg4viqSy5Q== + dependencies: + "@chakra-ui/theme-tools" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/radio@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/radio/-/radio-1.1.1.tgz#8ada03ef1c372903bfa46764e43c923def15633e" + integrity sha512-efnCRclCJ06RKSeTdSlpg5E3xXbbr/wBT3cK9E8O5lX4hpQwyVvJz+PFkZ+OeXVQA7+wnA7o5CGOF7RTD/svow== + dependencies: + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/react@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/react/-/react-1.1.4.tgz#254201a3ec9124917d2d31c8324c4f7a2c3a0594" + integrity sha512-nXxsBIzqjrldDRYyNv5smVVkn71HJprxtyiOeHzpC53CW30y9Sgx/TuLozHekGQqynwWjA7kbri1MhnokvZBzQ== + dependencies: + "@chakra-ui/accordion" "1.0.4" + "@chakra-ui/alert" "1.0.4" + "@chakra-ui/avatar" "1.0.3" + "@chakra-ui/breadcrumb" "1.0.3" + "@chakra-ui/button" "1.0.4" + "@chakra-ui/checkbox" "1.1.1" + "@chakra-ui/close-button" "1.0.4" + "@chakra-ui/control-box" "1.0.3" + "@chakra-ui/counter" "1.0.3" + "@chakra-ui/css-reset" "1.0.0" + "@chakra-ui/editable" "1.0.3" + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/image" "1.0.3" + "@chakra-ui/input" "1.0.4" + "@chakra-ui/layout" "1.1.3" + "@chakra-ui/live-region" "1.0.3" + "@chakra-ui/media-query" "1.0.4" + "@chakra-ui/menu" "1.0.4" + "@chakra-ui/modal" "1.4.3" + "@chakra-ui/number-input" "1.0.4" + "@chakra-ui/pin-input" "1.1.3" + "@chakra-ui/popover" "1.0.6" + "@chakra-ui/popper" "1.0.3" + "@chakra-ui/portal" "1.0.4" + "@chakra-ui/progress" "1.0.4" + "@chakra-ui/radio" "1.1.1" + "@chakra-ui/select" "1.0.4" + "@chakra-ui/skeleton" "1.0.8" + "@chakra-ui/slider" "1.0.3" + "@chakra-ui/spinner" "1.0.3" + "@chakra-ui/stat" "1.0.3" + "@chakra-ui/switch" "1.0.4" + "@chakra-ui/system" "1.1.5" + "@chakra-ui/table" "1.0.3" + "@chakra-ui/tabs" "1.0.5" + "@chakra-ui/tag" "1.0.4" + "@chakra-ui/textarea" "1.0.4" + "@chakra-ui/theme" "1.4.1" + "@chakra-ui/toast" "1.1.5" + "@chakra-ui/tooltip" "1.0.4" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/select@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/select/-/select-1.0.4.tgz#8b45d8d1be92bbf0a59ffbbf394ad804cc8770df" + integrity sha512-IpEmhU9z76ym45TDlSRRe+5COoiwS7GHoKOQyHf5TxllkhLTEBO0GxjVTTWzSbdwJwedFX6mS7gUkDQfgp+Pdg== + dependencies: + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/skeleton@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-1.0.8.tgz#6e85969aa0a7a17fbbae2986bc92764a95634d1b" + integrity sha512-II5BmUyu75De0RMKQS7oa5TBK9r0TssqQUjOiRE1q9t39trxVjqXr1aBobHDQdO7zCh/joOx4qfDYKCOzgRRnQ== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/media-query" "1.0.4" + "@chakra-ui/system" "1.1.5" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/slider@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/slider/-/slider-1.0.3.tgz#61dad11ff8cb505a6a7ff8223e4814b7ac6b4b22" + integrity sha512-U1VdEbENtZggWuHfPR9+82BELTu5bTNTug4/Le4gx1Sgnli4GDYWFbiPO3/Aw8xYaFdJui+a7WR0FZt1d5tDGA== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/spinner@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/spinner/-/spinner-1.0.3.tgz#b0f655cb05164ed4577d1b670638e4528955df95" + integrity sha512-2GCrEhvDLcRQhbDcNyD5HQaFmVSrctFDY3rfV9+bxJX59natUrbBRhdJsL5lLItHii+tw1zkI3dC5gJWUZ+vOg== + dependencies: + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/stat@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/stat/-/stat-1.0.3.tgz#b78455b4490acde7363f19cdbf5972088f04804f" + integrity sha512-i7K+IyUTufidEKMppPaRspNNBQ1hgxEDKnWr0ahm0VQFZu5WtOQW8TEfwKq4w4dGBnkFwFfSalzwQL0dSVuJyw== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/styled-system@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/styled-system/-/styled-system-1.4.1.tgz#8c92b2b2e02ed54b74c4fcf5ba82daa621ac8a1b" + integrity sha512-747yDSH5Gz7X5clzTzSyiy7rEo5uRoDFle8RkA41Cl5hMx6twBLRqfoCdfm5VNYQKM6E0KtG6dW6MgiwOGhY4w== + dependencies: + "@chakra-ui/utils" "1.1.0" + css-get-unit "1.0.1" + csstype "3.0.3" + +"@chakra-ui/switch@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/switch/-/switch-1.0.4.tgz#77e7cfd34b7ec1d3bb431d23ecaccf10842209d1" + integrity sha512-Gfdd7Cnj32eLQj2pmM/cjeEbpAYLMgA1hhsJOdDTdA6hfj/EMNPLcUPnsGNtjICbKq9+J1E4zhMSZpmzI7rw6w== + dependencies: + "@chakra-ui/checkbox" "1.1.1" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/system@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/system/-/system-1.1.5.tgz#db004a06210379c0068e393bd843b3fdbc212be2" + integrity sha512-qP/zzn3/EAUFefxGHRVXxvQy9q5RA3RLTxhfkAg2+MPipt0fbVuB7qPKu3VtSo7kiDsdNM8XiMA1EuNzpe3vXg== + dependencies: + "@chakra-ui/color-mode" "1.0.3" + "@chakra-ui/styled-system" "1.4.1" + "@chakra-ui/utils" "1.1.0" + react-fast-compare "3.2.0" + +"@chakra-ui/table@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/table/-/table-1.0.3.tgz#178d365ae7a385fe99c7511cfecb3ca0e7860d4f" + integrity sha512-VXi311N8Q/91p5HwWeWl6BI/noIiCaOYNCSCov5sMBVvmOYSUSdtUSX0cftPKMGTQPX8sIIQbWyxkFvbYZuscA== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/tabs@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/tabs/-/tabs-1.0.5.tgz#efe3bbae5f774a53bb93af7e17ce699a4be1b5e1" + integrity sha512-bS2uGoOwKGKoXT5enVKb1W8tgGBcptH0XQ+fNgrqiTQbXUVgZrbbj3tc5dJWWnsEW1hGwsO290QK1ghzRi3qiA== + dependencies: + "@chakra-ui/clickable" "1.0.3" + "@chakra-ui/descendant" "1.0.3" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/tag@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/tag/-/tag-1.0.4.tgz#a2d68f6306d9fc1f7e6ecf64078d213724985572" + integrity sha512-+aZIGtCB9pbLdvFVbeNjNTvE7NiVYOiEUt8rHQ/evWKYTFZmpbKIIKBhtyaLAfm9pNT4HpAbCK7l/gg/H1Zj0w== + dependencies: + "@chakra-ui/icon" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/textarea@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/textarea/-/textarea-1.0.4.tgz#7d68aa29f5df0dcb38848efdd5497c60f3e43e50" + integrity sha512-JR9GSbra1DKvfD0wTMnSMXh+XOxfCW7+o6LCHUBWXnVj54uA/h2RePqTAuhiGJ81PP7jBGPqhKeyJwmwfT8Yug== + dependencies: + "@chakra-ui/form-control" "1.1.1" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/theme-tools@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/theme-tools/-/theme-tools-1.0.3.tgz#a741566e48f6526afa653c0aec578b4bf477efa6" + integrity sha512-ajI/vJkaoPykNXYqlw9xA0eHN1dI4Tnezd2F0a6/WjAXVjZNV/0IUnh437o3yHqP0WSwp4uMfXseZUaNmIj75A== + dependencies: + "@chakra-ui/utils" "1.1.0" + "@types/tinycolor2" "1.4.2" + tinycolor2 "1.4.2" + +"@chakra-ui/theme@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@chakra-ui/theme/-/theme-1.4.1.tgz#23588f136990665dd1343dd626f0c70853881555" + integrity sha512-BVeJDNaz6Eb2Dfvle5xpHc6Wx3bjKkNdvPLiiO8N6PV6G/brysiLZmMTdBAC/wBdSNT/p+ED7WyIEm3TakonkQ== + dependencies: + "@chakra-ui/theme-tools" "1.0.3" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/toast@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@chakra-ui/toast/-/toast-1.1.5.tgz#881ab0e8f4287697103454f94360f3db76f98c71" + integrity sha512-bj3BQF91kMVR1nSdSRLA3xl0xHZMxMnr3YoGYbLB2W8ggOQa47EEZBK1GVliEfvfKSYCBbBW4+Qx5YLiyUNKqw== + dependencies: + "@chakra-ui/alert" "1.0.4" + "@chakra-ui/close-button" "1.0.4" + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/theme" "1.4.1" + "@chakra-ui/transition" "1.0.4" + "@chakra-ui/utils" "1.1.0" + "@reach/alert" "0.11.0" + +"@chakra-ui/tooltip@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/tooltip/-/tooltip-1.0.4.tgz#5260df21da038263dcf5b7dda0b912c137f4e07a" + integrity sha512-lZWNXkIsUuS2L07CNIJlS8BuTA/P3wOJ/oac8Azo3A1uYScWJHkiYD2JYmsETh2sS/PdSMu28fhi+lW2KUBYYA== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/popper" "1.0.3" + "@chakra-ui/portal" "1.0.4" + "@chakra-ui/utils" "1.1.0" + "@chakra-ui/visually-hidden" "1.0.3" + +"@chakra-ui/transition@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@chakra-ui/transition/-/transition-1.0.4.tgz#7931579448642a8946bd4eae456f308729249600" + integrity sha512-bsldRI5UhY3WZoe3yTnB9MzFt51DDdGEYoxEfoyzQwCM7Jq5/+it3EnHxIrcje+VTHCVezZWLChHxnAxYTTOVw== + dependencies: + "@chakra-ui/hooks" "1.1.0" + "@chakra-ui/utils" "1.1.0" + +"@chakra-ui/utils@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@chakra-ui/utils/-/utils-1.1.0.tgz#e006d17ffc1b09c2daa08f94fbc58766c4329e76" + integrity sha512-QiX6HqQpv+oE4lRaPhDYRhrYI2ijAsNDpKhZeOeUh6hBXWIayzMB62iN0QANeMqynPz413TU5RR2c+WGwyax6g== + dependencies: + "@types/lodash.mergewith" "4.6.6" + "@types/object-assign" "4.0.30" + css-box-model "1.2.1" + lodash.mergewith "4.6.2" + object-assign "4.1.1" + +"@chakra-ui/visually-hidden@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-1.0.3.tgz#b38987f18d72073577e278387f6a9eeb25f10ff8" + integrity sha512-OTmqXgw/jXXhRhzyhA21AgDLdgcAZhtzg9ZHU6SpLprZxi2L+nf0VQ8y0vD4YpS5VHf+ZMy5W2GIXbuJRhjePg== + dependencies: + "@chakra-ui/utils" "1.1.0" + +"@emotion/babel-plugin@^11.0.0": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.1.2.tgz#68fe1aa3130099161036858c64ee92056c6730b7" + integrity sha512-Nz1k7b11dWw8Nw4Z1R99A9mlB6C6rRsCtZnwNUOj4NsoZdrO2f2A/83ST7htJORD5zpOiLKY59aJN23092949w== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/plugin-syntax-jsx" "^7.12.1" + "@babel/runtime" "^7.7.2" + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.0" + babel-plugin-macros "^2.6.1" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "^4.0.3" + +"@emotion/cache@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.1.3.tgz#c7683a9484bcd38d5562f2b9947873cf66829afd" + integrity sha512-n4OWinUPJVaP6fXxWZD9OUeQ0lY7DvtmtSuqtRWT0Ofo/sBLCVSgb4/Oa0Q5eFxcwablRKjUXqXtNZVyEwCAuA== + dependencies: + "@emotion/memoize" "^0.7.4" + "@emotion/sheet" "^1.0.0" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + stylis "^4.0.3" + +"@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.1": +"@emotion/is-prop-valid@^0.8.2": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== dependencies: "@emotion/memoize" "0.7.4" -"@emotion/memoize@0.7.4", "@emotion/memoize@^0.7.1": +"@emotion/is-prop-valid@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.0.0.tgz#1dbe82e52a12c065d416a702e2d106e552cde5be" + integrity sha512-G5X0t7eR9pkhUvAY32QS3lToP9JyNF8It5CcmMvbWjmC9/Yq7IhevaKqxl+me2BKR93iTPiL/h3En1ZX/1G3PQ== + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" - integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== + +"@emotion/react@^11.1.4": + version "11.1.4" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.4.tgz#ddee4247627ff7dd7d0c6ae52f1cfd6b420357d2" + integrity sha512-9gkhrW8UjV4IGRnEe4/aGPkUxoGS23aD9Vu6JCGfEDyBYL+nGkkRBoMFGAzCT9qFdyUvQp4UUtErbKWxq/JS4A== dependencies: - "@emotion/hash" "0.8.0" - "@emotion/memoize" "0.7.4" - "@emotion/unitless" "0.7.5" - "@emotion/utils" "0.11.3" - csstype "^2.5.7" - -"@emotion/sheet@0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" - integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== - -"@emotion/styled-base@^10.0.27": - version "10.0.31" - resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a" - integrity sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/is-prop-valid" "0.8.8" - "@emotion/serialize" "^0.11.15" - "@emotion/utils" "0.11.3" - -"@emotion/styled@^10.0.27": - version "10.0.27" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf" - integrity sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q== - dependencies: - "@emotion/styled-base" "^10.0.27" - babel-plugin-emotion "^10.0.27" - -"@emotion/stylis@0.8.5": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== - -"@emotion/unitless@0.7.5": + "@babel/runtime" "^7.7.2" + "@emotion/cache" "^11.1.3" + "@emotion/serialize" "^1.0.0" + "@emotion/sheet" "^1.0.1" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz#1a61f4f037cf39995c97fc80ebe99abc7b191ca9" + integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw== + dependencies: + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.4" + "@emotion/unitless" "^0.7.5" + "@emotion/utils" "^1.0.0" + csstype "^3.0.2" + +"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz#245f54abb02dfd82326e28689f34c27aa9b2a698" + integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g== + +"@emotion/styled@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.0.0.tgz#698196c2822746360a8644a73a5d842b2d1a78a5" + integrity sha512-498laccxJlBiJqrr2r/fx9q+Pr55D0URP2UyOkoSGLjevb8LLAFWueqthsQ5XijE66iGo7y3rzzEYdA7CHmZEQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@emotion/babel-plugin" "^11.0.0" + "@emotion/is-prop-valid" "^1.0.0" + "@emotion/serialize" "^1.0.0" + "@emotion/utils" "^1.0.0" + +"@emotion/unitless@^0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@emotion/utils@0.11.3": - version "0.11.3" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" - integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== +"@emotion/utils@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" + integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== -"@emotion/weak-memoize@0.2.5": +"@emotion/weak-memoize@^0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== @@ -311,139 +820,36 @@ resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== -"@reach/alert@^0.1.2": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@reach/alert/-/alert-0.1.5.tgz#4da79add0055fa4295f51e5295ed3b80257e9153" - integrity sha512-Ow+SB7rokGWxmm+AdOpf4eo29OaEYDqlJ1Kc9qulVX2cKjYiHQqAvkiCkSaIPkQbbyNmEXJ0c/rVpzPVvCVIAw== - dependencies: - "@reach/component-component" "^0.1.3" - "@reach/visually-hidden" "^0.1.4" +"@popperjs/core@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.4.4.tgz#11d5db19bd178936ec89cd84519c4de439574398" + integrity sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg== -"@reach/auto-id@0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@reach/auto-id/-/auto-id-0.10.2.tgz#a447af67241123dcb701ecd61931a2c786ed111e" - integrity sha512-PWFZevkHshiJV/z0L/5WQkWhe9QRzdZqC7N/JHRCoYo+odvCz9izXVRsxJf7p4sCuOCvnc8zNzAokFk2E1ZzDg== +"@reach/alert@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@reach/alert/-/alert-0.11.0.tgz#34bea3e9e286fa54a86adaa1a3730faff9b2bda3" + integrity sha512-7Rw+lrrIOhgNTVmk8YZsqoF+fyOiA+kJx23p9/FZq+d0MK28e6puUA1zpeWASdU1LDzS+vDJM5hUmj98NMM/nw== dependencies: - "@reach/utils" "^0.10.2" - tslib "^1.11.2" - -"@reach/component-component@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@reach/component-component/-/component-component-0.1.3.tgz#5d156319572dc38995b246f81878bc2577c517e5" - integrity sha512-a1USH7L3bEfDdPN4iNZGvMEFuBfkdG+QNybeyDv8RloVFgZYRoM+KGXyy2KOfEnTUM8QWDRSROwaL3+ts5Angg== + "@reach/utils" "0.11.0" + "@reach/visually-hidden" "0.11.0" + prop-types "^15.7.2" + tslib "^2.0.0" -"@reach/utils@^0.10.2": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.10.5.tgz#fbac944d29565f6dd7abd0e1b13950e99b1e470b" - integrity sha512-5E/xxQnUbmpI/LrufBAOXjunl96DnqX6B4zC2MO2KH/dRzLug5gM5VuOwV26egsp0jvsSPxojwciOhS43px3qw== +"@reach/utils@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.11.0.tgz#09ad5e1f42b498253df8a6a4c99ccd0ab2d85464" + integrity sha512-A7Ofr1Biq4vUeTBYhbZ/YiLq1B/lEObbEoR2UiuQqCO1r093N95hZNcKqfFwpkRScjD87uob3wSYYGxvq9y/+w== dependencies: "@types/warning" "^3.0.0" tslib "^2.0.0" warning "^4.0.3" -"@reach/visually-hidden@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.1.4.tgz#0dc4ecedf523004337214187db70a46183bd945b" - integrity sha512-QHbzXjflSlCvDd6vJwdwx16mSB+vUCCQMiU/wK/CgVNPibtpEiIbisyxkpZc55DyDFNUIqP91rSUsNae+ogGDQ== - -"@styled-system/background@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/background/-/background-5.1.2.tgz#75c63d06b497ab372b70186c0bf608d62847a2ba" - integrity sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/border@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@styled-system/border/-/border-5.1.5.tgz#0493d4332d2b59b74bb0d57d08c73eb555761ba6" - integrity sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/color@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/color/-/color-5.1.2.tgz#b8d6b4af481faabe4abca1a60f8daa4ccc2d9f43" - integrity sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/core@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/core/-/core-5.1.2.tgz#b8b7b86455d5a0514f071c4fa8e434b987f6a772" - integrity sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw== - dependencies: - object-assign "^4.1.1" - -"@styled-system/css@5.1.5", "@styled-system/css@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@styled-system/css/-/css-5.1.5.tgz#0460d5f3ff962fa649ea128ef58d9584f403bbbc" - integrity sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A== - -"@styled-system/flexbox@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/flexbox/-/flexbox-5.1.2.tgz#077090f43f61c3852df63da24e4108087a8beecf" - integrity sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/grid@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/grid/-/grid-5.1.2.tgz#7165049877732900b99cd00759679fbe45c6c573" - integrity sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/layout@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/layout/-/layout-5.1.2.tgz#12d73e79887e10062f4dbbbc2067462eace42339" - integrity sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/position@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/position/-/position-5.1.2.tgz#56961266566836f57a24d8e8e33ce0c1adb59dd3" - integrity sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/shadow@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/shadow/-/shadow-5.1.2.tgz#beddab28d7de03cd0177a87ac4ed3b3b6d9831fd" - integrity sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/should-forward-prop@5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz#c392008c6ae14a6eb78bf1932733594f7f7e5c76" - integrity sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q== - dependencies: - "@emotion/is-prop-valid" "^0.8.1" - "@emotion/memoize" "^0.7.1" - styled-system "^5.1.5" - -"@styled-system/space@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/space/-/space-5.1.2.tgz#38925d2fa29a41c0eb20e65b7c3efb6e8efce953" - integrity sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/typography@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@styled-system/typography/-/typography-5.1.2.tgz#65fb791c67d50cd2900d234583eaacdca8c134f7" - integrity sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/variant@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@styled-system/variant/-/variant-5.1.5.tgz#8446d8aad06af3a4c723d717841df2dbe4ddeafd" - integrity sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw== +"@reach/visually-hidden@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.11.0.tgz#a7cd68ea2a197238dfcffbef8723db9117d31ebb" + integrity sha512-O67fK7jz01TYu/V57RiDsxKY29ReHdQkpq+OV0ijmXsv7g5r3Nys51Ry+IqPrJst4Ve5xxFbiJsTt/bGwxorrQ== dependencies: - "@styled-system/core" "^5.1.2" - "@styled-system/css" "^5.1.5" + tslib "^2.0.0" "@types/color-name@^1.1.1": version "1.1.1" @@ -462,6 +868,18 @@ dependencies: "@types/node" "*" +"@types/lodash.mergewith@4.6.6": + version "4.6.6" + resolved "https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz#c4698f5b214a433ff35cb2c75ee6ec7f99d79f10" + integrity sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.167" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.167.tgz#ce7d78553e3c886d4ea643c37ec7edc20f16765e" + integrity sha512-w7tQPjARrvdeBkX/Rwg95S592JwxqOjmms3zWQ0XZgSyxSLdzWaYH3vErBhdVS/lRBX7F8aBYcYJYTr5TMGOzw== + "@types/next@^9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@types/next/-/next-9.0.0.tgz#29aca06f8a5cfffc974a83b87e52ca57b2a506c4" @@ -474,6 +892,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== +"@types/object-assign@4.0.30": + version "4.0.30" + resolved "https://registry.yarnpkg.com/@types/object-assign/-/object-assign-4.0.30.tgz#8949371d5a99f4381ee0f1df0a9b7a187e07e652" + integrity sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI= + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -497,13 +920,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@^16.8.3": - version "16.9.9" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.9.tgz#d2d0a6f720a0206369ccbefff752ba37b9583136" - integrity sha512-jE16FNWO3Logq/Lf+yvEAjKzhpST/Eac8EMd1i4dgZdMczfgqC8EjpxwNgEe3SExHYLliabXDh9DEhhqnlXJhg== - dependencies: - "@types/react" "*" - "@types/react-dom@^17.0.0": version "17.0.0" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.0.tgz#b3b691eb956c4b3401777ee67b900cb28415d95a" @@ -519,20 +935,10 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^16.8.10": - version "16.9.56" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz#ea25847b53c5bec064933095fc366b1462e2adf0" - integrity sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/styled-system@5.1.9": - version "5.1.9" - resolved "https://registry.yarnpkg.com/@types/styled-system/-/styled-system-5.1.9.tgz#8baac8f6eca9e0bd5768c175ca5ce1f2d6f61ade" - integrity sha512-QlWv6tmQV8dqk8s+LSLb9QAtmuQEnfv4f8lKKZkMgDqRFVmxJDBwEw0u4zhpxp56u0hdR+TCIk9dGfOw3TkCoQ== - dependencies: - csstype "^2.6.9" +"@types/tinycolor2@1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.2.tgz#721ca5c5d1a2988b4a886e35c2ffc5735b6afbdf" + integrity sha512-PeHg/AtdW6aaIO2a+98Xj7rWY4KC1E6yOy7AFknJQ7VXUGNrMlyxDFxJo7HqLtjQms/ZhhQX52mLVW/EX3JGOw== "@types/warning@^3.0.0": version "3.0.0" @@ -547,11 +953,6 @@ "@graphql-typed-document-node/core" "^3.1.0" wonka "^4.0.14" -"@use-it/event-listener@^0.1.2": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@use-it/event-listener/-/event-listener-0.1.5.tgz#870456241bfef66acea6395c69b66fe516bee3cd" - integrity sha512-SWbhB0iFcoNL1BEldApGTqfB9aoGpU82iZUVTBtZaTFNrVKAGwuQTF15N9MzRvTgyuOASWf1pCKXbdVtKZgeRg== - "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -944,23 +1345,7 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -babel-plugin-emotion@^10.0.27: - version "10.0.33" - resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03" - integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@emotion/hash" "0.8.0" - "@emotion/memoize" "0.7.4" - "@emotion/serialize" "^0.11.16" - babel-plugin-macros "^2.0.0" - babel-plugin-syntax-jsx "^6.18.0" - convert-source-map "^1.5.0" - escape-string-regexp "^1.0.5" - find-root "^1.1.0" - source-map "^0.5.7" - -babel-plugin-macros@^2.0.0: +babel-plugin-macros@^2.6.1: version "2.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -969,7 +1354,7 @@ babel-plugin-macros@^2.0.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.18.0: +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= @@ -1061,11 +1446,6 @@ bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== -body-scroll-lock@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.0.3.tgz#221d87435bcfb50e27ab5d4508735f622aed11a2" - integrity sha512-EUryImgD6Gv87HOjJB/yB2WIGECiZMhmcUK+DrqVRFDDa64xR+FsK0LgvLPnBxZDTxIl+W80/KJ8i6gp2IwOHQ== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1389,7 +1769,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@2.2.6, classnames@^2.2.5: +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== @@ -1461,14 +1841,6 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - color-string@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" @@ -1477,14 +1849,6 @@ color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" -color@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - color@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" @@ -1520,6 +1884,11 @@ compose-function@3.0.3: dependencies: arity-n "^1.0.4" +compute-scroll-into-view@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz#80e3ebb25d6aa89f42e533956cb4b16a04cfe759" + integrity sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1662,6 +2031,18 @@ crypto-js@^4.0.0: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== +css-box-model@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" + integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== + dependencies: + tiny-invariant "^1.0.6" + +css-get-unit@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-get-unit/-/css-get-unit-1.0.1.tgz#e490b9e56b2cd20f903a22ccafb448382edf7976" + integrity sha1-5JC55Wss0g+QOiLMr7RIOC7feXY= + css-loader@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" @@ -1716,10 +2097,10 @@ cssnano-simple@1.2.1: cssnano-preset-simple "1.2.1" postcss "^7.0.32" -csstype@^2.5.7, csstype@^2.6.9: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== +csstype@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" + integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== csstype@^3.0.2: version "3.0.2" @@ -1831,6 +2212,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +dequal@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" + integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -1995,15 +2381,6 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -emotion-theming@^10.0.27: - version "10.0.27" - resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.27.tgz#1887baaec15199862c89b1b984b79806f2b9ab10" - integrity sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/weak-memoize" "0.2.5" - hoist-non-react-statics "^3.3.0" - end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2101,6 +2478,11 @@ escape-string-regexp@^1.0.2, 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= +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-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -2159,11 +2541,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exenv@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" - integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2323,6 +2700,24 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +framer-motion@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-3.2.1.tgz#66eeb883a0b5c425dd7767ecacdeac451c184cdb" + integrity sha512-5AWrh4JElgFAXWLqk0u8lVcdkigyuofyEy2LSsjuCxKbAb1hHqRn3PPdrV0KgPrysTHq95QO1bHFTLA7/Q8g+Q== + dependencies: + framesync "^5.0.0" + hey-listen "^1.0.8" + popmotion "^9.1.0" + style-value-types "^4.0.1" + tslib "^1.10.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framesync@5.0.0, framesync@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.0.0.tgz#7de8caedf53ac441118e79680f1beb7391c328b6" + integrity sha512-wd8t+JsQGisluSv1twiEeDv0aNGpavGb9q7xgIk9fGbcIWkNXF/KVtrjnOrCwBWJuiXxlJfNkcvGudsI32FxYA== + from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -2393,6 +2788,11 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -2537,6 +2937,11 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + highlight.js@^9.6.0: version "9.18.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" @@ -2551,7 +2956,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -2672,6 +3077,13 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -3092,6 +3504,11 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= +lodash.mergewith@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -3549,7 +3966,7 @@ oauth@^0.9.15: resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, 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= @@ -3858,10 +4275,15 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" -popper.js@^1.15.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== +popmotion@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.1.0.tgz#4360d06bd18ce8baa8f9284ecec7d55344af6325" + integrity sha512-+J7pzzBy5kk2qsP8ilowKs/CH+HoZa3kOGEBNCleCvsPXEF3nKHdfAR3SboMyPvdpIrofaT7ZIy/xWgz446Azw== + dependencies: + framesync "5.0.0" + hey-listen "^1.0.8" + style-value-types "^4.0.1" + tslib "^1.10.0" posix-character-classes@^0.1.0: version "0.1.1" @@ -4025,7 +4447,7 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -prop-types@15.7.2, prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@15.7.2, prop-types@^15.6.2, 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== @@ -4136,14 +4558,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-animate-height@2.0.21: - version "2.0.21" - resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.0.21.tgz#da9223eb0e74457d52f72da477c8626550df2ce6" - integrity sha512-CZHdjMD8qqp10tYtWmauWYASXxxv9vYeljxFGFtbcrbNXhsUv0w3IjxVK+0yCnyfk7769WfMZKHra4vRcbMnQg== - dependencies: - classnames "^2.2.5" - prop-types "^15.6.1" - react-clientside-effect@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" @@ -4151,17 +4565,21 @@ react-clientside-effect@^1.2.2: dependencies: "@babel/runtime" "^7.0.0" -react-dom@^16.14.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== +react-dom@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" + integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "^0.20.1" + +react-fast-compare@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-focus-lock@^2.2.1: +react-focus-lock@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.4.1.tgz#e842cc93da736b5c5d331799012544295cbcee4f" integrity sha512-c5ZP56KSpj9EAxzScTqQO7bQQNPltf/W1ZEBDqNDOV1XOIwvAyHX0O7db9ekiAtxyKgnqZjQlLppVg94fUeL9w== @@ -4188,13 +4606,24 @@ 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-spring@^8.0.27: - version "8.0.27" - resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-8.0.27.tgz#97d4dee677f41e0b2adcb696f3839680a3aa356a" - integrity sha512-nDpWBe3ZVezukNRandTeLSPcwwTMjNVu1IDq9qA/AMiUqHuRN4BeSWvKr3eIxxg1vtiYiOLy4FqdfCP5IoP77g== +react-remove-scroll-bar@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.1.1.tgz#5876428dfd546f2f63a4d277aea2197925505c1e" + integrity sha512-IZbfQPSozIr8ylHE9MFcQeb2TTzj4abfE7OBXjmtUeXQ5h6ColGKDNo5h7OmzrJRilAx3YIKBf3jb0yrb31BJQ== dependencies: - "@babel/runtime" "^7.3.1" - prop-types "^15.5.8" + react-style-singleton "^2.1.0" + tslib "^1.0.0" + +react-remove-scroll@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.4.0.tgz#190c16eb508c5927595935499e8f5dd9ab0e75cf" + integrity sha512-BZIO3GaEs0Or1OhA5C//n1ibUP1HdjJmqUVUsOCMxwoIpaCocbB9TFKwHOkBa/nyYy3slirqXeiPYGwdSDiseA== + dependencies: + react-remove-scroll-bar "^2.1.0" + react-style-singleton "^2.1.0" + tslib "^1.0.0" + use-callback-ref "^1.2.3" + use-sidecar "^1.0.1" react-ssr-prepass@^1.2.1: version "1.2.1" @@ -4203,14 +4632,22 @@ react-ssr-prepass@^1.2.1: dependencies: object-is "^1.1.2" -react@^16.14.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== +react-style-singleton@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66" + integrity sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^1.0.0" + +react@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" + integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" @@ -4422,10 +4859,10 @@ sax@>=0.6.0: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" + integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -4846,6 +5283,14 @@ style-loader@1.2.1: loader-utils "^2.0.0" schema-utils "^2.6.6" +style-value-types@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.0.1.tgz#23f05dd03e8a850654defc22cf03ebac572aaa00" + integrity sha512-aOV/HHyynIyTmU27qfs0oAHhFde6BFIvV4+nMerE2MAPZMwYOeQk1/F3S6djxF2u4HdbiieCPs3ZzWsbNUoc9A== + dependencies: + hey-listen "^1.0.8" + tslib "^1.10.0" + styled-jsx@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018" @@ -4860,25 +5305,6 @@ styled-jsx@3.3.2: stylis "3.5.4" stylis-rule-sheet "0.0.10" -styled-system@5.1.5, styled-system@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/styled-system/-/styled-system-5.1.5.tgz#e362d73e1dbb5641a2fd749a6eba1263dc85075e" - integrity sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A== - dependencies: - "@styled-system/background" "^5.1.2" - "@styled-system/border" "^5.1.5" - "@styled-system/color" "^5.1.2" - "@styled-system/core" "^5.1.2" - "@styled-system/flexbox" "^5.1.2" - "@styled-system/grid" "^5.1.2" - "@styled-system/layout" "^5.1.2" - "@styled-system/position" "^5.1.2" - "@styled-system/shadow" "^5.1.2" - "@styled-system/space" "^5.1.2" - "@styled-system/typography" "^5.1.2" - "@styled-system/variant" "^5.1.5" - object-assign "^4.1.1" - 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" @@ -4889,6 +5315,11 @@ stylis@3.5.4: resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== +stylis@^4.0.3: + version "4.0.6" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.6.tgz#0d8b97b6bc4748bea46f68602b6df27641b3c548" + integrity sha512-1igcUEmYFBEO14uQHAJhCUelTR5jPztfdVKrYxRnDa5D5Dn3w0NxXupJNPr/VV/yRfZYEAco8sTIRZzH3sRYKg== + subscriptions-transport-ws@^0.9.18: version "0.9.18" resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97" @@ -5045,6 +5476,16 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tiny-invariant@^1.0.6: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tinycolor2@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -5087,15 +5528,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toasted-notes@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/toasted-notes/-/toasted-notes-3.2.0.tgz#dc9bdc9d0083ba2af8bf26b2f71619d014acc089" - integrity sha512-PucSn+SUdFSYNaaL1eNw7wYkEMJ7LULCR6j1YXPlRySHgWVgf+bXjq4dYd3hdA4mvmGz9HANmI1RnzhZ8av52Q== - dependencies: - "@reach/alert" "^0.1.2" - "@types/react" "^16.8.10" - "@types/react-dom" "^16.8.3" - toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" @@ -5123,11 +5555,16 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.0.0, tslib@^1.11.2, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.0.0, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tslib@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" @@ -5311,26 +5748,11 @@ urql@^1.11.5: "@urql/core" "^1.16.0" wonka "^4.0.14" -use-callback-ref@^1.2.1: +use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.4.tgz#d86d1577bfd0b955b6e04aaf5971025f406bea3c" integrity sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ== -use-dark-mode@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/use-dark-mode/-/use-dark-mode-2.3.1.tgz#d506349c7b7e09e9977cb8a6ab4470896aa3779a" - integrity sha512-hmcdJR96tTustRQdaQwe6jMrZHnmPqXBxgy4jaQ4gsfhwajsCpjECuq9prgDe9XxMx/f9r96o2/md6O4Lwhwjg== - dependencies: - "@use-it/event-listener" "^0.1.2" - use-persisted-state "^0.3.0" - -use-persisted-state@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/use-persisted-state/-/use-persisted-state-0.3.0.tgz#f8e3d2fd8eee67e0c86fd596c3ea3e8121c07402" - integrity sha512-UlWEq0JYg7NbvcRBZ1g6Bwe4SEbYfr1wr/D5mrmfCzSxXSwsPRYygGLlsxHcW58Rf7gGwRPBT23sNVvyVn4WYg== - dependencies: - "@use-it/event-listener" "^0.1.2" - use-sidecar@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.0.3.tgz#17a4e567d4830c0c0ee100040e85a7fe68611e0f" diff --git a/license.md b/license.md index 6fcf8072..fb2f17e4 100644 --- a/license.md +++ b/license.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Nirmalya Ghosh +Copyright (c) 2021 Nirmalya Ghosh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/package.json b/package.json index 39553343..ec932702 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { "scripts": { - "dev:frontend": "cd frontend && yarn dev", - "build:frontend": "cd frontend && yarn build", - "export:frontend": "cd frontend && yarn export", - "start:frontend": "cd frontend && yarn start", + "frontend:dev": "cd frontend && yarn dev", + "backend:dev": "cd backend && docker-compose up -d", + "postinstall": "node scripts/generate-keys.ts && npm run backend:dev && npm run frontend:dev", "release": "release-it" }, "devDependencies": { diff --git a/readme.md b/readme.md index 13fc24d2..fb40f687 100644 --- a/readme.md +++ b/readme.md @@ -8,174 +8,9 @@

-This is a boilerplate for building applications using Hasura and Next.js. This boilerplate consists of the following: +## Documentation -1. [**frontend**](https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate/tree/master/frontend): Next.js application -2. [**backend**](https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate/tree/master/backend): Dockerized Hasura application - - - - -- [Overview](#overview) -- [Requirements](#requirements) -- [Packages](#packages) - - [1. **Frontend**: Next.js application](#1-frontend-nextjs-application) - - [2. **Backend**: Dockerized Hasura application](#2-backend-dockerized-hasura-application) -- [Installation](#installation) - - [1. **Clone the application**](#1-clone-the-application) - - [2. **Install necessary dependencies for the frontend application**](#2-install-necessary-dependencies-for-the-frontend-application) - - [3. **Create a .env file and copy the contents from .env.example (present in frontend directory)**](#3-create-a-env-file-and-copy-the-contents-from-envexample-present-in-frontend-directory) - - [4. **Generate the RSA keys**](#4-generate-the-rsa-keys) - - [5. **Print the keys in the escaped format**](#5-print-the-keys-in-the-escaped-format) - - [6. **Copy the value of the key into the `AUTH_PRIVATE_KEY` key (in the .env file)**](#6-copy-the-value-of-the-key-into-the-auth_private_key-key-in-the-env-file) - - [7. **Start the frontend application**](#7-start-the-frontend-application) - - [8. **Go inside the directory of the backend package on another terminal window**](#8-go-inside-the-directory-of-the-backend-package-on-another-terminal-window) - - [9. **Start docker-compose**](#9-start-docker-compose) -- [Deployment](#deployment) - - [Frontend application](#frontend-application) - - [Backend application](#backend-application) -- [Other interesting repositories](#other-interesting-repositories) -- [License](#license) - - - -## Overview - -This boilerplate is built using the following technologies: - -1. [Chakra UI](https://chakra-ui.com/) -2. [Emotion](https://emotion.sh/) -3. [GraphQL](https://graphql.org/) -4. [urql](https://formidable.com/open-source/urql/) -5. [NextAuth](https://next-auth.js.org/) -6. [TypeScript](https://www.typescriptlang.org/) - -It supports GraphQL Query, Mutation and Subscription out of the box. - -## Requirements - -1. [Node.js](https://nodejs.org/) -2. [npm](https://www.npmjs.com/) -3. [Docker](https://www.docker.com/) - -## Packages - -### 1. [**Frontend**](https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate/tree/master/frontend): Next.js application - -This application is the primary user-facing application. Once it’s up and running (see Development section), it’s available on http://localhost:3000/. - -![Home page before login](https://user-images.githubusercontent.com/6391763/91220100-4bdabd00-e739-11ea-861e-f4ede1f5f44c.png) - -To create a new user, we’ll have to Sign Up using Google. [NextAuth](https://next-auth.js.org/) is being used to help us in authentication. -![Login page](https://user-images.githubusercontent.com/6391763/91220113-5006da80-e739-11ea-9580-9dacad898d9f.png) - -![Home page after login](https://user-images.githubusercontent.com/6391763/91220117-509f7100-e739-11ea-9c5d-782185dc5a69.png) - -![Feeds page](https://user-images.githubusercontent.com/6391763/91220121-51d09e00-e739-11ea-8960-ec335586d8af.png) - -![My Profile page](https://user-images.githubusercontent.com/6391763/91220126-52693480-e739-11ea-87d0-5834617c9d96.png) - -### 2. [**Backend**](https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate/tree/master/backend): Dockerized Hasura application - -[Hasura](https://hasura.io/) is an open source engine that connects to our databases & micro-services and auto-generates a production-ready GraphQL backend. It’s very easy to get Hasura up and running on our local system. All the migrations are set up in the [migrations](https://github.com/ghoshnirmalya/nextjs-hasura-trello-clone/tree/master/packages/backend/migrations) directory. - -## Installation - -### 1. **Clone the application** - -```sh -git clone https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate -``` - -### 2. **Install necessary dependencies for the frontend application** - -```sh -cd frontend && yarn install -``` - -### 3. **Create a .env file and copy the contents from .env.example (present in frontend directory)** - -### 4. **Generate the RSA keys** - -```sh -openssl genrsa -out private.pem 2048 -openssl rsa -in private.pem -pubout > public.pem -``` - -### 5. **Print the keys in the escaped format** - -```sh -awk -v ORS='\\n' '1' private.pem -``` - -### 6. **Copy the value of the key into the AUTH_PRIVATE_KEY key (in the .env file)** - -The **AUTH_PRIVATE_KEY** should look like the following: - -```sh -AUTH_PRIVATE_KEY='{"type":"RS256", "key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0U3NR0eyMehHBlx6DK5sJ+Pys9dTWf558kpKVeQvL2oIZEY3\nLvS3/jdrIm/dU4WrIGPki1r/AWXQAyBZ2FKnZROcUWN0IqdmxrC5zTDymuscqhKX\nqxjSwrwOVWHc+zWWmXCQGmDdoCokXd9ZW66nA0BN66MdMC2+d5GrZdKUF305dpzT\nUdzDE12/XwOEUalCM0703eGu8zFwutLYc3+vf2CFOQ1z+rvDQD4N2aZABKTxZRtE\nkMHljnoyKlF9rljNzT/5N8YQE7qn4pBh6CMa1zcSilk9nhgl55n/Kjn2xMieWdIa\nlaOEKw1LqqIjiT1ESkAKfPaIoSSnmTaYy78gbwIDAQABAoIBAF+3t+AYLqraMdj7\n46j2/2lCupR6LZkjYntmdBZRky6YzBunbMchjR9KEsmd5Na0c20NodAFHkdyWy2C\n1vOx4PG9hShHVi4e5kaJPX9UGi60xNgWRpwtbv01aUysw5VyjVvAeXZGxDPh8d2o\nLcJa3fADsV7IqqmE0ez2hi67nZQbkbEUbKs7aGfCE6srCfjCfOadfNnto9+7qDjJ\nnd4rK18H1rBSLTqj4T7wd1K8THgo25vjEuVRbGsEVrNB/B1Dz0pdOqhqukzixfcS\nVL/7uYDXehLasmUQu2VtMFsLqDpAbQgvpoNnzeZuB0WARvygSi/n4t+pCi84hXXe\na1m/01kCgYEA6+i5FwJAPxe2oCc0iignHjA20itTalyUhgJrLa8tTs721GJ3ku0A\n/EJVgmoNOLCQnZMldWvEDGmf6QuaWitq8ZWK/0BmHrEjbDA7m1fPdf3hrNx6eH/i\nazxjAoWA/u0yZg6QvUC7hSOO6WEpFYGuc2+/mHlnm5RLdL3QNIlHyyUCgYEA4yEI\n2deZ9MgmxbnFc76u7VhT1lc1MHpuAcDR3hqKT9xH2fTBaTDpVqeFbQJR5Hu+ZqgT\nL3+zV5kzIz3RaNMGN1IaxDEEx+tDnL9aw8sqawauWZtp7W2EeFvtP8uhHiBWpqVl\nvus6Gpl6hpNg6X96vHRcW+mB13I/h5YWA25EEwMCgYA5YbkrvJNuBVGZsQ+Zj1y8\nfhPHmVxH4c8KranuSc7mfXcSgAT/ywBTW7s65prisCfs/C6/WgAs2MBZykW4Kxlv\nO+W8Yqi0THgGR9En3vsKgz+ScWqkxs6HMQAQS/LtjzqUEnToY8d5AgYwBD8fCRUq\n5QKgjt9Bu5eDBOyQ6td4tQKBgBtDrOdRfTaoDBdyHGSvgBoXn0C8iTL/j1MAjXDG\n6NF7VNiyC8GP0ILJazfRrnjp7cou5Nav0pxyVHQniIq3wihD39irNbK16BDZ25Bj\nQ/1C+Qzing2VNvCnwEwHKpkOMrigZB1N6VSmFdIvwNNmrRoQMcIKvr5ZBY1GE/Bn\nfR53AoGBAIXaWIoDW5d9XwFa8HdxkgMPyLlizckZKyXASYEGWD2VU8P1NwA/bZ1t\nymioQPRJymTBfUL6E44Ebwx25DezjYEun1yqouZ+WZBlsEYtssffzTs2IocZ6aCN\nYfzt3orUEI/rWbRSqYFEuOntzzf3a7r3MtDU41e7iXcNkRSxCAIV\n-----END RSA PRIVATE KEY-----\n"}' -``` - -### 7. **Create and copy the Google client credentials** - -Create a new [Google OAuth Client](https://console.developers.google.com/apis/credentials/oauthclient) and copy the credentials (Client ID and Client Secret) in your .env file. - -### 8. **Start the frontend application** - -From the frontend directory, we can run the following command to start our Next.js frontend application: - -```sh -yarn dev -``` - -The above command will start the frontend application on [http://localhost:3000/](http://localhost:3000). - -### 9. **Go inside the directory of the backend package on another terminal window** - -```sh -cd packages/backend -``` - -### 10. **Add the necessary environment keys (in the docker-compose.yml file)** - -```sh -awk -v ORS='\\n' '1' public.pem -``` - -The **HASURA_GRAPHQL_JWT_SECRET** should look like the following (in your docker-compose.yml file): - -```sh -HASURA_GRAPHQL_JWT_SECRET='{"type":"RS256", "key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0U3NR0eyMehHBlx6DK5s\nJ+Pys9dTWf558kpKVeQvL2oIZEY3LvS3/jdrIm/dU4WrIGPki1r/AWXQAyBZ2FKn\nZROcUWN0IqdmxrC5zTDymuscqhKXqxjSwrwOVWHc+zWWmXCQGmDdoCokXd9ZW66n\nA0BN66MdMC2+d5GrZdKUF305dpzTUdzDE12/XwOEUalCM0703eGu8zFwutLYc3+v\nf2CFOQ1z+rvDQD4N2aZABKTxZRtEkMHljnoyKlF9rljNzT/5N8YQE7qn4pBh6CMa\n1zcSilk9nhgl55n/Kjn2xMieWdIalaOEKw1LqqIjiT1ESkAKfPaIoSSnmTaYy78g\nbwIDAQAB\n-----END PUBLIC KEY-----\n"}' -``` - -Also, the **HASURA_GRAPHQL_ADMIN_SECRET** value needs to be updated in the docker-compose.yml file: - -```sh -HASURA_GRAPHQL_ADMIN_SECRET: secret -``` - -### 11. **Start docker-compose** - -```sh -docker-compose up -``` - -We need to start Docker and then run the above command which will change the current directory to the backend package’s directory and then start the backend package. If everything goes well, it’ll be up and running on http://localhost:8080/v1/graphql. - -## Deployment - -### Frontend application - -Click on the button below to deploy the frontend application on Vercel. You'll need to [sign up for a free Vercel account](https://vercel.com/signup/). - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/git?s=https%3A%2F%2Fgithub.com%2Fghoshnirmalya%2Fnextjs-hasura-boilerplate%2Ftree%2Fmaster%2Ffrontend&env=NEXT_PUBLIC_API_URL,NEXT_PUBLIC_WS_URL,DATABASE_URL,AUTH_PRIVATE_KEY,EMAIL_SERVER,EMAIL_FROM,NEXTAUTH_URL,GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET&project-name=nextjs-hasura-boilerplate&repo-name=nextjs-hasura-boilerplate) - -### Backend application - -Click on the button below to deploy the backend application on Heroku. You'll need to [sign up for a free Heroku account](https://signup.heroku.com/). - -[![Deploy to -Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/ghoshnirmalya/nextjs-hasura-boilerplate) +Documentation is available [here](https://nirmalyaghosh.com/guides/nextjs-hasura-boilerplate). ## Other interesting repositories diff --git a/scripts/generate-keys.ts b/scripts/generate-keys.ts new file mode 100644 index 00000000..16d93390 --- /dev/null +++ b/scripts/generate-keys.ts @@ -0,0 +1,63 @@ +const fs = require("fs"); +const util = require("util"); +const exec = util.promisify(require("child_process").exec); + +async function generateKeys() { + try { + // Get the contents of the .env.example file + const frontendEnvironmentVariables = fs.readFileSync( + "frontend/.env.example", + "utf8" + ); + + console.log( + `Please create a Google OAuth Client( https://console.developers.google.com/apis/credentials/oauthclient) and copy the credentials to GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in your .env\n` + ); + + // Generate the private.pem file + await exec("openssl genrsa -out private.pem 2048"); + + // Generate the public.pem file + await exec("openssl rsa -in private.pem -pubout > public.pem"); + + // Get the value of the private key + const { stdout: privateKey } = await exec( + "awk -v ORS='\\n' '1' private.pem" + ); + + // Get the value of the public key + const { stdout: publicKey } = await exec("awk -v ORS='\\n' '1' public.pem"); + + // Construct the values of all the necessary keys + const AUTH_PRIVATE_KEY = { type: "RS256", key: privateKey }; + const AUTH_PUBLIC_KEY = { type: "RS256", key: publicKey }; + const frontendEnv = `${frontendEnvironmentVariables}AUTH_PRIVATE_KEY=${JSON.stringify( + AUTH_PRIVATE_KEY + )}`; + + // Write the contents into the .env file + fs.writeFileSync("frontend/.env", frontendEnv); + + // Get the contents of the .env.example file + const backendEnvironmentVariables = fs.readFileSync( + "backend/.env.example", + "utf8" + ); + + // Construct the values of all the necessary keys + const backendEnv = `${backendEnvironmentVariables}HASURA_GRAPHQL_JWT_SECRET=${JSON.stringify( + AUTH_PUBLIC_KEY + )}`; + + // Write the contents into the .env file + fs.writeFileSync("backend/.env", backendEnv); + + console.log( + "Secret keys was generated in frontend/.env and backend/.env\n" + ); + } catch (err) { + console.error(err); + } +} + +generateKeys(); From 37ef1be13756414997ebf13ed2e4a2c2cc33e009 Mon Sep 17 00:00:00 2001 From: Nirmalya Ghosh Date: Wed, 13 Jan 2021 16:43:57 +0530 Subject: [PATCH 2/8] refactor: removes unnecessary code --- frontend/next.config.js | 4 -- frontend/package.json | 3 -- frontend/tsconfig.base.json | 19 -------- frontend/tsconfig.build.json | 21 --------- frontend/tsconfig.json | 10 ++--- frontend/tsconfig.server.json | 10 ----- frontend/tsconfig.test.json | 6 --- frontend/tslint.json | 82 ----------------------------------- 8 files changed, 5 insertions(+), 150 deletions(-) delete mode 100644 frontend/next.config.js delete mode 100644 frontend/tsconfig.base.json delete mode 100644 frontend/tsconfig.build.json delete mode 100644 frontend/tsconfig.server.json delete mode 100644 frontend/tsconfig.test.json delete mode 100644 frontend/tslint.json diff --git a/frontend/next.config.js b/frontend/next.config.js deleted file mode 100644 index e2c4de60..00000000 --- a/frontend/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - // https://nextjs.org/docs/api-reference/next.config.js/react-strict-mode - reactStrictMode: true, -}; diff --git a/frontend/package.json b/frontend/package.json index 0ae4e384..1de679cc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,6 @@ "license": "MIT", "scripts": { "dev": "next dev", - "build:analyze": "ANALYZE=true next build && tsc --project tsconfig.server.json", "build": "next build", "export": "next export", "start": "next start", @@ -41,8 +40,6 @@ "@types/pg": "^7.14.7", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", - "tslint": "^6.1.3", - "tslint-react": "^5.0.0", "typescript": "^4.1.3" } } diff --git a/frontend/tsconfig.base.json b/frontend/tsconfig.base.json deleted file mode 100644 index ae636f9a..00000000 --- a/frontend/tsconfig.base.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "allowUnreachableCode": false, - "noFallthroughCasesInSwitch": true, - "allowSyntheticDefaultImports": true, - "downlevelIteration": true, - "forceConsistentCasingInFileNames": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noUnusedLocals": true, - "sourceMap": true, - "strictNullChecks": true, - "strict": true, - "pretty": true, - "jsx": "react", - "suppressImplicitAnyIndexErrors": true - } -} diff --git a/frontend/tsconfig.build.json b/frontend/tsconfig.build.json deleted file mode 100644 index bd0351dd..00000000 --- a/frontend/tsconfig.build.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "build", - "declaration": true, - "jsx": "react", - "target": "es5", - "module": "commonjs", - "moduleResolution": "node" - }, - "exclude": [ - "build", - "node_modules", - "coverage", - "config", - "src/**/*.test.ts", - "src/**/*.test.tsx", - "src/**/*.story.tsx" - ] -} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index a9936988..930a6fce 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -4,6 +4,8 @@ "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, "noEmit": true, "esModuleInterop": true, "module": "esnext", @@ -19,10 +21,8 @@ "pages/*": ["pages/*"], "types/*": ["types/*"], "configs/*": ["configs/*"] - }, - "strict": false, - "forceConsistentCasingInFileNames": true + } }, - "exclude": ["node_modules"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"] + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] } diff --git a/frontend/tsconfig.server.json b/frontend/tsconfig.server.json deleted file mode 100644 index 54d28eba..00000000 --- a/frontend/tsconfig.server.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "commonjs", - "outDir": "dist", - "target": "es2017", - "isolatedModules": false, - "noEmit": false - } -} diff --git a/frontend/tsconfig.test.json b/frontend/tsconfig.test.json deleted file mode 100644 index 5f6d355f..00000000 --- a/frontend/tsconfig.test.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "commonjs" - } -} diff --git a/frontend/tslint.json b/frontend/tslint.json deleted file mode 100644 index 245842ea..00000000 --- a/frontend/tslint.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "extends": ["tslint-react"], - "rules": { - "align": [true, "parameters", "arguments", "statements"], - "ban": false, - "class-name": true, - "comment-format": [true, "check-space"], - "curly": true, - "eofline": false, - "forin": true, - "indent": [true, "spaces"], - "interface-name": [true, "never-prefix"], - "jsdoc-format": true, - "jsx-no-lambda": false, - "jsx-no-multiline-js": false, - "jsx-wrap-multiline": false, - "label-position": true, - "max-line-length": [true, 300], - "member-ordering": [ - true, - "public-before-private", - "static-before-instance", - "variables-before-functions" - ], - "no-any": false, - "no-arg": true, - "no-bitwise": true, - "no-console": [false], - "no-consecutive-blank-lines": true, - "no-construct": true, - "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": true, - "no-eval": true, - "no-shadowed-variable": true, - "no-string-literal": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": false, - "no-unused-expression": true, - "no-use-before-declare": true, - "one-line": [ - true, - "check-catch", - "check-else", - "check-open-brace", - "check-whitespace" - ], - "quotemark": [true, "single", "jsx-double"], - "radix": true, - "semicolon": [true, "always", "ignore-bound-class-methods"], - "switch-default": true, - "trailing-comma": false, - "triple-equals": [true, "allow-null-check"], - "typedef": [true, "parameter", "property-declaration"], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "variable-name": [ - true, - "ban-keywords", - "check-format", - "allow-leading-underscore", - "allow-pascal-case" - ], - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-module", - "check-operator", - "check-separator", - "check-type" - ] - } -} From f330e8b1edf6905a690cef92bd21da70b282f256 Mon Sep 17 00:00:00 2001 From: Nirmalya Ghosh Date: Thu, 14 Jan 2021 15:29:01 +0530 Subject: [PATCH 3/8] feat: uses Apollo instead of URQL --- frontend/components/navbar/index.tsx | 6 +- .../pages/feeds/add-new-feed-form.tsx | 46 +- frontend/components/pages/feeds/feed.tsx | 17 +- frontend/components/pages/feeds/index.tsx | 22 +- frontend/components/pages/index/index.tsx | 17 +- .../components/pages/my-account/index.tsx | 81 +-- frontend/lib/apolloClient.tsx | 85 ++++ frontend/lib/with-graphql.tsx | 48 -- frontend/package.json | 6 +- frontend/pages/_app.tsx | 11 +- frontend/pages/feeds.tsx | 17 +- frontend/pages/my-account.tsx | 39 +- frontend/yarn.lock | 469 +++++++++--------- package.json | 3 +- 14 files changed, 433 insertions(+), 434 deletions(-) create mode 100644 frontend/lib/apolloClient.tsx delete mode 100644 frontend/lib/with-graphql.tsx diff --git a/frontend/components/navbar/index.tsx b/frontend/components/navbar/index.tsx index e7335fef..8fe3db45 100644 --- a/frontend/components/navbar/index.tsx +++ b/frontend/components/navbar/index.tsx @@ -15,8 +15,6 @@ import React from "react"; const Navbar: NextComponentType = () => { const [session] = useSession(); const { colorMode, toggleColorMode } = useColorMode(); - const bgColor = { light: "white", dark: "gray.800" }; - const color = { light: "gray.800", dark: "gray.100" }; const handleToggleTheme = () => { toggleColorMode(); @@ -97,8 +95,8 @@ const Navbar: NextComponentType = () => { }; return ( - - + + { - const { colorMode } = useColorMode(); - const bgColor = { light: "white", dark: "gray.800" }; - const color = { light: "gray.800", dark: "gray.100" }; const [body, setBody] = useState(""); const [session] = useSession(); + const [ + insertFeed, + { loading: insertFeedFetching, error: insertFeedError }, + ] = useMutation(insertFeedMutation); if (!session) { return ( @@ -38,15 +37,12 @@ const AddNewFeedForm = () => { ); } - const [ - { fetching: insertFeedFetching, error: insertFeedError }, - insertFeed, - ] = useMutation(insertFeedMutation); - const handleSubmit = async () => { await insertFeed({ - author_id: session.id, - body, + variables: { + author_id: session.id, + body, + }, }); setBody(""); @@ -69,20 +65,14 @@ const AddNewFeedForm = () => { return ( {errorNode()} - + What's on your mind?