From 67b239942e0547e14b0140370a89fc6984244137 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Thu, 31 Dec 2020 09:57:23 -0300 Subject: [PATCH 01/46] First commit --- .gitignore | 18 + README.md | 25 + index.html | 148 + package.json | 25 + pages/_app.js | 43 + pages/_document.js | 68 + pages/about.js | 25 + pages/index.js | 32 + pages/login.js | 6 + pages/solution/[solution_id].js | 47 + pages/solution/add.js | 65 + public/canvas.png | Bin 0 -> 330188 bytes public/checkout.jpg | Bin 0 -> 228382 bytes src/Copyright.js | 16 + src/Link.js | 63 + src/ProTip.js | 35 + src/actions/Login.js | 88 + src/actions/actionsType.js | 31 + src/api/BoardApi.js | 28 + src/api/UserApi.js | 79 + src/api/__tests__/UserApi.test.js | 116 + src/components/AppBar.js | 178 + src/components/Breadcumb.js | 25 + src/components/Canvas/index.js | 126 + src/components/ListSolutions.js | 41 + src/components/Login/LoginContainer.js | 23 + src/components/Login/index.js | 290 ++ src/components/Search.js | 44 + src/components/Solution.js | 70 + src/components/solution/Diagrams.js | 51 + src/components/solution/MainTabs.js | 76 + src/components/solution/References.js | 51 + src/components/solution/SolutionDetails.js | 81 + src/components/solution/Tags.js | 41 + src/components/solution/Teams.js | 36 + src/configureStore.js | 16 + src/lib/apolloClient.js | 15 + src/reducers/__tests__/UserReducer.ts | 121 + src/reducers/boardReducer.js | 16 + src/reducers/context.js | 10 + src/reducers/index.js | 7 + src/reducers/initialState.js | 5 + src/reducers/userReducer.js | 63 + src/theme.js | 22 + yarn.lock | 4288 ++++++++++++++++++++ 45 files changed, 6654 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 index.html create mode 100644 package.json create mode 100644 pages/_app.js create mode 100644 pages/_document.js create mode 100644 pages/about.js create mode 100644 pages/index.js create mode 100644 pages/login.js create mode 100644 pages/solution/[solution_id].js create mode 100644 pages/solution/add.js create mode 100644 public/canvas.png create mode 100644 public/checkout.jpg create mode 100644 src/Copyright.js create mode 100644 src/Link.js create mode 100644 src/ProTip.js create mode 100644 src/actions/Login.js create mode 100644 src/actions/actionsType.js create mode 100644 src/api/BoardApi.js create mode 100644 src/api/UserApi.js create mode 100644 src/api/__tests__/UserApi.test.js create mode 100644 src/components/AppBar.js create mode 100644 src/components/Breadcumb.js create mode 100644 src/components/Canvas/index.js create mode 100644 src/components/ListSolutions.js create mode 100644 src/components/Login/LoginContainer.js create mode 100644 src/components/Login/index.js create mode 100644 src/components/Search.js create mode 100644 src/components/Solution.js create mode 100644 src/components/solution/Diagrams.js create mode 100644 src/components/solution/MainTabs.js create mode 100644 src/components/solution/References.js create mode 100644 src/components/solution/SolutionDetails.js create mode 100644 src/components/solution/Tags.js create mode 100644 src/components/solution/Teams.js create mode 100644 src/configureStore.js create mode 100644 src/lib/apolloClient.js create mode 100644 src/reducers/__tests__/UserReducer.ts create mode 100644 src/reducers/boardReducer.js create mode 100644 src/reducers/context.js create mode 100644 src/reducers/index.js create mode 100644 src/reducers/initialState.js create mode 100644 src/reducers/userReducer.js create mode 100644 src/theme.js create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed07c2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Next.js +/.next diff --git a/README.md b/README.md new file mode 100644 index 0000000..4af9c80 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Next.js example + +## How to use + +Download the example [or clone the repo](https://github.com/mui-org/material-ui): + +```sh +curl https://codeload.github.com/mui-org/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/nextjs +cd nextjs +``` + +Install it and run: + +```sh +npm install +npm run dev +``` + +or: + +[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/mui-org/material-ui/tree/master/examples/nextjs) + +## The idea behind the example + +[Next.js](https://github.com/zeit/next.js) is a framework for server-rendered React apps. diff --git a/index.html b/index.html new file mode 100644 index 0000000..c20c475 --- /dev/null +++ b/index.html @@ -0,0 +1,148 @@ + + + + + The Business Model Canvas + + + + + + + +
+

The Business Model Canvas

+ + + + + + + + + + + + + + + + + + + + +
+

Key Partners

+

Who are our key partners?

+

Who are our key suppliers?

+

Which key resources are we acquiring from partners?

+

Which key activities our partners perform?

+

Motivation for partnerships

+

+ Optimization and economy
+ Reduction of risk and uncertainty
+ Acquisition of particular resources and activities
+

+
+

Key Activities

+

What key activities do our value propostions require?

+

Our distribution channels?

+

Customer relationships?

+

Revenue Streams?

+

Categories

+

+ Production
+ Problem Solving
+ Platform/Network
+

+
+

Value Proposition

+

Which value do we deliver to the customer?

+

Which one of our customer's problems are we helping to solve?

+

What bundles of products and services are we offering to each customer segment?

+

Which customer needs are we satisfying?

+

Characteristics

+

+ Newness
+ Performance
+ Customization
+ "Getting Job Done"
+ Design
+ Brand/Status
+ Price
+ Cost Reduction
+ Risk Reduction
+ Accessibility
+ Convenience/Usability
+

+
+

Customer Relationship

+

What type of relationship each customer segment expects?

+

Which ones have we established?

+

How are they integrated with rest of the biz. model?

+

How much they cost us?

+

Examples

+

+ Personal assistance
+ Self-service
+ Automated services
+ Communities
+ Co-creation
+

+
+

Customer Segments

+

For whom are we creating value?

+

Who are our most important customers?

+

Examples

+

+ Mass market
+ Niche market
+ Segmented
+ Diversified
+ Multi-sided platform
+

+
+

Key Resources

+

What key resources our value proposition requires?

+

Our distribution channels? Customer relationships?

+

Revenue Streams?

+

Types of resources

+

+ Physical
+ Intellectual (brand, patents, copyrights, data)
+ Human
+ Financial +

+
+

Channels

+

Through which channels our customer segments want to be reached?

+

How are we reaching them now?

+

How are channels integrated?

+

Which ones work best?

+

Which ones are most cost efficient?

+

How are we integrating them with customer routines?

+
+

Cost Structure

+

What are most important costs inherent to our business model?

+

Which key resources are most expensive?

+

Which key activities are most expensive?

+

Is your business more?

+

Cost driven(cost structure, low price prop, maximum automation, extensive outsourcing)

+

Value driven (focused on value creation, premium value prop)

+
+

Revenue Streams

+

For what value are our customers willing to pay?

+

What are they currently paying for?

+

How are they paying?

+

How would they prefer to pay?

+

How much each revenue stream contributes overall?

+
+ +
+ + + + + + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..5780ea0 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "nextjs", + "version": "4.0.0", + "private": true, + "dependencies": { + "@material-ui/core": "latest", + "@material-ui/icons": "^4.11.2", + "axios": "^0.21.1", + "clsx": "latest", + "next": "latest", + "prop-types": "latest", + "react": "latest", + "react-dom": "latest", + "react-redux": "^7.2.2", + "redux": "^4.0.5", + "redux-devtools-extension": "^2.13.8", + "redux-thunk": "^2.3.0" + }, + "scripts": { + "dev": "next", + "build": "next build", + "start": "next start", + "post-update": "echo \"codesandbox preview only, need an update\" && yarn upgrade --latest" + } +} diff --git a/pages/_app.js b/pages/_app.js new file mode 100644 index 0000000..1511a69 --- /dev/null +++ b/pages/_app.js @@ -0,0 +1,43 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Head from 'next/head'; +import { ThemeProvider } from '@material-ui/core/styles'; +import CssBaseline from '@material-ui/core/CssBaseline'; +import theme from '../src/theme'; +import { Provider } from "react-redux"; +import configureStore from "../src/configureStore"; + +export default function MyApp(props) { + const { Component, pageProps } = props; + const store = configureStore(true); + + React.useEffect(() => { + // Remove the server-side injected CSS. + const jssStyles = document.querySelector('#jss-server-side'); + if (jssStyles) { + jssStyles.parentElement.removeChild(jssStyles); + } + }, []); + + return ( + + + Architecture Center - Sensedia + + + + {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} + + + + + + + + ); +} + +MyApp.propTypes = { + Component: PropTypes.elementType.isRequired, + pageProps: PropTypes.object.isRequired, +}; diff --git a/pages/_document.js b/pages/_document.js new file mode 100644 index 0000000..c609451 --- /dev/null +++ b/pages/_document.js @@ -0,0 +1,68 @@ +import React from 'react'; +import Document, { Html, Head, Main, NextScript } from 'next/document'; +import { ServerStyleSheets } from '@material-ui/core/styles'; +import theme from '../src/theme'; + +export default class MyDocument extends Document { + render() { + return ( + + + {/* PWA primary color */} + + + + +
+ + + + ); + } +} + +// `getInitialProps` belongs to `_document` (instead of `_app`), +// it's compatible with server-side generation (SSG). +MyDocument.getInitialProps = async (ctx) => { + // Resolution order + // + // On the server: + // 1. app.getInitialProps + // 2. page.getInitialProps + // 3. document.getInitialProps + // 4. app.render + // 5. page.render + // 6. document.render + // + // On the server with error: + // 1. document.getInitialProps + // 2. app.render + // 3. page.render + // 4. document.render + // + // On the client + // 1. app.getInitialProps + // 2. page.getInitialProps + // 3. app.render + // 4. page.render + + // Render app and page and get the context of the page with collected side effects. + const sheets = new ServerStyleSheets(); + const originalRenderPage = ctx.renderPage; + + ctx.renderPage = () => + originalRenderPage({ + enhanceApp: (App) => (props) => sheets.collect(), + }); + + const initialProps = await Document.getInitialProps(ctx); + + return { + ...initialProps, + // Styles fragment is rendered after the app and page rendering finish. + styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()], + }; +}; diff --git a/pages/about.js b/pages/about.js new file mode 100644 index 0000000..1b0c0da --- /dev/null +++ b/pages/about.js @@ -0,0 +1,25 @@ +import React from 'react'; +import Container from '@material-ui/core/Container'; +import Typography from '@material-ui/core/Typography'; +import Box from '@material-ui/core/Box'; +import Button from '@material-ui/core/Button'; +import ProTip from '../src/ProTip'; +import Link from '../src/Link'; +import Copyright from '../src/Copyright'; + +export default function About() { + return ( + + + + Next.js example + + + + + + + ); +} diff --git a/pages/index.js b/pages/index.js new file mode 100644 index 0000000..1aeac1b --- /dev/null +++ b/pages/index.js @@ -0,0 +1,32 @@ +import React from 'react'; +import Container from '@material-ui/core/Container'; +import AppBar from '../src/components/AppBar'; +import Search from '../src/components/Search'; +import ListSolutions from '../src/components/ListSolutions'; +import { Button, makeStyles } from '@material-ui/core'; + +const useStyles = makeStyles((theme) => ({ + button: { + margin: theme.spacing(1), + }, + buttonAlign:{ + textAlign: "right" + } +})); + +export default function Index() { + + const classes = useStyles(); + + return ( + + +
+ +
+ + + +
+ ); +} diff --git a/pages/login.js b/pages/login.js new file mode 100644 index 0000000..490d356 --- /dev/null +++ b/pages/login.js @@ -0,0 +1,6 @@ +import React from 'react'; +import LoginContainer from "../src/components/Login/LoginContainer" + +export default function Index() { + return ; +} diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js new file mode 100644 index 0000000..4faabb2 --- /dev/null +++ b/pages/solution/[solution_id].js @@ -0,0 +1,47 @@ +import React from 'react'; +import Container from '@material-ui/core/Container'; +import AppBar from '../../src/components/AppBar'; +import { useRouter } from 'next/router' +import { Grid } from '@material-ui/core'; +import Breadcrumbs from '../../src/components/Breadcumb'; +import SolutionDetails from '../../src/components/solution/SolutionDetails'; +import MainTabs from '../../src/components/solution/MainTabs'; +import Tags from '../../src/components/solution/Tags'; +import Teams from '../../src/components/solution/Teams'; +import References from '../../src/components/solution/References'; +import Diagrams from '../../src/components/solution/Diagrams'; + +export default function Solution() { + + const router = useRouter() + const { solution_id } = router.query + + console.log("solution_id",solution_id); + + return ( + <> + + +
+ +
+ + + + + + +
+ +
+ +
+ +
+ +
+
+
+ + ); +} \ No newline at end of file diff --git a/pages/solution/add.js b/pages/solution/add.js new file mode 100644 index 0000000..e2c1db9 --- /dev/null +++ b/pages/solution/add.js @@ -0,0 +1,65 @@ +import React from 'react'; +import Container from '@material-ui/core/Container'; +import AppBar from '../../src/components/AppBar'; +import { Button, Card, CardContent, Divider, Grid, TextField, Typography } from '@material-ui/core'; +import Breadcrumbs from '../../src/components/Breadcumb'; +import { Check } from '@material-ui/icons'; + +export default function addSolution() { + + return ( + <> + + +
+ +
+ + + + + + Add new solution + + +
+ + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+
+
+
+
+ + ); +} \ No newline at end of file diff --git a/public/canvas.png b/public/canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..05dbec1ce77971e9dfd65359d1a4e860f7211b2d GIT binary patch literal 330188 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 z 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 z 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 G=YIg&kbB4g literal 0 HcmV?d00001 diff --git a/public/checkout.jpg b/public/checkout.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2ebaf4a6a1a64d6dd20ebe81bc7fec1b2520664 GIT binary patch literal 228382 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

GI%U%c|Bn}&o z6a+&d*DCzoVVEdArJB0#96(=)i>h>Kep>?7-3X&O(4?)Xh16PQd8dAlks4Nn^#w#w zA6@+ZpFP}DOr`*{K&zEmUw!rl>Z7J72di*vbO6P;r{pDu40xA61t9q9>V5x3Fj&PC z6Hh)!*DEnf+6(shZ$U0DVvtL)k<+!Wc1y{0_|BXbW;cY}bWgtw*-%#LGdryJFL{cb z_CIU>>-8#|Xm_bKS*d~c;T>(ntfr7CP_h4=Yh!+1+(C8 z9txC6?`23hVy-tJeSc_4nuqg#g2#W7P=nS=X(LtJlMwIZmG* zRS;#&P0Q+p9xd66cm<_ScVXoQ=Eum*6oTn zHQ|RWjNiRqR>{OzxTxeejwn9oiVvCM0&SY}2+$^^Br$@G=O=lSGAD+z;v%ibx%Ds) z%Uo0?Z3VjC*rjX$O2WYdS}`q}4mm0t&tfTq*x+v#=A@3s4Sr3U&N{CWNk`^-z+S<` zpPsz-WC~%)nP!q^+Bv&SA;8;FkV2r0eQ)5L;=|cioj@OY8nMHDtAiC`*^ur&6PWuFZWZ7hO4`yEJK>0kI+1^l^4yD;>|6l-QoE; z9lmR(4hyji9P$$>sPifWu4h{>hHg4>?%;6y0v>t>*tCyX+-#FnebKVi6QQAXC1n52 z5+vrz7=xG99T?_(eK6CXz5_xx^zP6}DlG7wKgfxkcB$x>v4ja$-||NZr%3U9S#Egh z2>N3r8W7ivB(*Q+Mn$<{l`Ftw75n6#{@n^fJ2#E*++5}+G| z8gnBsfq#ozx+YmTE2`;O@`Um1PG*VbhQhhO#;dZ&H|oV%xybD7FhNW!EPQlf?fg#$ zh)J0a2B_e^d2-dKgGSn4dULl*qy_q`bC>VW)OM0)Sb7_jm1W`Th#bHe=0i~Wqc?VQ z`M;>T+@>n1dQ(h@Jh$dS@<%7GJ(}IBg7N-?5{E1CItvTr9)a0a3f0TOKZyDf6lZuY z23w0w$Ao7J4unJ)fcvE1Q*IMkd4o@PW_WfMZp&T$k2!nbzd?Q(E4L1biM@qsEBG1` z5}B-bQ~#}j|G&GWrG{rJt1DJEt-y6{L?93QrdC{Z%$!I(OxOu()~X&~H)NiwRC2pJ zct|c%LT0qCa0J$g*LC+9$dPo^y3?p_Xbr(7PsQ=?gfG*K}v9K zixUVmSc|WP6_+GH3DyF^rC4xS#U(&-2+~!wcyXsEtZ)Cmz4pEP-gEZh4}Npbycr{7 zj5+2Q^L?N9d7^D(up}yvsX9bA&gJ}$`wG9l(gZ)ML0o|-0WTYaJe3aU{v*@y|J^tL zxmv?_moso-t>UYVH^-~n7VJl)=#A*t z(e~eb+&Jd5{YgE-Nf!S~4y?4lsv2<5Xqax ziwaqBM%q&^M>9P)ub>HPMHw1}Gh{-_BJi{K!sLtMU6px@O9%H^K6vbrv38+#|NRN0 z*?;|jU4_ooP6^IEMAzG$sn~qqkvXXeyHyNkU=|u&94b zQVx}}y6g>`&>NluR0)F;ljNnjNqmGoHNF{cZ_J+Bb$RX83^G~QG~XX^lR9wr#vs1d zAP_l?{4a0>C$rFYBH!aHLf0i)r@N0LCCMyga=}ZDV z;}<-IYVyaeX6x42&fTla*1J^Uu-0|$x5wgw89Tc*e?1R1Aw_TWY6GH}?#v2^%t-w` zbT>dIoZ9DGOyO-2oQk9C?8QPnRAbX(XRb3>vU=Ii>J)KTcQk_jAgSZ62Fz91xq#3P4birl z5$Ka9S<2Xicc@uxLX-z8oA>3yvp$Ys`bq0Q<`!l6Hb*S(7TSHU&r2%mc|5cftvFeI zHl8c4JkM0lp^&j|RqSShE%Tf|)hN&v%V$ITs4YdpSpu|V5}oMv;#oTb_ns}Pd~{Zl zc~5cD85(u(kG#`GM$K=OWE}MOkV}z0t-JM;du{^_@87kjU*#kp*JdA=D7M-F zreyTUsT32hkC3?igFMCE#V

R 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 + {'Copyright © '} + + Your Website + {' '} + {new Date().getFullYear()} + {'.'} + + ); +} diff --git a/src/Link.js b/src/Link.js new file mode 100644 index 0000000..f51c9c7 --- /dev/null +++ b/src/Link.js @@ -0,0 +1,63 @@ +/* eslint-disable jsx-a11y/anchor-has-content */ +import React from 'react'; +import PropTypes from 'prop-types'; +import clsx from 'clsx'; +import { useRouter } from 'next/router'; +import NextLink from 'next/link'; +import MuiLink from '@material-ui/core/Link'; + +const NextComposed = React.forwardRef(function NextComposed(props, ref) { + const { as, href, ...other } = props; + + return ( + + + + ); +}); + +NextComposed.propTypes = { + as: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + prefetch: PropTypes.bool, +}; + +// A styled version of the Next.js Link component: +// https://nextjs.org/docs/#with-link +function Link(props) { + const { + href, + activeClassName = 'active', + className: classNameProps, + innerRef, + naked, + ...other + } = props; + + const router = useRouter(); + const pathname = typeof href === 'string' ? href : href.pathname; + const className = clsx(classNameProps, { + [activeClassName]: router.pathname === pathname && activeClassName, + }); + + if (naked) { + return ; + } + + return ( + + ); +} + +Link.propTypes = { + activeClassName: PropTypes.string, + as: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + className: PropTypes.string, + href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), + naked: PropTypes.bool, + onClick: PropTypes.func, + prefetch: PropTypes.bool, +}; + +export default React.forwardRef((props, ref) => ); diff --git a/src/ProTip.js b/src/ProTip.js new file mode 100644 index 0000000..b541be4 --- /dev/null +++ b/src/ProTip.js @@ -0,0 +1,35 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Link from '@material-ui/core/Link'; +import SvgIcon from '@material-ui/core/SvgIcon'; +import Typography from '@material-ui/core/Typography'; + +function LightBulbIcon(props) { + return ( + + + + ); +} + +const useStyles = makeStyles((theme) => ({ + root: { + margin: theme.spacing(6, 0, 3), + }, + lightBulb: { + verticalAlign: 'middle', + marginRight: theme.spacing(1), + }, +})); + +export default function ProTip() { + const classes = useStyles(); + return ( + + + Pro tip: See more{' '} + templates on the + Material-UI documentation. + + ); +} diff --git a/src/actions/Login.js b/src/actions/Login.js new file mode 100644 index 0000000..4962b13 --- /dev/null +++ b/src/actions/Login.js @@ -0,0 +1,88 @@ +import actionsType from "./actionsType"; +import UserApi from "../api/UserApi"; +import axios from "axios"; + +function processLogin(dispatch, data) { + let { success, message, token, user } = data; + + if (!success) { + throw data; + } + + if (success) { + localStorage.setItem("token", JSON.stringify(token)); + localStorage.setItem("user", JSON.stringify(user)); + } + + axios.defaults.headers.common["Authorization"] = JSON.stringify(token); + dispatch(loginSuccess(success, message, user)); +} + +export function login(email, password){ + return (dispatch) => { + dispatch({ type: actionsType.LOADING_LOGIN }); + + return UserApi.login(email, password) + .then(({ data }) => { + processLogin(dispatch, data); + }) + .catch(({ success, message }) => { + dispatch(loginError(success, message, {})); + }); + }; +} + +export function oauthFacebook(data) { + return (dispatch) => { + dispatch({ type: actionsType.LOADING_LOGIN }); + + return UserApi.facebookLogin(data) + .then(({ data }) => { + processLogin(dispatch, data); + }) + .catch(({ success, message }) => { + dispatch(loginError(success, message, {})); + }); + }; +} + +export function logout() { + return (dispatch) => { + return UserApi.logout().then(() => { + localStorage.removeItem("token"); + localStorage.removeItem("user"); + localStorage.removeItem("state"); + dispatch(logoutSuccess()); + }); + }; +} + +export function loginSuccess( + success, + message, + user +) { + return { + type: actionsType.LOGIN_SUCCESS, + success: success, + message: message, + user + }; +} + +export function loginError( + LOGIN_SUCCESS, + message, + user +){ + return { + type: actionsType.LOGIN_ERROR, + success: success, + message: message, + user + }; +} + +export function logoutSuccess() { + return { type: actionsType.LOGOUT_SUCCESS }; +} diff --git a/src/actions/actionsType.js b/src/actions/actionsType.js new file mode 100644 index 0000000..ba42363 --- /dev/null +++ b/src/actions/actionsType.js @@ -0,0 +1,31 @@ +const actionsType = { + TOGGLE_INPUT_NEW_TASK: "TOGGLE_INPUT_NEW_TASK", + CREATE_NEW_TASK: "CREATE_NEW_TASK", + OPEN_MODAL_TASK: "OPEN_MODAL_TASK", + CLOSE_MODAL: "CLOSE_MODAL", + UPDATE_TASK_COLUMN: "UPDATE_TASK_COLUMN", + UPDATE_TASK_POSITION: "UPDATE_TASK_POSITION", + LOAD_COLUMNS_SUCCESS: "LOAD_COLUMNS_SUCCESS", + LOADING_COLUMNS: "LOADING_COLUMNS", + LOGIN_SUCCESS: "LOGIN_SUCCESS", + LOGIN_ERROR: "LOGIN_ERROR", + LOADING_LOGIN: "LOADING_LOGIN", + LOGOUT_SUCCESS: "LOGOUT_SUCCESS", + CREATE_ACCOUNT_SEND: "CREATE_ACCOUNT_SEND", + CREATE_ACCOUNT_SUCCESS: "CREATE_ACCOUNT_SUCCESS", + CREATE_ACCOUNT_ERROR: "CREATE_ACCOUNT_ERROR", + SET_FIRST_ACCESS: "SET_FIRST_ACCESS", + UPDATE_ACCOUNT_USER: "UPDATE_ACCOUNT_USER", + UPLOAD_IMAGE_USER_START: "UPLOAD_IMAGE_USER_START", + UPLOAD_IMAGE_USER_SUCCESS: "UPLOAD_IMAGE_USER_SUCCESS", + UPLOAD_IMAGE_USER_FAIL: "UPLOAD_IMAGE_USER_FAIL", + BOARDS_LOADING: "LOADING_BOARDS", + BOARDS_LOADED_SUCCESS: "BOARDS_LOADED_SUCCESS", + BOARDS_LOADING_ERROR: "BOARDS_LOADING_ERROR" +}; + +export const ADD_BOARD_LOADING = "ADD_BOARD_LOADING"; +export const ADD_BOARD_LOADED = "ADD_BOARD_LOADED"; +export const ADD_BOARD_ERROR = "ADD_BOARD_ERROR"; + +export default actionsType; diff --git a/src/api/BoardApi.js b/src/api/BoardApi.js new file mode 100644 index 0000000..27b4f13 --- /dev/null +++ b/src/api/BoardApi.js @@ -0,0 +1,28 @@ +// @flow +import axios from "axios"; + +class BoardApi { + static listAllByUser(idUser: Number) { + return axios + .get(`/api/v1/boards/${idUser}`) + .then(response => { + return response; + }) + .catch(({ response }) => { + return response; + }); + } + + static addBoard(name: String) { + return axios + .post(`/api/v1/board`, { name: name }) + .then(response => { + return response; + }) + .catch(({ response }) => { + return response; + }); + } +} + +export default BoardApi; diff --git a/src/api/UserApi.js b/src/api/UserApi.js new file mode 100644 index 0000000..674059d --- /dev/null +++ b/src/api/UserApi.js @@ -0,0 +1,79 @@ +// @flow +import axios from "axios"; + +class UserApi { + static login(email, password) { + return axios + .post("/api/v1/login", { email, password }) + .then(response => { + return response; + }) + .catch(({ response }) => { + return response; + }); + } + + static facebookLogin(data) { + return axios + .post("/api/v1/oauth/facebook", { + access_token: data + }) + .then(response => { + return response; + }) + .catch(({ response }) => { + return response; + }); + } + + static logout() { + return axios + .post("/api/v1/logout") + .then(response => { + return response; + }) + .catch(error => { + return error; + }); + } + + static createAccount(email, password) { + return axios + .post("/api/v1/user", { + email, + password + }) + .then(function(response) { + return response; + }) + .catch(function(error) { + return error; + }); + } + + static updateAccountUser(user) { + let data = new FormData(); + data.append("user", JSON.stringify(user)); + data.append("image", user.image); + + let config = { + onUploadProgress: function(progressEvent) { + return Math.round((progressEvent.loaded * 100) / progressEvent.total); + }, + headers: { + "Content-Type": "multipart/form-data" + } + }; + + return axios + .put(`/api/v1/user/${user._id}`, data, config) + .then(function(response) { + return response; + }) + .catch(function(error) { + return error; + }); + } +} + +export default UserApi; diff --git a/src/api/__tests__/UserApi.test.js b/src/api/__tests__/UserApi.test.js new file mode 100644 index 0000000..ca5331b --- /dev/null +++ b/src/api/__tests__/UserApi.test.js @@ -0,0 +1,116 @@ +import { login, logout } from "../../actions/Login"; +import { updateAccountUser, createAccount } from "../../actions/User"; +import configureStore from "../../configureStore"; +import axios from "axios"; +import MockAdapter from "axios-mock-adapter"; +import "jest-localstorage-mock"; + +describe("User API", () => { + let store = configureStore(); + let mock: MockAdapter; + + store.subscribe(() => { + localStorage.setItem("state", JSON.stringify(store.getState())); + }); + + beforeEach(() => { + mock = new MockAdapter(axios); + }); + + afterEach(() => { + mock.restore(); + mock.reset(); + }); + + it("Shoud to create user account", () => { + let response = { + success: true, + message: "User account created with successfull!" + }; + + let expectedState = { + success: true, + message: "User account created with successfull!", + showPreloader: false, + user: {} + }; + + mock.onPost(`/api/v1/user`).reply(200, response); + + store + .dispatch(createAccount("email@examaple.com", "mypassword")) + .then(() => { + let currentState = store.getState().userReducer; + + expect(currentState).toEqual(expectedState); + }); + }); + + it("Shoud to authenticate a user and set token localstorage", () => { + let response = { + success: true, + message: "Login User successfull!", + token: "asijaosijas1109281029812", + user: { + name: "Name example", + email: "email@example.com", + firstAccess: true + }, + showPreloader: false + }; + + mock.onPost("/api/v1/login").reply(200, response); + + const expectedState = [ + { + success: response.success, + message: response.message, + user: response.user, + showPreloader: response.showPreloader + } + ]; + + store.dispatch(login(response.user.email, "12345")).then(() => { + expect([store.getState().userReducer]).toEqual(expectedState); + expect(response.token).toEqual(JSON.parse(localStorage.getItem("token") as string)); + expect(response.user).toEqual(JSON.parse(localStorage.getItem("user") as string)); + }); + }); + + it("Shoud to update user account", () => { + let response = { + success: true + }; + + let user = { + name: "nameExample", + email: "email@example.com", + lastname: "lastname example", + phone: "1111-1111", + firstAccess: false + }; + let _id = "12121212"; + + mock.onPut(`/api/v1/user/${_id}`).reply(200, response); + + store.dispatch(updateAccountUser(user)).then(() => { + let expectedUserState = store.getState().userReducer.user; + + expect(expectedUserState).toEqual(user); + }); + }); + + it("Shoud logout a user and clean token and user in the localstorage", () => { + let response = { + success: true, + message: "Logout succesfull!" + }; + + mock.onPut(`/api/v1/logout`).reply(200, response); + + store.dispatch(logout()).then(() => { + expect(localStorage.getItem("token")).toEqual(null); + expect(localStorage.getItem("user")).toEqual(null); + }); + }); +}); diff --git a/src/components/AppBar.js b/src/components/AppBar.js new file mode 100644 index 0000000..312116e --- /dev/null +++ b/src/components/AppBar.js @@ -0,0 +1,178 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import AppBar from '@material-ui/core/AppBar'; +import Toolbar from '@material-ui/core/Toolbar'; +import IconButton from '@material-ui/core/IconButton'; +import Typography from '@material-ui/core/Typography'; +import Badge from '@material-ui/core/Badge'; +import MenuItem from '@material-ui/core/MenuItem'; +import Menu from '@material-ui/core/Menu'; +import AccountCircle from '@material-ui/icons/AccountCircle'; +import MailIcon from '@material-ui/icons/Mail'; +import NotificationsIcon from '@material-ui/icons/Notifications'; +import MoreIcon from '@material-ui/icons/MoreVert'; +import { Button } from '@material-ui/core'; +import AddIcon from '@material-ui/icons/Add'; +import Link from 'next/link' + +const useStyles = makeStyles((theme) => ({ + grow: { + flexGrow: 1, + }, + title: { + display: 'none', + [theme.breakpoints.up('sm')]: { + display: 'block', + }, + color: 'white' + }, + sectionDesktop: { + display: 'none', + [theme.breakpoints.up('md')]: { + display: 'flex', + }, + }, + sectionMobile: { + display: 'flex', + [theme.breakpoints.up('md')]: { + display: 'none', + }, + }, +})); + +export default function PrimarySearchAppBar() { + const classes = useStyles(); + const [anchorEl, setAnchorEl] = React.useState(null); + const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null); + + const isMenuOpen = Boolean(anchorEl); + const isMobileMenuOpen = Boolean(mobileMoreAnchorEl); + + const handleProfileMenuOpen = (event) => { + setAnchorEl(event.currentTarget); + }; + + const handleMobileMenuClose = () => { + setMobileMoreAnchorEl(null); + }; + + const handleMenuClose = () => { + setAnchorEl(null); + handleMobileMenuClose(); + }; + + const handleMobileMenuOpen = (event) => { + setMobileMoreAnchorEl(event.currentTarget); + }; + + const menuId = 'primary-search-account-menu'; + const renderMenu = ( +

+ Profile + My account + + ); + + const mobileMenuId = 'primary-search-account-menu-mobile'; + const renderMobileMenu = ( + + + + + + + +

Messages

+
+ + + + + + +

Notifications

+
+ + + + +

Profile

+
+
+ ); + + return ( +
+ + + + + + Sensedia + + + + +
+
+ + + + + + +
+
+ + + +
+ + + {renderMobileMenu} + {renderMenu} +
+ ); +} \ No newline at end of file diff --git a/src/components/Breadcumb.js b/src/components/Breadcumb.js new file mode 100644 index 0000000..d786133 --- /dev/null +++ b/src/components/Breadcumb.js @@ -0,0 +1,25 @@ +import React from 'react'; +import Typography from '@material-ui/core/Typography'; +import Breadcrumbs from '@material-ui/core/Breadcrumbs'; +import Link from '@material-ui/core/Link'; + +function handleClick(event) { + event.preventDefault(); + console.info('You clicked a breadcrumb.'); +} + +const BreadCumbs = () => { + return ( + + + Material-UI + + + Core + + Breadcrumb + + ); +} + +export default BreadCumbs; \ No newline at end of file diff --git a/src/components/Canvas/index.js b/src/components/Canvas/index.js new file mode 100644 index 0000000..11c3eb8 --- /dev/null +++ b/src/components/Canvas/index.js @@ -0,0 +1,126 @@ +import React from 'react'; +import { Chip, Grid, makeStyles, Paper, Typography } from '@material-ui/core'; +import purple from '@material-ui/core/colors/purple'; +const useStyles = makeStyles(theme => ({ + column: { + height: 600 + }, + mainAdvantages:{ + height: 150, + + }, + mainDificulties:{ + height: 150, + + }, + fullRetangle: { + height: '100%', + + }, + halfRetangle: { + height: '50%', + + }, + titles:{ + padding: 5 + } +})); + +const useStylesPostIt = makeStyles({ + postIr: { + backgroundColor: purple[100], + margin: 5, + padding: 5 + } +}); + +const PostIt = ({children}) => { + const classes = useStylesPostIt(); + + return ( +
+ {children} +
+ ); +} + +const canvas = () => { + + const classes = useStyles(); + + return ( + <> + + + + + Dependencies + + + Solução de vault + + + Gateway de pagamento + + + + + + + Technology + + + + + Patterns + + + + + + + What problem does this solution solve? + + + + + + + Functional requirements + + + + + Non functional requirements + + + + + + + Context + + + + + + + + + Main dificulties + + + + + + + Main advantages + + + + + + ) +} + +export default canvas; \ No newline at end of file diff --git a/src/components/ListSolutions.js b/src/components/ListSolutions.js new file mode 100644 index 0000000..8acc59e --- /dev/null +++ b/src/components/ListSolutions.js @@ -0,0 +1,41 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Grid from '@material-ui/core/Grid'; +import Solution from './Solution'; + +const useStyles = makeStyles((theme) => ({ + root: { + flexGrow: 1, + }, +})); + +export default function ListSolutions() { + const classes = useStyles(); + + return ( +
+ + + + + + + + + + + + + + + + + + + + + + +
+ ); +} \ No newline at end of file diff --git a/src/components/Login/LoginContainer.js b/src/components/Login/LoginContainer.js new file mode 100644 index 0000000..0589985 --- /dev/null +++ b/src/components/Login/LoginContainer.js @@ -0,0 +1,23 @@ +import { connect } from "react-redux"; +import { login, oauthFacebook } from "../../actions/Login"; +import FormLogin from "./index"; + +const mapDispatchToProps = (dispatch) => { + return { + onLogin(email, password) { + dispatch(login(email, password)); + }, + oauthFacebook(accessToken) { + dispatch(oauthFacebook(accessToken)); + } + }; +}; + +const mapStateToProps = (state) => ({ state: state.userReducer }); + +const FormLoginContainer = connect( + mapStateToProps, + mapDispatchToProps +)(FormLogin); + +export default FormLoginContainer; diff --git a/src/components/Login/index.js b/src/components/Login/index.js new file mode 100644 index 0000000..1167cc0 --- /dev/null +++ b/src/components/Login/index.js @@ -0,0 +1,290 @@ +import * as React from "react"; +import { withStyles, Theme } from "@material-ui/core/styles"; +import Grid from "@material-ui/core/Grid"; +import Paper from "@material-ui/core/Paper"; +import Typography from "@material-ui/core/Typography"; +import InputAdornment from "@material-ui/core/InputAdornment"; +import TextField from "@material-ui/core/TextField"; +import LockIcon from "@material-ui/icons/Https"; +import EmailIcon from "@material-ui/icons/Email"; +import Check from "@material-ui/icons/Check"; +import Button from "@material-ui/core/Button"; +import { makeStyles } from '@material-ui/styles'; +import CircularProgress from "@material-ui/core/CircularProgress"; +import green from "@material-ui/core/colors/green"; + +const styles = (theme) => ({ + root: { + flexGrow: 1 + }, + paper: { + padding: theme.spacing(1) * 2, + height: "100vh", + display: "flex", + alignItems: "center" + }, + backgroundGreen: { + backgroundColor: theme.palette.primary.main + }, + text: { + width: "100%" + }, + link: { + textDecoration: "none", + color: theme.palette.secondary.main, + "&:hover": { + textDecoration: "underline" + } + }, + learnMore: { + color: "white", + borderColor: "white" + }, + wrapper: { + margin: theme.spacing(1), + position: "relative" + }, + buttonProgress: { + color: green[500], + position: "absolute", + top: "50%", + right: 133.69 / 2 - 33 / 2, + marginTop: -12, + marginLeft: -12 + }, + buttonSuccess: { + backgroundColor: green[500], + "&:hover": { + backgroundColor: green[700] + } + }, + textError: { + color: theme.palette.error.main + } +}); + + + +class Login extends React.Component { + state = { + email: "", + password: "", + emailFieldEmpty: false, + passwordFieldEmpty: false + }; + + _inputEmail; + + constructor(props) { + super(props); + + this._onClickEnter = this._onClickEnter.bind(this); + this.responseFacebook = this.responseFacebook.bind(this); + this._inputEmail = {focus(){}}; + } + + componentDidMount() { + if (this._inputEmail !== undefined) { + this._inputEmail.focus(); + } + } + + _onLogin() { + let { onLogin } = this.props; + + this.setState({ passwordFieldEmpty: false, emailFieldEmpty: false }); + + if (!this.state.email.length) { + this.setState({ emailFieldEmpty: true }); + + return; + } else if (!this.state.password.length) { + this.setState({ passwordFieldEmpty: true }); + + return; + } + + onLogin(this.state.email, this.state.password); + } + + _onClickEnter(event) { + if (event.key == "Enter") { + this._onLogin(); + } + } + + responseFacebook(res) { + this.props.oauthFacebook(res.accessToken); + } + + render() { + let { + classes, + state: { showPreloader, success, message } + } = this.props; + + const buttonClassname = makeStyles({ + [classes.buttonSuccess]: success + }); + + return ( + + + + + +
+
+ + Welcome to the Sensedia Architecture Center. + + + Share and get inspired with use cases already performed by the Sensedia team + +
+
+
+ + +
+ + Architecture Center + +
+ (this._inputEmail = input)} + disabled={showPreloader} + error={this.state.emailFieldEmpty} + helperText={ + this.state.emailFieldEmpty + ? "The email field is empty" + : "" + } + onChange={el => this.setState({ email: el.target.value })} + onKeyUp={this._onClickEnter} + className={classes.text} + label="Type your email" + InputProps={{ + endAdornment: ( + + + + ) + }} + /> + + this.setState({ password: el.target.value }) + } + onKeyUp={this._onClickEnter} + type="password" + className={classes.text} + label="Password" + InputProps={{ + endAdornment: ( + + + + ) + }} + /> + + {message} + +
+
+
+ + {showPreloader && ( + + )} +
+
+
+ + Do not have an account yet ?{" "} + +
+
+ +
+
+
+
+
+
+ ); + } +} + +export default withStyles(styles)(Login); \ No newline at end of file diff --git a/src/components/Search.js b/src/components/Search.js new file mode 100644 index 0000000..9348cdd --- /dev/null +++ b/src/components/Search.js @@ -0,0 +1,44 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Paper from '@material-ui/core/Paper'; +import Grid from '@material-ui/core/Grid'; +import { TextField, Typography } from '@material-ui/core'; + +const useStyles = makeStyles((theme) => ({ + root: { + flexGrow: 1, + height:'100%' + }, + paper: { + padding: theme.spacing(2), + textAlign: 'center', + color: theme.palette.text.secondary, + }, + containerSearchBar:{ + marginTop: '20%', + marginBottom: '50px' + }, + searchBar:{ + backgroundColor: '#ffffff', + marginTop: '100px' + } +})); + +export default function CenteredGrid() { + const classes = useStyles(); + + return ( +
+ + + +
+ Architecture Center + +
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/src/components/Solution.js b/src/components/Solution.js new file mode 100644 index 0000000..2cfbca4 --- /dev/null +++ b/src/components/Solution.js @@ -0,0 +1,70 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardHeader from '@material-ui/core/CardHeader'; +import CardMedia from '@material-ui/core/CardMedia'; +import CardContent from '@material-ui/core/CardContent'; +import CardActions from '@material-ui/core/CardActions'; +import Avatar from '@material-ui/core/Avatar'; +import IconButton from '@material-ui/core/IconButton'; +import Typography from '@material-ui/core/Typography'; +import { red } from '@material-ui/core/colors'; +import FavoriteIcon from '@material-ui/icons/Favorite'; + +const useStyles = makeStyles((theme) => ({ + root: { + maxWidth: 345, + }, + media: { + height: 0, + paddingTop: '56.25%', // 16:9 + }, + expand: { + transform: 'rotate(0deg)', + marginLeft: 'auto', + transition: theme.transitions.create('transform', { + duration: theme.transitions.duration.shortest, + }), + }, + expandOpen: { + transform: 'rotate(180deg)', + }, + avatar: { + backgroundColor: red[500], + }, +})); + +export default function RecipeReviewCard() { + const classes = useStyles(); + + return ( + + + CK + + } + + title="E-commerce checkout" + subheader="December 29, 2020" + /> + + + + Checkout solution to be used via API or embedding on the page via javascript + + + + + + + + + + ); +} diff --git a/src/components/solution/Diagrams.js b/src/components/solution/Diagrams.js new file mode 100644 index 0000000..eab0b20 --- /dev/null +++ b/src/components/solution/Diagrams.js @@ -0,0 +1,51 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import { Chip, Divider, List, ListItem, ListItemText } from '@material-ui/core'; + +const useStyles = makeStyles({ + root: { + minWidth: 275, + }, + bullet: { + display: 'inline-block', + margin: '0 2px', + transform: 'scale(0.8)', + }, + title: { + fontSize: 14, + }, + pos: { + marginBottom: 12, + }, +}); + +export default function Diagrams() { + const classes = useStyles(); + const bull = •; + + return ( + + + + Diagrams + + +
+ + + + + + + + + + + +
+
+ ); +} diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.js new file mode 100644 index 0000000..adc39a0 --- /dev/null +++ b/src/components/solution/MainTabs.js @@ -0,0 +1,76 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { useTheme } from '@material-ui/core/styles'; +import AppBar from '@material-ui/core/AppBar'; +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; +import Typography from '@material-ui/core/Typography'; +import Box from '@material-ui/core/Box'; +import Canvas from '../Canvas' + +function TabPanel(props) { + const { children, value, index, ...other } = props; + + return ( + + ); +} + +TabPanel.propTypes = { + children: PropTypes.node, + index: PropTypes.any.isRequired, + value: PropTypes.any.isRequired, +}; + +function a11yProps(index) { + return { + id: `full-width-tab-${index}`, + 'aria-controls': `full-width-tabpanel-${index}`, + }; +} + +export default function FullWidthTabs() { + const theme = useTheme(); + const [value, setValue] = React.useState(0); + + const handleChange = (event, newValue) => { + setValue(newValue); + }; + + return ( +
+ + + + + + + + + + + + + + +
+ ); +} diff --git a/src/components/solution/References.js b/src/components/solution/References.js new file mode 100644 index 0000000..4a21795 --- /dev/null +++ b/src/components/solution/References.js @@ -0,0 +1,51 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import { Chip, Divider, List, ListItem, ListItemText } from '@material-ui/core'; + +const useStyles = makeStyles({ + root: { + minWidth: 275, + }, + bullet: { + display: 'inline-block', + margin: '0 2px', + transform: 'scale(0.8)', + }, + title: { + fontSize: 14, + }, + pos: { + marginBottom: 12, + }, +}); + +export default function References() { + const classes = useStyles(); + const bull = •; + + return ( + + + + References + + +
+ + + + + + + + + + + +
+
+ ); +} diff --git a/src/components/solution/SolutionDetails.js b/src/components/solution/SolutionDetails.js new file mode 100644 index 0000000..b9a0f03 --- /dev/null +++ b/src/components/solution/SolutionDetails.js @@ -0,0 +1,81 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import { Divider } from '@material-ui/core'; + +const useStyles = makeStyles({ + root: { + minWidth: 275, + }, + bullet: { + display: 'inline-block', + margin: '0 2px', + transform: 'scale(0.8)', + }, + title: { + fontSize: 14, + }, + pos: { + marginBottom: 12, + }, +}); + +export default function SolutionDetails() { + const classes = useStyles(); + const bull = •; + + return ( + + + + Solution details + + + + Name + + + E-commerce checkout + + + Customer + + + Santander Merchan PlatForm Solutions - SMPS + + + Project + + + E-commerce - Digital payments + + + Market + + + Financial + + + Year / Month + + + 2020/12 + + + Created by + + + Robisson Oliveira + + + Description + + + Solution used to embeddding via javascript on Ecommerce + + + + ); +} diff --git a/src/components/solution/Tags.js b/src/components/solution/Tags.js new file mode 100644 index 0000000..5fd1503 --- /dev/null +++ b/src/components/solution/Tags.js @@ -0,0 +1,41 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import { Chip, Divider } from '@material-ui/core'; + +const useStyles = makeStyles({ + root: { + minWidth: 275, + }, + chip: { + margin: 3 + } +}); + +export default function Tags() { + const classes = useStyles(); + const bull = •; + + return ( + + + + Tags + + +
+ + + + + + + + + +
+
+ ); +} diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.js new file mode 100644 index 0000000..7ab4cd0 --- /dev/null +++ b/src/components/solution/Teams.js @@ -0,0 +1,36 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import { Avatar, Chip, Divider } from '@material-ui/core'; + +const useStyles = makeStyles({ + root: { + minWidth: 275, + }, + chip: { + margin: 3 + } +}); + +export default function Teams() { + const classes = useStyles(); + + return ( + + + + Team + + +
+ RC} /> + RP} /> + RC} /> + GO} /> + LA} /> +
+
+ ); +} diff --git a/src/configureStore.js b/src/configureStore.js new file mode 100644 index 0000000..1dcaaeb --- /dev/null +++ b/src/configureStore.js @@ -0,0 +1,16 @@ +import { createStore, applyMiddleware, Store } from "redux"; +import reducer from "./reducers"; +import thunk from "redux-thunk"; +import { composeWithDevTools } from "redux-devtools-extension"; + +const configureStore = (server = false) => { + const store = createStore( + reducer, + server ? undefined : window .__PRELOADED_STATE__, + composeWithDevTools(applyMiddleware(thunk)) + ); + + return store; +}; + +export default configureStore; diff --git a/src/lib/apolloClient.js b/src/lib/apolloClient.js new file mode 100644 index 0000000..4dbd549 --- /dev/null +++ b/src/lib/apolloClient.js @@ -0,0 +1,15 @@ +import { useMemo } from "react"; + import { ApolloClient, HttpLink, InMemoryCache } from + "@apollo/client"; + + let apolloClient; + + function createApolloClient() { + return new ApolloClient({ + ssrMode: typeof window === "undefined", // set to true for SSR + link: new HttpLink({ + uri: "http://localhost/solutions", + }), + cache: new InMemoryCache(), + }); + } \ No newline at end of file diff --git a/src/reducers/__tests__/UserReducer.ts b/src/reducers/__tests__/UserReducer.ts new file mode 100644 index 0000000..21eef3b --- /dev/null +++ b/src/reducers/__tests__/UserReducer.ts @@ -0,0 +1,121 @@ +import userReducer from "../userReducer"; +import actionTypes from "../../actions/actionsType"; + +describe("USer reducer", () => { + const initialState = { + success: false, + message: null, + showPreloader: false, + user: {} + }; + + it("should state to be equal to initial State mock", () => { + let state = userReducer(initialState, {}); + expect(state).toEqual(initialState); + }); + + it("testing action CREATE_ACCOUNT_SEND", () => { + let action = { + type: actionTypes.CREATE_ACCOUNT_SEND + }; + let newState = { ...initialState, showPreloader: true }; + let state = userReducer(initialState, action); + + expect(state).toEqual(newState); + }); + + it("testing action CREATE_ACCOUNT_SUCCESS and CREATE_ACCOUNT_ERROR", () => { + let action = { + type: actionTypes.CREATE_ACCOUNT_SUCCESS + }; + let newState = { ...initialState, showPreloader: false }; + let state = userReducer(initialState, action); + + expect(state).toEqual(newState); + }); + + it("testing action LOADING_LOGIN", () => { + let action = { + type: actionTypes.LOADING_LOGIN + }; + let newState = { ...initialState, showPreloader: true }; + let state = userReducer(initialState, action); + + expect(state).toEqual(newState); + }); + + it("testing action LOGIN_SUCCESS", () => { + let response = { + message: "Login successfull!", + success: true, + user: { name: "username" } + }; + + let action = { + type: actionTypes.LOGIN_SUCCESS, + ...response + }; + let newState = { + ...initialState, + ...response + }; + let state = userReducer(initialState, action); + + expect(state).toEqual(newState); + }); + + it("testing action LOGOUT_SUCCESS", () => { + let action = { + type: actionTypes.LOGOUT_SUCCESS + }; + let newState = { ...initialState, success: false }; + let state = userReducer(initialState, action); + + expect(state).toEqual(newState); + }); + + it("testing action SET_FIRST_ACCESS", () => { + let action = { + type: actionTypes.SET_FIRST_ACCESS, + firstAccess: false + }; + + let state = userReducer(initialState, action); + + let newState = { + ...state, + user: { ...state.user, firstAccess: false } + }; + + expect(state).toEqual(newState); + }); + + it("testing action UPDATE_ACCOUNT_USER", () => { + let user = { + lastname: "name example", + email: "email example", + phone: "1111-1111", + firstAccess: false + }; + + let action = { + type: actionTypes.UPDATE_ACCOUNT_USER, + user + }; + + let state = userReducer(initialState, action); + + let newState = { + ...state, + user: { + ...state.user, + lastname: action.user.lastname, + email: action.user.email, + phone: action.user.phone, + firstAccess: action.user.firstAccess + } + }; + + expect(state).toEqual(newState); + }); +}); diff --git a/src/reducers/boardReducer.js b/src/reducers/boardReducer.js new file mode 100644 index 0000000..33d2ecd --- /dev/null +++ b/src/reducers/boardReducer.js @@ -0,0 +1,16 @@ +import actionsType, { ADD_BOARD_LOADED } from "../actions/actionsType"; + +const boards = []; + +export default function boardReducer(state = boards, action) { + switch (action.type) { + case actionsType.BOARDS_LOADED_SUCCESS: + return [...action.boards]; + + case ADD_BOARD_LOADED: + return [...state, action.board]; + + default: + return state; + } +} diff --git a/src/reducers/context.js b/src/reducers/context.js new file mode 100644 index 0000000..e4213d8 --- /dev/null +++ b/src/reducers/context.js @@ -0,0 +1,10 @@ +import { createContext } from "react"; + +const Context = createContext({ + success: false, + message: null, + showPreloader: false, + user: {} +}); + +export default Context; diff --git a/src/reducers/index.js b/src/reducers/index.js new file mode 100644 index 0000000..23cc7cd --- /dev/null +++ b/src/reducers/index.js @@ -0,0 +1,7 @@ +import { combineReducers } from "redux"; +import userReducer from "./userReducer"; +import boardReducer from "./boardReducer"; + +const reducer = combineReducers({ userReducer, boardReducer }); + +export default reducer; diff --git a/src/reducers/initialState.js b/src/reducers/initialState.js new file mode 100644 index 0000000..8e1e1f0 --- /dev/null +++ b/src/reducers/initialState.js @@ -0,0 +1,5 @@ +export default { + columns: [], + openModal: false, + modalData: {} +}; diff --git a/src/reducers/userReducer.js b/src/reducers/userReducer.js new file mode 100644 index 0000000..e04bf0b --- /dev/null +++ b/src/reducers/userReducer.js @@ -0,0 +1,63 @@ +import actionsType from "../actions/actionsType"; + +const initialState = { + success: false, + message: null, + showPreloader: false, + user: {} +}; + +export default function userReducer(state = initialState, action) { + switch (action.type) { + case actionsType.CREATE_ACCOUNT_SEND: + return { + ...state, + showPreloader: true, + message: null + }; + + case actionsType.CREATE_ACCOUNT_SUCCESS: + case actionsType.CREATE_ACCOUNT_ERROR: + return { + ...state, + showPreloader: false, + ...action.response + }; + + case actionsType.LOADING_LOGIN: + return { + ...state, + showPreloader: true + }; + case actionsType.LOGIN_SUCCESS: + case actionsType.LOGIN_ERROR: + var { message, success, user } = action; + + return { ...state, showPreloader: false, message, success, user }; + + case actionsType.LOGOUT_SUCCESS: + return { ...initialState }; + + case actionsType.SET_FIRST_ACCESS: + return { + ...state, + user: { ...state.user, firstAccess: action.firstAccess } + }; + case actionsType.UPDATE_ACCOUNT_USER: + return { + ...state, + user: { + ...state.user, + name: action.user.name, + lastname: action.user.lastname, + email: action.user.email, + phone: action.user.phone, + firstAccess: action.user.firstAccess, + image: action.user.image + } + }; + + default: + return state; + } +} diff --git a/src/theme.js b/src/theme.js new file mode 100644 index 0000000..37dd529 --- /dev/null +++ b/src/theme.js @@ -0,0 +1,22 @@ +import { createMuiTheme } from '@material-ui/core/styles'; +import { red } from '@material-ui/core/colors'; + +// Create a theme instance. +const theme = createMuiTheme({ + palette: { + primary: { + main: '#562872', + }, + secondary: { + main: '#19857b', + }, + error: { + main: red.A400, + }, + background: { + default: '#f3f3f3', + }, + }, +}); + +export default theme; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..eaa8ec4 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4288 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/toolbox-core@2.7.4", "@ampproject/toolbox-core@^2.7.1-alpha.0": + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.7.4.tgz#8355136f16301458ce942acf6c55952c9a415627" + integrity sha512-qpBhcS4urB7IKc+jx2kksN7BuvvwCo7Y3IstapWo+EW+COY5EYAUwb2pil37v3TsaqHKgX//NloFP1SKzGZAnw== + dependencies: + cross-fetch "3.0.6" + lru-cache "6.0.0" + +"@ampproject/toolbox-optimizer@2.7.1-alpha.0": + version "2.7.1-alpha.0" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.7.1-alpha.0.tgz#1571dcd02608223ff68f6b7223102a123e381197" + integrity sha512-WGPZKVQvHgNYJk1XVJCCmY+NVGTGJtvn0OALDyiegN4FJWOcilQUhCIcjMkZN59u1flz/u+sEKccM5qsROqVyg== + dependencies: + "@ampproject/toolbox-core" "^2.7.1-alpha.0" + "@ampproject/toolbox-runtime-version" "^2.7.1-alpha.0" + "@ampproject/toolbox-script-csp" "^2.5.4" + "@ampproject/toolbox-validator-rules" "^2.7.1-alpha.0" + abort-controller "3.0.0" + cross-fetch "3.0.6" + cssnano-simple "1.2.1" + dom-serializer "1.1.0" + domhandler "3.3.0" + domutils "2.4.2" + htmlparser2 "5.0.1" + https-proxy-agent "5.0.0" + lru-cache "6.0.0" + node-fetch "2.6.1" + normalize-html-whitespace "1.0.0" + postcss "7.0.32" + postcss-safe-parser "4.0.2" + terser "5.5.1" + +"@ampproject/toolbox-runtime-version@^2.7.1-alpha.0": + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.7.4.tgz#f49da0dab122101ef75ed3caed3a0142487b73e1" + integrity sha512-SAdOUOERp42thVNWaBJlnFvFVvnacMVnz5z9LyUZHSnoL1EqrAW5Sz5jv+Ly+gkA8NYsEaUxAdSCBAzE9Uzb4Q== + dependencies: + "@ampproject/toolbox-core" "2.7.4" + +"@ampproject/toolbox-script-csp@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.5.4.tgz#d8b7b91a678ae8f263cb36d9b74e441b7d633aad" + integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ== + +"@ampproject/toolbox-validator-rules@^2.7.1-alpha.0": + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.4.tgz#a58b5eca723f6c3557ac83b696de0247f5f03ce4" + integrity sha512-z3JRcpIZLLdVC9XVe7YTZuB3a/eR9s2SjElYB9AWRdyJyL5Jt7+pGNv4Uwh1uHVoBXsWEVQzNOWSNtrO3mSwZA== + dependencies: + cross-fetch "3.0.6" + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + 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" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/types@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@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== + +"@hapi/accept@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" + integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q== + dependencies: + "@hapi/boom" "9.x.x" + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04" + integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/hoek@9.x.x": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" + integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== + +"@material-ui/core@latest": + version "4.11.2" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.2.tgz#f8276dfa40d88304e6ceb98962af73803d27d42d" + integrity sha512-/D1+AQQeYX/WhT/FUk78UCRj8ch/RCglsQLYujYTIqPSJlwZHKcvHidNeVhODXeApojeXjkl0tWdk5C9ofwOkQ== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/styles" "^4.11.2" + "@material-ui/system" "^4.11.2" + "@material-ui/types" "^5.1.0" + "@material-ui/utils" "^4.11.2" + "@types/react-transition-group" "^4.2.0" + clsx "^1.0.4" + hoist-non-react-statics "^3.3.2" + popper.js "1.16.1-lts" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + react-transition-group "^4.4.0" + +"@material-ui/icons@^4.11.2": + version "4.11.2" + resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.11.2.tgz#b3a7353266519cd743b6461ae9fdfcb1b25eb4c5" + integrity sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ== + dependencies: + "@babel/runtime" "^7.4.4" + +"@material-ui/styles@^4.11.2": + version "4.11.2" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.2.tgz#e70558be3f41719e8c0d63c7a3c9ae163fdc84cb" + integrity sha512-xbItf8zkfD3FuGoD9f2vlcyPf9jTEtj9YTJoNNV+NMWaSAHXgrW6geqRoo/IwBuMjqpwqsZhct13e2nUyU9Ljw== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/hash" "^0.8.0" + "@material-ui/types" "^5.1.0" + "@material-ui/utils" "^4.11.2" + clsx "^1.0.4" + csstype "^2.5.2" + hoist-non-react-statics "^3.3.2" + jss "^10.0.3" + jss-plugin-camel-case "^10.0.3" + jss-plugin-default-unit "^10.0.3" + jss-plugin-global "^10.0.3" + jss-plugin-nested "^10.0.3" + jss-plugin-props-sort "^10.0.3" + jss-plugin-rule-value-function "^10.0.3" + jss-plugin-vendor-prefixer "^10.0.3" + prop-types "^15.7.2" + +"@material-ui/system@^4.11.2": + version "4.11.2" + resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.11.2.tgz#7f0a754bba3673ed5fdbfa02fe438096c104b1f6" + integrity sha512-BELFJEel5E+5DMiZb6XXT3peWRn6UixRvBtKwSxqntmD0+zwbbfCij6jtGwwdJhN1qX/aXrKu10zX31GBaeR7A== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.11.2" + csstype "^2.5.2" + prop-types "^15.7.2" + +"@material-ui/types@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" + integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== + +"@material-ui/utils@^4.11.2": + version "4.11.2" + resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.2.tgz#f1aefa7e7dff2ebcb97d31de51aecab1bb57540a" + integrity sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA== + dependencies: + "@babel/runtime" "^7.4.4" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + +"@next/env@10.0.4": + version "10.0.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-10.0.4.tgz#ac759094d021853616af56a7bd6720e44a92a303" + integrity sha512-U+XIL75XM1pCmY4+9kYbst/0IptlfDnkFfKdgADBZulQlfng4RB3zirdzkoBtod0lVcrGgDryzOi1mM23RiiVQ== + +"@next/polyfill-module@10.0.4": + version "10.0.4" + resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.0.4.tgz#c34391a12ad80d6e373c403f96c8e2bbd793dca1" + integrity sha512-i2gLUa3YuZ2eQg+d91n+jS4YbPVKg1v0HHIUeJFJMMtpG/apBkTuTLBQGJXe4nKNf7/41NWLDft4ihC3Zfd+Yw== + +"@next/react-dev-overlay@10.0.4": + version "10.0.4" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.0.4.tgz#c578a3c71e2f8a8fe2aae8007cc40d1cf10bc768" + integrity sha512-8pKN0PspEtfVFqeSpNQymfXWyV95OTIT0xP9IqILJX2+52ICdU5D+YNuNIwpc4ZOZ0CssM/uYsz6K1FHbCaU7A== + dependencies: + "@babel/code-frame" "7.10.4" + ally.js "1.4.1" + anser "1.4.9" + chalk "4.0.0" + classnames "2.2.6" + data-uri-to-buffer "3.0.0" + shell-quote "1.7.2" + source-map "0.8.0-beta.0" + stacktrace-parser "0.1.10" + strip-ansi "6.0.0" + +"@next/react-refresh-utils@10.0.4": + version "10.0.4" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.0.4.tgz#5ad753572891aa7cb1010b358cc4241d7be20d20" + integrity sha512-kZ/37aSQaR0GCZVqh7WDLkeEZqzjPQoZUDdo6TOWiIEb+089AmfYp8A4/1ra9Fu8T4b4wnB76TRl6tp6DeJLXg== + +"@opentelemetry/api@0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.14.0.tgz#4e17d8d2f1da72b19374efa7b6526aa001267cae" + integrity sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ== + dependencies: + "@opentelemetry/context-base" "^0.14.0" + +"@opentelemetry/context-base@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" + integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw== + +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/react-transition-group@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" + integrity sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" + integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abort-controller@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ally.js@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/ally.js/-/ally.js-1.4.1.tgz#9fb7e6ba58efac4ee9131cb29aa9ee3b540bcf1e" + integrity sha1-n7fmuljvrE7pExyymqnuO1QLzx4= + dependencies: + css.escape "^1.5.0" + platform "1.3.3" + +anser@1.4.9: + version "1.4.9" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" + integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" + integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.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= + +babel-plugin-transform-define@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-2.0.0.tgz#79c3536635f899aabaf830b194b25519465675a4" + integrity sha512-0dv5RNRUlUKxGYIIErl01lpvi8b7W2R04Qcl1mCj70ahwZcgiklfXnFlh4FGnRh6aayCfSZKdhiMryVzcq5Dmg== + dependencies: + lodash "^4.17.11" + traverse "0.6.6" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.14.6: + version "4.14.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.6.tgz#97702a9c212e0c6b6afefad913d3a1538e348457" + integrity sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A== + dependencies: + caniuse-lite "^1.0.30001154" + electron-to-chromium "^1.3.585" + escalade "^3.1.1" + node-releases "^1.1.65" + +buffer-from@^1.0.0, buffer-from@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +camelcase@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001154: + version "1.0.30001170" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz#0088bfecc6a14694969e391cc29d7eb6362ca6a7" + integrity sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA== + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@3.4.3, chokidar@^3.4.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.1.2" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +clsx@^1.0.4, clsx@latest: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +convert-source-map@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-fetch@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" + integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== + dependencies: + node-fetch "2.6.1" + +crypto-browserify@3.12.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-vendor@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + +css.escape@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-simple@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.2.1.tgz#8976013114b1fc4718253d30f21aaed1780fb80e" + integrity sha512-B2KahOIFTV6dw5Ioy9jHshTh/vAYNnUB2enyWRgnAEg3oJBjI/035ExpePaMqS2SwpbH7gCgvQqwpMBH6hTJSw== + dependencies: + caniuse-lite "^1.0.30001093" + postcss "^7.0.32" + +cssnano-simple@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.2.1.tgz#6de5d9dd75774bc8f31767573410a952c7dd8a12" + integrity sha512-9vOyjw8Dj/T12kIOnXPZ5VnEIo6F3YMaIn0wqJXmn277R58cWpI3AvtdlCBtohX7VAUNYcyk2d0dKcXXkb5I6Q== + dependencies: + cssnano-preset-simple "1.2.1" + postcss "^7.0.32" + +csstype@^2.5.2: + version "2.6.14" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de" + integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A== + +csstype@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +data-uri-to-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.0.tgz#8a3088a5efd3f53c3682343313c6895d498eb8d7" + integrity sha512-MJ6mFTZ+nPQO+39ua/ltwNePXrfdF3Ww0wP1Od7EePySXN1cP9XNqRQOG3FxTfipp8jx898LUCgBCEP11Qw/ZQ== + dependencies: + buffer-from "^1.1.1" + +debug@4: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-helpers@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" + integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz#5f7c828f1bfc44887dc2a315ab5c45691d544b58" + integrity sha512-ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@^2.0.1, domelementtype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + +domhandler@3.3.0, domhandler@^3.0.0, domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== + dependencies: + domelementtype "^2.0.1" + +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" + +domutils@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz#7ee5be261944e1ad487d9aa0616720010123922b" + integrity sha512-NKbgaM8ZJOecTZsIzW5gSuplsX2IWW2mIK7xVr8hTQF2v1CJWTmLZ1HOCh5sH+IzVPAGE5IucooOkvwBRAdowA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^3.3.0" + +domutils@^2.4.2: + version "2.4.4" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" + integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +electron-to-chromium@^1.3.585: + version "1.3.633" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" + integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== + +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +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" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-cache-dir@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.10.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" + integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +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" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +htmlparser2@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indefinite-observable@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/indefinite-observable/-/indefinite-observable-2.0.1.tgz#574af29bfbc17eb5947793797bddc94c9d859400" + integrity sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ== + dependencies: + symbol-observable "1.2.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +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" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +jest-worker@24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jss-plugin-camel-case@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.5.0.tgz#4b0a9c85e65e5eb72cbfba59373686c604d88f72" + integrity sha512-GSjPL0adGAkuoqeYiXTgO7PlIrmjv5v8lA6TTBdfxbNYpxADOdGKJgIEkffhlyuIZHlPuuiFYTwUreLUmSn7rg== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.5.0" + +jss-plugin-default-unit@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.5.0.tgz#e9f2e89741b0118ba15d52b4c13bda2b27262373" + integrity sha512-rsbTtZGCMrbcb9beiDd+TwL991NGmsAgVYH0hATrYJtue9e+LH/Gn4yFD1ENwE+3JzF3A+rPnM2JuD9L/SIIWw== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.5.0" + +jss-plugin-global@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.5.0.tgz#eb357ccd35cb4894277fb2117a78d1e498668ad6" + integrity sha512-FZd9+JE/3D7HMefEG54fEC0XiQ9rhGtDHAT/ols24y8sKQ1D5KIw6OyXEmIdKFmACgxZV2ARQ5pAUypxkk2IFQ== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.5.0" + +jss-plugin-nested@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.5.0.tgz#790c506432a23a63c71ceb5044e2ac85f0958702" + integrity sha512-ejPlCLNlEGgx8jmMiDk/zarsCZk+DV0YqXfddpgzbO9Toamo0HweCFuwJ3ZO40UFOfqKwfpKMVH/3HUXgxkTMg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.5.0" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.5.0.tgz#5bcc3bd8e68cd3e2dafb47d67db28fd5a4fcf102" + integrity sha512-kTLRvrOetFKz5vM88FAhLNeJIxfjhCepnvq65G7xsAQ/Wgy7HwO1BS/2wE5mx8iLaAWC6Rj5h16mhMk9sKdZxg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.5.0" + +jss-plugin-rule-value-function@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.5.0.tgz#60ee8240dfe60418e1ba4729adee893cbe9be7a3" + integrity sha512-jXINGr8BSsB13JVuK274oEtk0LoooYSJqTBCGeBu2cG/VJ3+4FPs1gwLgsq24xTgKshtZ+WEQMVL34OprLidRA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.5.0" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.5.0.tgz#01f04cfff31f43f153f5d71972f5800b10a2eb84" + integrity sha512-rux3gmfwDdOKCLDx0IQjTwTm03IfBa+Rm/hs747cOw5Q7O3RaTUIMPKjtVfc31Xr/XI9Abz2XEupk1/oMQ7zRA== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.5.0" + +jss@10.5.0, jss@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.5.0.tgz#0c2de8a29874b2dc8162ab7f34ef6573a87d9dd3" + integrity sha512-B6151NvG+thUg3murLNHRPLxTLwQ13ep4SH5brj4d8qKtogOx/jupnpfkPGSHPqvcwKJaCLctpj2lEk+5yGwMw== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + indefinite-observable "^2.0.1" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.17.11, lodash@^4.17.13: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@6.0.0, lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^0.5.1, mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.16: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +native-url@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" + integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== + dependencies: + querystring "^0.2.0" + +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +next@latest: + version "10.0.4" + resolved "https://registry.yarnpkg.com/next/-/next-10.0.4.tgz#0d256f58a57d6bab7db7e533900c15f322960b4a" + integrity sha512-WXEYr1FuR2cLuWGN8peYGM6ykmbtwaHvrI6RqR2qrTXUNsW+KU5pzIMK5WPcpqP+xOuMhlykOCJvwJH8qU9FZQ== + dependencies: + "@ampproject/toolbox-optimizer" "2.7.1-alpha.0" + "@babel/runtime" "7.12.5" + "@hapi/accept" "5.0.1" + "@next/env" "10.0.4" + "@next/polyfill-module" "10.0.4" + "@next/react-dev-overlay" "10.0.4" + "@next/react-refresh-utils" "10.0.4" + "@opentelemetry/api" "0.14.0" + ast-types "0.13.2" + babel-plugin-transform-define "2.0.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + browserslist "4.14.6" + buffer "5.6.0" + caniuse-lite "^1.0.30001113" + chalk "2.4.2" + chokidar "3.4.3" + crypto-browserify "3.12.0" + css-loader "4.3.0" + cssnano-simple "1.2.1" + etag "1.8.1" + find-cache-dir "3.3.1" + jest-worker "24.9.0" + loader-utils "2.0.0" + native-url "0.3.4" + node-fetch "2.6.1" + node-html-parser "1.4.9" + p-limit "3.1.0" + path-browserify "1.0.1" + pnp-webpack-plugin "1.6.4" + postcss "8.1.7" + process "0.11.10" + prop-types "15.7.2" + raw-body "2.4.1" + react-is "16.13.1" + react-refresh "0.8.3" + resolve-url-loader "3.1.2" + sass-loader "10.0.5" + schema-utils "2.7.1" + stream-browserify "3.0.0" + style-loader "1.2.1" + styled-jsx "3.3.2" + use-subscription "1.5.1" + vm-browserify "1.1.2" + watchpack "2.0.0-beta.13" + webpack "4.44.1" + webpack-sources "1.4.3" + optionalDependencies: + sharp "0.26.2" + +node-abi@^2.7.0: + version "2.19.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== + dependencies: + semver "^5.4.1" + +node-addon-api@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" + integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-html-parser@1.4.9: + version "1.4.9" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" + integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== + dependencies: + he "1.2.0" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.65: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + +normalize-html-whitespace@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" + integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npmlog@^4.0.1, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +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= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +p-limit@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-browserify@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +platform@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.3.tgz#646c77011899870b6a0903e75e997e8e51da7461" + integrity sha1-ZGx3ARiZhwtqCQPnXpl+jlHadGE= + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +popper.js@1.16.1-lts: + version "1.16.1-lts" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" + integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-safe-parser@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== + dependencies: + postcss "^7.0.26" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@8.1.7: + version "8.1.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.7.tgz#ff6a82691bd861f3354fd9b17b2332f88171233f" + integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.16" + source-map "^0.6.1" + +postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prebuild-install@^5.3.5: + version "5.3.6" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" + integrity sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@0.11.10, process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +promise-inflight@^1.0.1: + version "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.6.2, prop-types@^15.7.2, prop-types@latest: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +raw-body@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@latest: + 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" + scheduler "^0.20.1" + +react-is@16.13.1, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +"react-is@^16.8.0 || ^17.0.0": + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +react-redux@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" + integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA== + dependencies: + "@babel/runtime" "^7.12.1" + hoist-non-react-statics "^3.3.2" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.13.1" + +react-refresh@0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react-transition-group@^4.4.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@latest: + 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" + +"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" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +redux-devtools-extension@^2.13.8: + version "2.13.8" + resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1" + integrity sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg== + +redux-thunk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== + +redux@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +resolve-url-loader@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" + integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +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" + +schema-utils@2.7.1, schema-utils@^2.6.6, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver@^5.4.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sharp@0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.26.2.tgz#3d5777d246ae32890afe82a783c1cbb98456a88c" + integrity sha512-bGBPCxRAvdK9bX5HokqEYma4j/Q5+w8Nrmb2/sfgQCLEUx/HblcpmOfp59obL3+knIKnOhyKmDb4tEOhvFlp6Q== + dependencies: + color "^3.1.2" + detect-libc "^1.0.3" + node-addon-api "^3.0.2" + npmlog "^4.1.2" + prebuild-install "^5.3.5" + semver "^7.3.2" + simple-get "^4.0.0" + tar-fs "^2.1.0" + tunnel-agent "^0.6.0" + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +signal-exit@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-get@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675" + integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stacktrace-parser@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +string-hash@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" + integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.6.6" + +styled-jsx@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018" + integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g== + dependencies: + "@babel/types" "7.8.3" + babel-plugin-syntax-jsx "6.18.0" + convert-source-map "1.7.0" + loader-utils "1.2.3" + source-map "0.7.3" + string-hash "1.1.3" + stylis "3.5.4" + stylis-rule-sheet "0.0.10" + +stylis-rule-sheet@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" + integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw== + +stylis@3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" + integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +symbol-observable@1.2.0, symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-fs@^2.0.0, tar-fs@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" + integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +traverse@0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-subscription@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" + integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== + dependencies: + object-assign "^4.1.1" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +vm-browserify@1.1.2, vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@2.0.0-beta.13: + version "2.0.0-beta.13" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" + integrity sha512-ZEFq2mx/k5qgQwgi6NOm+2ImICb8ngAkA/rZ6oyXZ7SgPn3pncf+nfhYTCrs3lmHwOxnPtGLTOuFLfpSMh1VMA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-sources@1.4.3, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.44.1: + version "4.44.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" + integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 15a1e45e1cf243c10b0b6ad775f5fd52c0e193a3 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Thu, 31 Dec 2020 11:47:29 -0300 Subject: [PATCH 02/46] Finished search solution --- package.json | 2 + pages/_app.js | 13 +++-- pages/index.js | 34 +++++++++--- pages/solution/[solution_id].js | 1 - src/components/ListSolutions.js | 30 +++-------- src/components/Search.js | 26 ++++++++-- src/components/Solution.js | 51 +++++++----------- src/lib/apolloClient.js | 36 +++++++++++-- yarn.lock | 91 ++++++++++++++++++++++++++++++++- 9 files changed, 210 insertions(+), 74 deletions(-) diff --git a/package.json b/package.json index 5780ea0..a0701d2 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,12 @@ "version": "4.0.0", "private": true, "dependencies": { + "@apollo/client": "^3.3.6", "@material-ui/core": "latest", "@material-ui/icons": "^4.11.2", "axios": "^0.21.1", "clsx": "latest", + "graphql": "^15.4.0", "next": "latest", "prop-types": "latest", "react": "latest", diff --git a/pages/_app.js b/pages/_app.js index 1511a69..41231e8 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -6,10 +6,15 @@ import CssBaseline from '@material-ui/core/CssBaseline'; import theme from '../src/theme'; import { Provider } from "react-redux"; import configureStore from "../src/configureStore"; +import { ApolloProvider } from "@apollo/client"; +import { useApollo } from "../src/lib/apolloClient"; + export default function MyApp(props) { const { Component, pageProps } = props; const store = configureStore(true); + const apolloClient = useApollo(pageProps.initialApolloState); + React.useEffect(() => { // Remove the server-side injected CSS. @@ -28,9 +33,11 @@ export default function MyApp(props) { {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} - - - + + + + + diff --git a/pages/index.js b/pages/index.js index 1aeac1b..68d3c5c 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,9 +1,28 @@ -import React from 'react'; +import React, {useState} from 'react'; import Container from '@material-ui/core/Container'; import AppBar from '../src/components/AppBar'; import Search from '../src/components/Search'; import ListSolutions from '../src/components/ListSolutions'; -import { Button, makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core'; +import { gql, useLazyQuery, useQuery } from "@apollo/client"; + +const LIST_FILTERED_SOLUTIONS_QUERY = gql` + query filterSolutions($search: String) { + solution(search:$search) { + solution_id + name + customer + project + market + year_month + description + tags + created_at + updated_at + } + } +`; + const useStyles = makeStyles((theme) => ({ button: { @@ -18,14 +37,15 @@ export default function Index() { const classes = useStyles(); + const [ getFilteredSolutions, { data }] = useLazyQuery(LIST_FILTERED_SOLUTIONS_QUERY); + + const solutions = data != undefined? data.solution : []; + return ( -
- -
- - + +
); diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 4faabb2..52d9165 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -16,7 +16,6 @@ export default function Solution() { const router = useRouter() const { solution_id } = router.query - console.log("solution_id",solution_id); return ( <> diff --git a/src/components/ListSolutions.js b/src/components/ListSolutions.js index 8acc59e..201ffbb 100644 --- a/src/components/ListSolutions.js +++ b/src/components/ListSolutions.js @@ -9,32 +9,18 @@ const useStyles = makeStyles((theme) => ({ }, })); -export default function ListSolutions() { +export default function ListSolutions({solutions}) { const classes = useStyles(); - + console.log(solutions); return (
- - - - - - - - - - - - - - - - - - - - + { + solutions.map( + ({solution_id,name,description,year_month}) => + () + ) + }
); diff --git a/src/components/Search.js b/src/components/Search.js index 9348cdd..c1e330c 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -16,7 +16,7 @@ const useStyles = makeStyles((theme) => ({ }, containerSearchBar:{ marginTop: '20%', - marginBottom: '50px' + marginBottom: '50px', }, searchBar:{ backgroundColor: '#ffffff', @@ -24,7 +24,20 @@ const useStyles = makeStyles((theme) => ({ } })); -export default function CenteredGrid() { + +const keyUpSearch = (event, loadingSolutions) => { + + if(event.keyCode == 13){ + loadingSolutions({ + variables: { + search: event.target.value + }, + }); + + } +} + +export default function Search({loadingSolutions}) { const classes = useStyles(); return ( @@ -34,7 +47,14 @@ export default function CenteredGrid() {
Architecture Center - + keyUpSearch(event, loadingSolutions) + }/>
diff --git a/src/components/Solution.js b/src/components/Solution.js index 2cfbca4..278c64d 100644 --- a/src/components/Solution.js +++ b/src/components/Solution.js @@ -5,11 +5,9 @@ import CardHeader from '@material-ui/core/CardHeader'; import CardMedia from '@material-ui/core/CardMedia'; import CardContent from '@material-ui/core/CardContent'; import CardActions from '@material-ui/core/CardActions'; -import Avatar from '@material-ui/core/Avatar'; -import IconButton from '@material-ui/core/IconButton'; import Typography from '@material-ui/core/Typography'; -import { red } from '@material-ui/core/colors'; -import FavoriteIcon from '@material-ui/icons/Favorite'; +import PropTypes from 'prop-types'; +import Link from "next/link" const useStyles = makeStyles((theme) => ({ root: { @@ -19,52 +17,41 @@ const useStyles = makeStyles((theme) => ({ height: 0, paddingTop: '56.25%', // 16:9 }, - expand: { - transform: 'rotate(0deg)', - marginLeft: 'auto', - transition: theme.transitions.create('transform', { - duration: theme.transitions.duration.shortest, - }), - }, - expandOpen: { - transform: 'rotate(180deg)', - }, - avatar: { - backgroundColor: red[500], - }, })); -export default function RecipeReviewCard() { +export default function Solution({solution_id,name,description,date,image}) { const classes = useStyles(); return ( + - CK - - } - - title="E-commerce checkout" - subheader="December 29, 2020" + title={name} + subheader={date} /> + - Checkout solution to be used via API or embedding on the page via javascript + {description} - - - + ); } + +Solution.propTypes = { + solution_id: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, + description: PropTypes.string.isRequired, + date: PropTypes.string.isRequired, + image: PropTypes.string.isRequired, +}; \ No newline at end of file diff --git a/src/lib/apolloClient.js b/src/lib/apolloClient.js index 4dbd549..dcdbdc6 100644 --- a/src/lib/apolloClient.js +++ b/src/lib/apolloClient.js @@ -1,15 +1,41 @@ import { useMemo } from "react"; - import { ApolloClient, HttpLink, InMemoryCache } from - "@apollo/client"; + import { ApolloClient, HttpLink, InMemoryCache } from "@apollo/client"; let apolloClient; - function createApolloClient() { + export function createApolloClient() { return new ApolloClient({ ssrMode: typeof window === "undefined", // set to true for SSR link: new HttpLink({ - uri: "http://localhost/solutions", + uri: "http://localhost/graphql", }), cache: new InMemoryCache(), }); - } \ No newline at end of file + } + + export function initializeApollo(initialState = null) { + const _apolloClient = apolloClient ?? createApolloClient(); + + // If your page has Next.js data fetching methods that use Apollo Client, + // the initial state gets hydrated here + if (initialState) { + // Get existing cache, loaded during client side data fetching + const existingCache = _apolloClient.extract(); + + // Restore the cache using the data passed from + // getStaticProps/getServerSideProps combined with the existing cached data + _apolloClient.cache.restore({ ...existingCache, ...initialState }); + } + + // For SSG and SSR always create a new Apollo Client + if (typeof window === "undefined") return _apolloClient; + + // Create the Apollo Client once in the client + if (!apolloClient) apolloClient = _apolloClient; + return _apolloClient; + } + + export function useApollo(initialState) { + const store = useMemo(() => initializeApollo(initialState), [initialState]); + return store; + } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index eaa8ec4..e9ae987 100644 --- a/yarn.lock +++ b/yarn.lock @@ -53,6 +53,25 @@ dependencies: cross-fetch "3.0.6" +"@apollo/client@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.6.tgz#f359646308167f38d5bc498dfc2344c888400093" + integrity sha512-XSm/STyNS8aHdDigLLACKNMHwI0qaQmEHWHtTP+jHe/E1wZRnn66VZMMgwKLy2V4uHISHfmiZ4KpUKDPeJAKqg== + dependencies: + "@graphql-typed-document-node/core" "^3.0.0" + "@types/zen-observable" "^0.8.0" + "@wry/context" "^0.5.2" + "@wry/equality" "^0.3.0" + fast-json-stable-stringify "^2.0.0" + graphql-tag "^2.11.0" + hoist-non-react-statics "^3.3.2" + optimism "^0.13.1" + prop-types "^15.7.2" + symbol-observable "^2.0.0" + ts-invariant "^0.6.0" + tslib "^1.10.0" + zen-observable "^0.8.14" + "@babel/code-frame@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -95,6 +114,11 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== +"@graphql-typed-document-node/core@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" + integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== + "@hapi/accept@5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" @@ -254,6 +278,21 @@ "@types/prop-types" "*" csstype "^3.0.2" +"@types/ungap__global-this@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@types/ungap__global-this/-/ungap__global-this-0.3.1.tgz#18ce9f657da556037a29d50604335614ce703f4c" + integrity sha512-+/DsiV4CxXl6ZWefwHZDXSe1Slitz21tom38qPCaG0DYCS1NnDPIQDTKcmQ/tvK/edJUKkmuIDBJbmKDiB0r/g== + +"@types/zen-observable@^0.8.0": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" + integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== + +"@ungap/global-this@^0.4.2": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@ungap/global-this/-/global-this-0.4.3.tgz#44cb668b03e7c4bc88cb6e6f9329d381131878ee" + integrity sha512-MuHEpDBurNVeD6mV9xBcAN2wfTwuaFQhHuhWkJuXmyVJ5P5sBCw+nnFpdfb0tAvgWkfefWCsAoAsh7MTUr3LPg== + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -399,6 +438,20 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@wry/context@^0.5.2": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.5.3.tgz#537db8a5b51f98507dc38f869b3a48c672f48942" + integrity sha512-n0uKHiWpf2ArHhmcHcUsKA+Dj0gtye/h56VmsDcoMRuK/ZPFeHKi8ck5L/ftqtF12ZbQR9l8xMPV7y+xybaRDA== + dependencies: + tslib "^1.14.1" + +"@wry/equality@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.3.1.tgz#81080cdc2e0d8265cd303faa0c64b38a77884e06" + integrity sha512-8/Ftr3jUZ4EXhACfSwPIfNsE8V6WKesdjp+Dxi78Bej6qlasAxiz0/F8j0miACRj9CL4vC5Y5FsfwwEYAuhWbg== + dependencies: + tslib "^1.14.1" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1835,6 +1888,16 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graphql-tag@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== + +graphql@^15.4.0: + version "15.4.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347" + integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2826,6 +2889,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +optimism@^0.13.1: + version "0.13.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.13.2.tgz#002a438b69652bfe8f8754a4493ed35c2e9d9821" + integrity sha512-kJkpDUEs/Rp8HsAYYlDzyvQHlT6YZa95P+2GGNR8p/VvsIkt6NilAk7oeTvMRKCq7BeclB7+bmdIexog2859GQ== + dependencies: + "@wry/context" "^0.5.2" + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -3878,6 +3948,11 @@ symbol-observable@1.2.0, symbol-observable@^1.2.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +symbol-observable@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -4016,12 +4091,21 @@ traverse@0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= +ts-invariant@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.6.0.tgz#44066ecfeb7a806ff1c3b0b283408a337a885412" + integrity sha512-caoafsfgb8QxdrKzFfjKt627m4i8KTtfAiji0DYJfWI4A/S9ORNNpzYuD9br64kyKFgxn9UNaLLbSupam84mCA== + dependencies: + "@types/ungap__global-this" "^0.3.1" + "@ungap/global-this" "^0.4.2" + tslib "^1.9.3" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.14.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -4286,3 +4370,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable@^0.8.14: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== From e0caa91d72a8a656fc17b236da74a15379611bc1 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Thu, 31 Dec 2020 16:34:26 -0300 Subject: [PATCH 03/46] Finished craete detail solution --- pages/index.js | 1 - pages/solution/[solution_id].js | 39 ++++++++++++----- src/components/Search.js | 9 ---- src/components/solution/Diagrams.js | 51 ---------------------- src/components/solution/MainTabs.js | 8 ++++ src/components/solution/References.js | 51 ---------------------- src/components/solution/SolutionDetails.js | 27 ++++++------ src/components/solution/Tags.js | 18 +++----- 8 files changed, 57 insertions(+), 147 deletions(-) delete mode 100644 src/components/solution/Diagrams.js delete mode 100644 src/components/solution/References.js diff --git a/pages/index.js b/pages/index.js index 68d3c5c..2a25d60 100644 --- a/pages/index.js +++ b/pages/index.js @@ -23,7 +23,6 @@ const LIST_FILTERED_SOLUTIONS_QUERY = gql` } `; - const useStyles = makeStyles((theme) => ({ button: { margin: theme.spacing(1), diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 52d9165..8865ee8 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -8,14 +8,37 @@ import SolutionDetails from '../../src/components/solution/SolutionDetails'; import MainTabs from '../../src/components/solution/MainTabs'; import Tags from '../../src/components/solution/Tags'; import Teams from '../../src/components/solution/Teams'; -import References from '../../src/components/solution/References'; -import Diagrams from '../../src/components/solution/Diagrams'; +import { gql, useQuery } from '@apollo/client'; + +const LIST_SOLUTION_BY_ID_QUERY = gql` + query($solution_id: String!) { + solutionById(solution_id: $solution_id){ + solution_id + name + customer + project + market + year_month + description + tags + created_at + updated_at + } + } +`; export default function Solution() { - const router = useRouter() - const { solution_id } = router.query + const router = useRouter() + const { solution_id } = router.query + + const { loading, error, data } = useQuery(LIST_SOLUTION_BY_ID_QUERY, { + variables: { solution_id }, + }); + + const solution = data != undefined? data.solutionById : {}; + const tags = solution.tags !== undefined ? solution.tags : []; return ( <> @@ -29,15 +52,11 @@ export default function Solution() { - +

- -
- -
- +
diff --git a/src/components/Search.js b/src/components/Search.js index c1e330c..2f1203c 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -1,6 +1,5 @@ import React from 'react'; import { makeStyles } from '@material-ui/core/styles'; -import Paper from '@material-ui/core/Paper'; import Grid from '@material-ui/core/Grid'; import { TextField, Typography } from '@material-ui/core'; @@ -9,11 +8,6 @@ const useStyles = makeStyles((theme) => ({ flexGrow: 1, height:'100%' }, - paper: { - padding: theme.spacing(2), - textAlign: 'center', - color: theme.palette.text.secondary, - }, containerSearchBar:{ marginTop: '20%', marginBottom: '50px', @@ -24,16 +18,13 @@ const useStyles = makeStyles((theme) => ({ } })); - const keyUpSearch = (event, loadingSolutions) => { - if(event.keyCode == 13){ loadingSolutions({ variables: { search: event.target.value }, }); - } } diff --git a/src/components/solution/Diagrams.js b/src/components/solution/Diagrams.js deleted file mode 100644 index eab0b20..0000000 --- a/src/components/solution/Diagrams.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; -import Card from '@material-ui/core/Card'; -import CardContent from '@material-ui/core/CardContent'; -import Typography from '@material-ui/core/Typography'; -import { Chip, Divider, List, ListItem, ListItemText } from '@material-ui/core'; - -const useStyles = makeStyles({ - root: { - minWidth: 275, - }, - bullet: { - display: 'inline-block', - margin: '0 2px', - transform: 'scale(0.8)', - }, - title: { - fontSize: 14, - }, - pos: { - marginBottom: 12, - }, -}); - -export default function Diagrams() { - const classes = useStyles(); - const bull = •; - - return ( - - - - Diagrams - - -
- - - - - - - - - - - -
-
- ); -} diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.js index adc39a0..f31e8f1 100644 --- a/src/components/solution/MainTabs.js +++ b/src/components/solution/MainTabs.js @@ -61,6 +61,8 @@ export default function FullWidthTabs() { > + + @@ -70,6 +72,12 @@ export default function FullWidthTabs() { + + Diagrams + + + References +
); diff --git a/src/components/solution/References.js b/src/components/solution/References.js deleted file mode 100644 index 4a21795..0000000 --- a/src/components/solution/References.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; -import Card from '@material-ui/core/Card'; -import CardContent from '@material-ui/core/CardContent'; -import Typography from '@material-ui/core/Typography'; -import { Chip, Divider, List, ListItem, ListItemText } from '@material-ui/core'; - -const useStyles = makeStyles({ - root: { - minWidth: 275, - }, - bullet: { - display: 'inline-block', - margin: '0 2px', - transform: 'scale(0.8)', - }, - title: { - fontSize: 14, - }, - pos: { - marginBottom: 12, - }, -}); - -export default function References() { - const classes = useStyles(); - const bull = •; - - return ( - - - - References - - -
- - - - - - - - - - - -
-
- ); -} diff --git a/src/components/solution/SolutionDetails.js b/src/components/solution/SolutionDetails.js index b9a0f03..eeb8e82 100644 --- a/src/components/solution/SolutionDetails.js +++ b/src/components/solution/SolutionDetails.js @@ -4,16 +4,12 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Divider } from '@material-ui/core'; +import PropTypes from 'prop-types'; const useStyles = makeStyles({ root: { minWidth: 275, }, - bullet: { - display: 'inline-block', - margin: '0 2px', - transform: 'scale(0.8)', - }, title: { fontSize: 14, }, @@ -22,9 +18,8 @@ const useStyles = makeStyles({ }, }); -export default function SolutionDetails() { +export default function SolutionDetails({solution}) { const classes = useStyles(); - const bull = •; return ( @@ -37,45 +32,49 @@ export default function SolutionDetails() { Name - E-commerce checkout + {solution.name} Customer - Santander Merchan PlatForm Solutions - SMPS + {solution.customer} Project - E-commerce - Digital payments + {solution.project} Market - Financial + {solution.market} Year / Month - 2020/12 + {solution.year_month} Created by - Robisson Oliveira + -- Description - Solution used to embeddding via javascript on Ecommerce + {solution.description} ); } + +SolutionDetails.propTypes = { + solution: PropTypes.object.isRequired +} \ No newline at end of file diff --git a/src/components/solution/Tags.js b/src/components/solution/Tags.js index 5fd1503..683b913 100644 --- a/src/components/solution/Tags.js +++ b/src/components/solution/Tags.js @@ -4,6 +4,7 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Chip, Divider } from '@material-ui/core'; +import PropTypes from 'prop-types'; const useStyles = makeStyles({ root: { @@ -14,9 +15,8 @@ const useStyles = makeStyles({ } }); -export default function Tags() { +export default function Tags({tags}) { const classes = useStyles(); - const bull = •; return ( @@ -26,16 +26,12 @@ export default function Tags() {
- - - - - - - - - + {tags.map(tag => )}
); } + +Tags.propTypes = { + tags: PropTypes.array.isRequired +} \ No newline at end of file From b8b5f5a2dd5880daf4534d332d47e0c292b87f02 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Fri, 1 Jan 2021 17:21:36 -0300 Subject: [PATCH 04/46] Add image load big_pictire from s3 --- pages/solution/[solution_id].js | 8 +++++-- src/components/solution/BigPicture.js | 30 +++++++++++++++++++++++++++ src/components/solution/MainTabs.js | 9 ++++++-- src/components/solution/Teams.js | 13 ++++++------ 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 src/components/solution/BigPicture.js diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 8865ee8..b459a25 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -20,7 +20,9 @@ const LIST_SOLUTION_BY_ID_QUERY = gql` market year_month description + big_picture tags + team_members created_at updated_at } @@ -39,6 +41,8 @@ export default function Solution() { const solution = data != undefined? data.solutionById : {}; const tags = solution.tags !== undefined ? solution.tags : []; + + const members = solution.team_members !== undefined ? solution.team_members : []; return ( <> @@ -49,12 +53,12 @@ export default function Solution() {
- +
- +
diff --git a/src/components/solution/BigPicture.js b/src/components/solution/BigPicture.js new file mode 100644 index 0000000..2ba8088 --- /dev/null +++ b/src/components/solution/BigPicture.js @@ -0,0 +1,30 @@ +import React from 'react'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import Typography from '@material-ui/core/Typography'; +import PropTypes from 'prop-types'; + +const Image = ({image}) => + +const NoImageComponent = () => ( + This soloution does not have a big picture diagram yet. + ) + +export default function BigPicture({solution}) { + let componentToRender = null; + + + return ( + + + {solution.big_picture !== undefined && solution.big_picture !== "" + ? + : } + + + ); +} + +BigPicture.propTypes = { + solution: PropTypes.object.isRequired +} \ No newline at end of file diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.js index f31e8f1..71da1c0 100644 --- a/src/components/solution/MainTabs.js +++ b/src/components/solution/MainTabs.js @@ -7,6 +7,7 @@ import Tab from '@material-ui/core/Tab'; import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; import Canvas from '../Canvas' +import BigPicture from "./BigPicture" function TabPanel(props) { const { children, value, index, ...other } = props; @@ -41,7 +42,7 @@ function a11yProps(index) { }; } -export default function FullWidthTabs() { +export default function MainTabs({solution}) { const theme = useTheme(); const [value, setValue] = React.useState(0); @@ -67,7 +68,7 @@ export default function FullWidthTabs() {
- + @@ -82,3 +83,7 @@ export default function FullWidthTabs() { ); } + +MainTabs.propTypes = { + solution: PropTypes.object.isRequired +} \ No newline at end of file diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.js index 7ab4cd0..feb147e 100644 --- a/src/components/solution/Teams.js +++ b/src/components/solution/Teams.js @@ -4,6 +4,7 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Avatar, Chip, Divider } from '@material-ui/core'; +import PropTypes from "prop-types" const useStyles = makeStyles({ root: { @@ -14,7 +15,7 @@ const useStyles = makeStyles({ } }); -export default function Teams() { +export default function Teams({members}) { const classes = useStyles(); return ( @@ -25,12 +26,12 @@ export default function Teams() {
- RC} /> - RP} /> - RC} /> - GO} /> - LA} /> + {members.map(member => )} ); } + +Teams.propTypes = { + members: PropTypes.array.isRequired +} \ No newline at end of file From 320ba2272f1c80af897839855423ec71f74b144e Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sat, 2 Jan 2021 10:25:40 -0300 Subject: [PATCH 05/46] Partial upload --- package.json | 1 + src/components/solution/BigPicture.js | 29 ++++++++----- src/components/solution/UploadButton.js | 54 +++++++++++++++++++++++++ src/lib/apolloClient.js | 5 ++- yarn.lock | 18 ++++++++- 5 files changed, 92 insertions(+), 15 deletions(-) create mode 100644 src/components/solution/UploadButton.js diff --git a/package.json b/package.json index a0701d2..4b7166d 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@apollo/client": "^3.3.6", "@material-ui/core": "latest", "@material-ui/icons": "^4.11.2", + "apollo-upload-client": "^14.1.3", "axios": "^0.21.1", "clsx": "latest", "graphql": "^15.4.0", diff --git a/src/components/solution/BigPicture.js b/src/components/solution/BigPicture.js index 2ba8088..d5a3550 100644 --- a/src/components/solution/BigPicture.js +++ b/src/components/solution/BigPicture.js @@ -3,28 +3,35 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import PropTypes from 'prop-types'; +import UploadButton from "./UploadButton" const Image = ({image}) => -const NoImageComponent = () => ( - This soloution does not have a big picture diagram yet. - ) +const NoImageComponent = () => ( + <> + + This soloution does not have a big picture diagram yet. + + { + console.log(image); + }} /> + + ) -export default function BigPicture({solution}) { - let componentToRender = null; - - - return ( +const BigPicture = ({solution}) => + ( - {solution.big_picture !== undefined && solution.big_picture !== "" + {solution.big_picture !== null && solution.big_picture != "" ? : } ); -} + BigPicture.propTypes = { solution: PropTypes.object.isRequired -} \ No newline at end of file +} + +export default BigPicture; \ No newline at end of file diff --git a/src/components/solution/UploadButton.js b/src/components/solution/UploadButton.js new file mode 100644 index 0000000..c6beff9 --- /dev/null +++ b/src/components/solution/UploadButton.js @@ -0,0 +1,54 @@ +import React, { useState } from 'react'; +import Button from '@material-ui/core/Button'; +import { makeStyles } from '@material-ui/core'; +import PropTypes from "prop-types"; +import { gql, useMutation } from '@apollo/client'; + +const useStyles = makeStyles((theme) => ({ + button: { + display: "none" + }, + div: { + textAlign: "center" + } +})); + +const SINGLE_UPLOAD = gql` + mutation($file: Upload!) { + singleFileUpload(file: $file) + } +`; + +export default function UploadButton() { + const classes = useStyles(); + + const [mutate, { loading, error }] = useMutation(SINGLE_UPLOAD); + const onChange = ({ + target: { + validity, + files: [file] + } + }) => validity.valid && mutate({ variables: { file } }); + + if (loading) return
Loading...
; + if (error) return
{JSON.stringify(error, null, 2)}
; + + + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/lib/apolloClient.js b/src/lib/apolloClient.js index dcdbdc6..b299b97 100644 --- a/src/lib/apolloClient.js +++ b/src/lib/apolloClient.js @@ -1,12 +1,13 @@ import { useMemo } from "react"; - import { ApolloClient, HttpLink, InMemoryCache } from "@apollo/client"; +import { ApolloClient, InMemoryCache } from "@apollo/client"; +import { createUploadLink } from 'apollo-upload-client' let apolloClient; export function createApolloClient() { return new ApolloClient({ ssrMode: typeof window === "undefined", // set to true for SSR - link: new HttpLink({ + link: createUploadLink({ uri: "http://localhost/graphql", }), cache: new InMemoryCache(), diff --git a/yarn.lock b/yarn.lock index e9ae987..d2b39c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -53,7 +53,7 @@ dependencies: cross-fetch "3.0.6" -"@apollo/client@^3.3.6": +"@apollo/client@^3.2.5", "@apollo/client@^3.3.6": version "3.3.6" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.6.tgz#f359646308167f38d5bc498dfc2344c888400093" integrity sha512-XSm/STyNS8aHdDigLLACKNMHwI0qaQmEHWHtTP+jHe/E1wZRnn66VZMMgwKLy2V4uHISHfmiZ4KpUKDPeJAKqg== @@ -93,7 +93,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": +"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== @@ -567,6 +567,15 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +apollo-upload-client@^14.1.3: + version "14.1.3" + resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-14.1.3.tgz#91f39011897bd08e99c0de0164e77ad2f3402247" + integrity sha512-X2T+7pHk5lcaaWnvP9h2tuAAMCzOW6/9juedQ0ZuGp3Ufl81BpDISlCs0o6u29wBV0RRT/QpMU2gbP+3FCfVpQ== + dependencies: + "@apollo/client" "^3.2.5" + "@babel/runtime" "^7.12.5" + extract-files "^9.0.0" + aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1691,6 +1700,11 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" From c0c566b54693c914201b099eacc7e81f69b91e53 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sat, 2 Jan 2021 15:58:20 -0300 Subject: [PATCH 06/46] Finished upload service --- src/components/solution/UploadButton.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/solution/UploadButton.js b/src/components/solution/UploadButton.js index c6beff9..bf78bbb 100644 --- a/src/components/solution/UploadButton.js +++ b/src/components/solution/UploadButton.js @@ -15,7 +15,15 @@ const useStyles = makeStyles((theme) => ({ const SINGLE_UPLOAD = gql` mutation($file: Upload!) { - singleFileUpload(file: $file) + singleFileUpload(file: $file){ + attachment_id + url + filename + encoding + mimetype + created_at + updated_at + } } `; From 393fd3f5b91b22d46436e671e3641baa2de01061 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 3 Jan 2021 10:22:54 -0300 Subject: [PATCH 07/46] Finised uplaod button --- pages/solution/[solution_id].js | 3 +- src/components/ListSolutions.js | 2 +- src/components/solution/BigPicture.js | 10 ++- .../solution/Upload/UploadButton.js | 39 ++++++++++++ .../solution/Upload/UploadButtonContainer.js | 43 +++++++++++++ src/components/solution/UploadButton.js | 62 ------------------- src/reducers/boardReducer.js | 16 ----- src/reducers/index.js | 20 ++++-- 8 files changed, 105 insertions(+), 90 deletions(-) create mode 100644 src/components/solution/Upload/UploadButton.js create mode 100644 src/components/solution/Upload/UploadButtonContainer.js delete mode 100644 src/components/solution/UploadButton.js delete mode 100644 src/reducers/boardReducer.js diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index b459a25..12163bc 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import Container from '@material-ui/core/Container'; import AppBar from '../../src/components/AppBar'; import { useRouter } from 'next/router' @@ -9,6 +9,7 @@ import MainTabs from '../../src/components/solution/MainTabs'; import Tags from '../../src/components/solution/Tags'; import Teams from '../../src/components/solution/Teams'; import { gql, useQuery } from '@apollo/client'; +import { useDispatch, useSelector } from 'react-redux'; const LIST_SOLUTION_BY_ID_QUERY = gql` query($solution_id: String!) { diff --git a/src/components/ListSolutions.js b/src/components/ListSolutions.js index 201ffbb..989f62a 100644 --- a/src/components/ListSolutions.js +++ b/src/components/ListSolutions.js @@ -11,7 +11,7 @@ const useStyles = makeStyles((theme) => ({ export default function ListSolutions({solutions}) { const classes = useStyles(); - console.log(solutions); + return (
diff --git a/src/components/solution/BigPicture.js b/src/components/solution/BigPicture.js index d5a3550..5500bff 100644 --- a/src/components/solution/BigPicture.js +++ b/src/components/solution/BigPicture.js @@ -3,18 +3,16 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import PropTypes from 'prop-types'; -import UploadButton from "./UploadButton" +import UploadButtonContainer from "./Upload/UploadButtonContainer" const Image = ({image}) => -const NoImageComponent = () => ( +const NoImageComponent = ({solution}) => ( <> This soloution does not have a big picture diagram yet. - { - console.log(image); - }} /> + ) @@ -24,7 +22,7 @@ const BigPicture = ({solution}) => {solution.big_picture !== null && solution.big_picture != "" ? - : } + : } ); diff --git a/src/components/solution/Upload/UploadButton.js b/src/components/solution/Upload/UploadButton.js new file mode 100644 index 0000000..dedab2f --- /dev/null +++ b/src/components/solution/Upload/UploadButton.js @@ -0,0 +1,39 @@ +import React from 'react'; +import Button from '@material-ui/core/Button'; +import { makeStyles } from '@material-ui/core'; +import PropTypes from "prop-types"; + +const useStyles = makeStyles((theme) => ({ + button: { + display: "none" + }, + div: { + textAlign: "center" + } +})); + +export default function UploadButton({onChange}) { + const classes = useStyles(); + + return ( +
+ +
+ ); +} + +UploadButton.prototype = { + onChange: PropTypes.func.isRequired +} \ No newline at end of file diff --git a/src/components/solution/Upload/UploadButtonContainer.js b/src/components/solution/Upload/UploadButtonContainer.js new file mode 100644 index 0000000..238624c --- /dev/null +++ b/src/components/solution/Upload/UploadButtonContainer.js @@ -0,0 +1,43 @@ +import React from 'react'; +import PropTypes from "prop-types"; +import { gql, useMutation } from '@apollo/client'; +import UploadButton from "./UploadButton" + +const SINGLE_UPLOAD = gql` + mutation($file: Upload!, $solution_id: String!) { + singleFileUpload(solution_id: $solution_id, file: $file){ + attachment_id + url + filename + encoding + mimetype + created_at + updated_at + } + } +`; + +const update = (cache, fetchResult) => { + console.log(cache, fetchResult); +} + +export default function UploadButtonContainer({solution}) { + const [mutate, { loading, error, data }] = useMutation(SINGLE_UPLOAD); + const onChange = ({ + target: { + validity, + files: [file] + } + }) => validity.valid && mutate({variables: { file, solution_id: solution.solution_id },update}); + + if (loading) return
Loading...
; + if (error) return
{JSON.stringify(error, null, 2)}
; + + return ( + + ); +} + +UploadButtonContainer.prototype = { + solution: PropTypes.object.isRequired +} \ No newline at end of file diff --git a/src/components/solution/UploadButton.js b/src/components/solution/UploadButton.js deleted file mode 100644 index bf78bbb..0000000 --- a/src/components/solution/UploadButton.js +++ /dev/null @@ -1,62 +0,0 @@ -import React, { useState } from 'react'; -import Button from '@material-ui/core/Button'; -import { makeStyles } from '@material-ui/core'; -import PropTypes from "prop-types"; -import { gql, useMutation } from '@apollo/client'; - -const useStyles = makeStyles((theme) => ({ - button: { - display: "none" - }, - div: { - textAlign: "center" - } -})); - -const SINGLE_UPLOAD = gql` - mutation($file: Upload!) { - singleFileUpload(file: $file){ - attachment_id - url - filename - encoding - mimetype - created_at - updated_at - } - } -`; - -export default function UploadButton() { - const classes = useStyles(); - - const [mutate, { loading, error }] = useMutation(SINGLE_UPLOAD); - const onChange = ({ - target: { - validity, - files: [file] - } - }) => validity.valid && mutate({ variables: { file } }); - - if (loading) return
Loading...
; - if (error) return
{JSON.stringify(error, null, 2)}
; - - - return ( -
- -
- ); -} \ No newline at end of file diff --git a/src/reducers/boardReducer.js b/src/reducers/boardReducer.js deleted file mode 100644 index 33d2ecd..0000000 --- a/src/reducers/boardReducer.js +++ /dev/null @@ -1,16 +0,0 @@ -import actionsType, { ADD_BOARD_LOADED } from "../actions/actionsType"; - -const boards = []; - -export default function boardReducer(state = boards, action) { - switch (action.type) { - case actionsType.BOARDS_LOADED_SUCCESS: - return [...action.boards]; - - case ADD_BOARD_LOADED: - return [...state, action.board]; - - default: - return state; - } -} diff --git a/src/reducers/index.js b/src/reducers/index.js index 23cc7cd..fdd8274 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -1,7 +1,19 @@ import { combineReducers } from "redux"; -import userReducer from "./userReducer"; -import boardReducer from "./boardReducer"; -const reducer = combineReducers({ userReducer, boardReducer }); +export const SOLUTION_LOADED = 'SOLUTION_LOADED'; -export default reducer; +const solution = {}; + +function solutionReducer(state = solution, action) { + switch (action.type) { + case SOLUTION_LOADED: + return {...action.solution}; + + default: + return state; + } +} + +const reducer = combineReducers({ solutionReducer }); + +export default reducer; \ No newline at end of file From fac6e6affed74c5f3a150ef4ee01f7b30294d64a Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 3 Jan 2021 11:29:05 -0300 Subject: [PATCH 08/46] Finishied big picture upload --- pages/solution/[solution_id].js | 25 +++---------------- src/components/Search.js | 2 +- src/components/solution/Tags.js | 17 +++++++++++-- src/components/solution/Teams.js | 15 ++++++++++- .../solution/Upload/UploadButtonContainer.js | 18 ++++++++----- src/components/solution/queries.js | 20 +++++++++++++++ 6 files changed, 65 insertions(+), 32 deletions(-) create mode 100644 src/components/solution/queries.js diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 12163bc..0af6c34 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import Container from '@material-ui/core/Container'; import AppBar from '../../src/components/AppBar'; import { useRouter } from 'next/router' @@ -8,27 +8,8 @@ import SolutionDetails from '../../src/components/solution/SolutionDetails'; import MainTabs from '../../src/components/solution/MainTabs'; import Tags from '../../src/components/solution/Tags'; import Teams from '../../src/components/solution/Teams'; -import { gql, useQuery } from '@apollo/client'; -import { useDispatch, useSelector } from 'react-redux'; - -const LIST_SOLUTION_BY_ID_QUERY = gql` - query($solution_id: String!) { - solutionById(solution_id: $solution_id){ - solution_id - name - customer - project - market - year_month - description - big_picture - tags - team_members - created_at - updated_at - } - } -`; +import { useQuery } from '@apollo/client'; +import {LIST_SOLUTION_BY_ID_QUERY} from "../../src/components/solution/queries"; export default function Solution() { diff --git a/src/components/Search.js b/src/components/Search.js index 2f1203c..f5a949e 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -34,7 +34,7 @@ export default function Search({loadingSolutions}) { return (
- +
Architecture Center diff --git a/src/components/solution/Tags.js b/src/components/solution/Tags.js index 683b913..f88021b 100644 --- a/src/components/solution/Tags.js +++ b/src/components/solution/Tags.js @@ -3,8 +3,9 @@ import { makeStyles } from '@material-ui/core/styles'; import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; -import { Chip, Divider } from '@material-ui/core'; +import { Button, Chip, Divider } from '@material-ui/core'; import PropTypes from 'prop-types'; +import AddIcon from '@material-ui/icons/Add'; const useStyles = makeStyles({ root: { @@ -12,6 +13,9 @@ const useStyles = makeStyles({ }, chip: { margin: 3 + }, + button: { + float: "right" } }); @@ -23,10 +27,19 @@ export default function Tags({tags}) { Tags +
- {tags.map(tag => )} + {tags.map(tag => )}
); diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.js index feb147e..3293ec7 100644 --- a/src/components/solution/Teams.js +++ b/src/components/solution/Teams.js @@ -3,8 +3,9 @@ import { makeStyles } from '@material-ui/core/styles'; import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; -import { Avatar, Chip, Divider } from '@material-ui/core'; +import { Button, Chip, Divider } from '@material-ui/core'; import PropTypes from "prop-types" +import AddIcon from '@material-ui/icons/Add'; const useStyles = makeStyles({ root: { @@ -12,6 +13,9 @@ const useStyles = makeStyles({ }, chip: { margin: 3 + }, + button: { + float: "right" } }); @@ -23,6 +27,15 @@ export default function Teams({members}) { Team +
diff --git a/src/components/solution/Upload/UploadButtonContainer.js b/src/components/solution/Upload/UploadButtonContainer.js index 238624c..318ad2c 100644 --- a/src/components/solution/Upload/UploadButtonContainer.js +++ b/src/components/solution/Upload/UploadButtonContainer.js @@ -17,10 +17,6 @@ const SINGLE_UPLOAD = gql` } `; -const update = (cache, fetchResult) => { - console.log(cache, fetchResult); -} - export default function UploadButtonContainer({solution}) { const [mutate, { loading, error, data }] = useMutation(SINGLE_UPLOAD); const onChange = ({ @@ -28,7 +24,17 @@ export default function UploadButtonContainer({solution}) { validity, files: [file] } - }) => validity.valid && mutate({variables: { file, solution_id: solution.solution_id },update}); + }) => validity.valid + && mutate({ + variables: { file, solution_id: solution.solution_id }, + update: (cache, {data: {singleFileUpload}}) => { + cache.modify({ + fields: { + solutionById: (existingTodos) => ({...existingTodos, big_picture: singleFileUpload.url}) + } + }) + } + }); if (loading) return
Loading...
; if (error) return
{JSON.stringify(error, null, 2)}
; @@ -39,5 +45,5 @@ export default function UploadButtonContainer({solution}) { } UploadButtonContainer.prototype = { - solution: PropTypes.object.isRequired + solution: PropTypes.object.isRequired, } \ No newline at end of file diff --git a/src/components/solution/queries.js b/src/components/solution/queries.js new file mode 100644 index 0000000..a573c0d --- /dev/null +++ b/src/components/solution/queries.js @@ -0,0 +1,20 @@ +import { gql } from '@apollo/client'; + +export const LIST_SOLUTION_BY_ID_QUERY = gql` + query($solution_id: String!) { + solutionById(solution_id: $solution_id){ + solution_id + name + customer + project + market + year_month + description + big_picture + tags + team_members + created_at + updated_at + } + } +`; \ No newline at end of file From 743fe12d3edce3ea4b592e231c0750af9e33da53 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 3 Jan 2021 13:16:57 -0300 Subject: [PATCH 09/46] Finished tags and teams --- pages/solution/[solution_id].js | 8 ++-- src/components/Solution.js | 1 + src/components/solution/InputTextTag.js | 24 +++++++++++ .../solution/InputTextTagContainer.js | 43 +++++++++++++++++++ .../solution/InputTextTeamContainer.js | 43 +++++++++++++++++++ src/components/solution/Tags.js | 12 ++++-- src/components/solution/Teams.js | 13 ++++-- .../solution/operations/mutaions.js | 19 ++++++++ .../solution/{ => operations}/queries.js | 0 9 files changed, 151 insertions(+), 12 deletions(-) create mode 100644 src/components/solution/InputTextTag.js create mode 100644 src/components/solution/InputTextTagContainer.js create mode 100644 src/components/solution/InputTextTeamContainer.js create mode 100644 src/components/solution/operations/mutaions.js rename src/components/solution/{ => operations}/queries.js (100%) diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 0af6c34..9d4eb94 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -9,7 +9,7 @@ import MainTabs from '../../src/components/solution/MainTabs'; import Tags from '../../src/components/solution/Tags'; import Teams from '../../src/components/solution/Teams'; import { useQuery } from '@apollo/client'; -import {LIST_SOLUTION_BY_ID_QUERY} from "../../src/components/solution/queries"; +import {LIST_SOLUTION_BY_ID_QUERY} from "../../src/components/solution/operations/queries"; export default function Solution() { @@ -21,9 +21,7 @@ export default function Solution() { }); const solution = data != undefined? data.solutionById : {}; - const tags = solution.tags !== undefined ? solution.tags : []; - const members = solution.team_members !== undefined ? solution.team_members : []; return ( @@ -40,9 +38,9 @@ export default function Solution() {
- +
- +
diff --git a/src/components/Solution.js b/src/components/Solution.js index 278c64d..28c11bc 100644 --- a/src/components/Solution.js +++ b/src/components/Solution.js @@ -12,6 +12,7 @@ import Link from "next/link" const useStyles = makeStyles((theme) => ({ root: { maxWidth: 345, + minWidth: 345 }, media: { height: 0, diff --git a/src/components/solution/InputTextTag.js b/src/components/solution/InputTextTag.js new file mode 100644 index 0000000..aaf0495 --- /dev/null +++ b/src/components/solution/InputTextTag.js @@ -0,0 +1,24 @@ +import React, { useEffect, useRef } from 'react'; +import PropTypes from "prop-types"; +import { TextField } from '@material-ui/core'; + +const InputTextTag = ({label, onKeyUp, onFocusOut}) => { + return( + + ) +} + +export default InputTextTag; + +InputTextTag.prototype = { + label: PropTypes.string.isRequired, + onKeyUp: PropTypes.func.isRequired, + onFocusOut: PropTypes.func.isRequired, +} \ No newline at end of file diff --git a/src/components/solution/InputTextTagContainer.js b/src/components/solution/InputTextTagContainer.js new file mode 100644 index 0000000..c74049a --- /dev/null +++ b/src/components/solution/InputTextTagContainer.js @@ -0,0 +1,43 @@ +import { useMutation } from '@apollo/client'; +import React from 'react'; +import InputTextTag from "./InputTextTag"; +import {ADD_TAG_TO_SOLUTION} from "./operations/mutaions"; + +const ENTER_KEY = 13; + +const InputTextTagContainer = ({solution_id, setVisible}) => { + + const [saveTemMeber] = useMutation(ADD_TAG_TO_SOLUTION); + + const onKeyUp = ({keyCode, target})=> { + if(keyCode == ENTER_KEY){ + saveTemMeber( + {variables:{ solution_id, tag: target.value }, + update: (cache, {data:{createTagSolution}}) => { + cache.modify({ + fields: { + solutionById: (existingSolution) => ({...existingSolution, tags: createTagSolution.tags}) + } + }) + } + }); + + target.value = ''; + setVisible(false); + } + } + + const onFocusOut = ()=> { + setVisible(false); + } + + return( + + ) +} + +export default InputTextTagContainer; \ No newline at end of file diff --git a/src/components/solution/InputTextTeamContainer.js b/src/components/solution/InputTextTeamContainer.js new file mode 100644 index 0000000..b6a03a0 --- /dev/null +++ b/src/components/solution/InputTextTeamContainer.js @@ -0,0 +1,43 @@ +import { useMutation } from '@apollo/client'; +import React from 'react'; +import InputTextTag from "./InputTextTag"; +import {ADD_MEMBER_TO_SOLUTION} from "./operations/mutaions"; + +const ENTER_KEY = 13; + +const InputTextTagContainer = ({solution_id, setVisible}) => { + + const [saveTemMeber] = useMutation(ADD_MEMBER_TO_SOLUTION); + + const onKeyUp = ({keyCode, target})=> { + if(keyCode == ENTER_KEY){ + saveTemMeber( + {variables:{ solution_id, team_member: target.value }, + update: (cache, {data:{createTeamMemberSolution}}) => { + cache.modify({ + fields: { + solutionById: (existingSolution) => ({...existingSolution, team_members: createTeamMemberSolution.team_members}) + } + }) + } + }); + + target.value = ''; + setVisible(false); + } + } + + const onFocusOut = ()=> { + setVisible(false); + } + + return( + + ) +} + +export default InputTextTagContainer; \ No newline at end of file diff --git a/src/components/solution/Tags.js b/src/components/solution/Tags.js index f88021b..de5a22a 100644 --- a/src/components/solution/Tags.js +++ b/src/components/solution/Tags.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; @@ -6,6 +6,7 @@ import Typography from '@material-ui/core/Typography'; import { Button, Chip, Divider } from '@material-ui/core'; import PropTypes from 'prop-types'; import AddIcon from '@material-ui/icons/Add'; +import InputTextTagContainer from './InputTextTagContainer'; const useStyles = makeStyles({ root: { @@ -19,9 +20,11 @@ const useStyles = makeStyles({ } }); -export default function Tags({tags}) { +export default function Tags({tags, solution_id}) { const classes = useStyles(); + const [addTagVisible, setAddTagVisible] = useState(false); + return ( @@ -33,11 +36,13 @@ export default function Tags({tags}) { className={classes.button} startIcon={} size="small" + onClick={() => setAddTagVisible(!addTagVisible)} > tag + {addTagVisible ? : null}
{tags.map(tag => )}
@@ -46,5 +51,6 @@ export default function Tags({tags}) { } Tags.propTypes = { - tags: PropTypes.array.isRequired + tags: PropTypes.array.isRequired, + solution_id: PropTypes.string.isRequired } \ No newline at end of file diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.js index 3293ec7..877d6f2 100644 --- a/src/components/solution/Teams.js +++ b/src/components/solution/Teams.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; @@ -6,6 +6,7 @@ import Typography from '@material-ui/core/Typography'; import { Button, Chip, Divider } from '@material-ui/core'; import PropTypes from "prop-types" import AddIcon from '@material-ui/icons/Add'; +import InputTextTeamContainer from "./InputTextTeamContainer"; const useStyles = makeStyles({ root: { @@ -19,9 +20,10 @@ const useStyles = makeStyles({ } }); -export default function Teams({members}) { +export default function Teams({members, solution_id}) { const classes = useStyles(); - + const [addTeamMemberVisible, setAddTeamMemberVisible] = useState(false); + return ( @@ -33,11 +35,13 @@ export default function Teams({members}) { className={classes.button} startIcon={} size="small" + onClick={() => setAddTeamMemberVisible(!addTeamMemberVisible)} > member + {addTeamMemberVisible ? : null}
{members.map(member => )}
@@ -46,5 +50,6 @@ export default function Teams({members}) { } Teams.propTypes = { - members: PropTypes.array.isRequired + members: PropTypes.array.isRequired, + solution_id: PropTypes.string.isRequired } \ No newline at end of file diff --git a/src/components/solution/operations/mutaions.js b/src/components/solution/operations/mutaions.js new file mode 100644 index 0000000..7c26072 --- /dev/null +++ b/src/components/solution/operations/mutaions.js @@ -0,0 +1,19 @@ +import { gql } from '@apollo/client'; + +export const ADD_MEMBER_TO_SOLUTION = gql` + mutation createMember($solution_id: String!, $team_member: String!){ + createTeamMemberSolution(solution_id: $solution_id, team_member: $team_member){ + team_members + solution_id + } + } +`; + +export const ADD_TAG_TO_SOLUTION = gql` + mutation createTag($solution_id: String!, $tag: String!){ + createTagSolution(solution_id: $solution_id, tag: $tag){ + tags + solution_id + } + } +`; \ No newline at end of file diff --git a/src/components/solution/queries.js b/src/components/solution/operations/queries.js similarity index 100% rename from src/components/solution/queries.js rename to src/components/solution/operations/queries.js From e4889ee63596f45a304024a6da5735e8e6798ce4 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 3 Jan 2021 17:06:32 -0300 Subject: [PATCH 10/46] finished canvas by solution --- src/components/Canvas/CanvasContainer.js | 24 +++++++ src/components/Canvas/index.js | 73 +++++++++------------ src/components/Canvas/operations/queries.js | 21 ++++++ src/components/solution/MainTabs.js | 4 +- 4 files changed, 79 insertions(+), 43 deletions(-) create mode 100644 src/components/Canvas/CanvasContainer.js create mode 100644 src/components/Canvas/operations/queries.js diff --git a/src/components/Canvas/CanvasContainer.js b/src/components/Canvas/CanvasContainer.js new file mode 100644 index 0000000..9959303 --- /dev/null +++ b/src/components/Canvas/CanvasContainer.js @@ -0,0 +1,24 @@ +import React from 'react'; +import PropTypes from "prop-types" +import Canvas from "./index" +import {LIST_CANVAS_BY_ID_QUERY} from "./operations/queries" +import { useQuery } from '@apollo/client'; + +const CanvasContainer = ({solution_id}) => { + const { loading, error, data } = useQuery(LIST_CANVAS_BY_ID_QUERY, { + variables: { solution_id }, + }); + + const canvas = data != undefined? data.canvasBySolutionId : {}; + + return ( + + ) +} + +CanvasContainer.propTypes = { + solution_id: PropTypes.string.isRequired +} + + +export default CanvasContainer; \ No newline at end of file diff --git a/src/components/Canvas/index.js b/src/components/Canvas/index.js index 11c3eb8..4299db9 100644 --- a/src/components/Canvas/index.js +++ b/src/components/Canvas/index.js @@ -1,25 +1,23 @@ import React from 'react'; -import { Chip, Grid, makeStyles, Paper, Typography } from '@material-ui/core'; +import { Grid, makeStyles, Paper, Typography } from '@material-ui/core'; import purple from '@material-ui/core/colors/purple'; +import PropTypes from "prop-types" + const useStyles = makeStyles(theme => ({ column: { height: 600 }, mainAdvantages:{ height: 150, - }, mainDificulties:{ height: 150, - }, fullRetangle: { height: '100%', - }, halfRetangle: { height: '50%', - }, titles:{ padding: 5 @@ -34,17 +32,30 @@ const useStylesPostIt = makeStyles({ } }); -const PostIt = ({children}) => { +const PostIt = ({description}) => { const classes = useStylesPostIt(); return (
- {children} + {description}
); } +// Dependencies +const Segment = ({name, items}) => { + const classes = useStyles(); + + return( + <> + + {name} + + {items.map(item => )} + + ) +} -const canvas = () => { +const canvas = ({canvas}) => { const classes = useStyles(); @@ -53,69 +64,45 @@ const canvas = () => { - - Dependencies - - - Solução de vault - - - Gateway de pagamento - + - - Technology - + - - Patterns - + - - What problem does this solution solve? - + - - Functional requirements - + - - Non functional requirements - + - - Context - + - - Main dificulties - + - - Main advantages - + @@ -123,4 +110,8 @@ const canvas = () => { ) } +canvas.propTypes = { + canvas: PropTypes.object.isRequired +} + export default canvas; \ No newline at end of file diff --git a/src/components/Canvas/operations/queries.js b/src/components/Canvas/operations/queries.js new file mode 100644 index 0000000..2ff153c --- /dev/null +++ b/src/components/Canvas/operations/queries.js @@ -0,0 +1,21 @@ +import { gql } from '@apollo/client'; + +export const LIST_CANVAS_BY_ID_QUERY = gql` +query canvasById($solution_id: String!){ + canvasBySolutionId(solution_id: $solution_id){ + canvas_id + solution_id + dependencies + technology + patterns + problem + func_requirement + non_func_requirement + context + difficulties + advantages + created_at + updated_at + } +} +`; \ No newline at end of file diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.js index 71da1c0..cc150b0 100644 --- a/src/components/solution/MainTabs.js +++ b/src/components/solution/MainTabs.js @@ -6,7 +6,7 @@ import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; -import Canvas from '../Canvas' +import CanvasContainer from '../Canvas/CanvasContainer' import BigPicture from "./BigPicture" function TabPanel(props) { @@ -71,7 +71,7 @@ export default function MainTabs({solution}) { - + Diagrams From 1ec4d03d873111d52d4b7a41aa950c20222f0f31 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 4 Jan 2021 07:07:31 -0300 Subject: [PATCH 11/46] Finished canvas --- pages/solution/[solution_id].js | 3 +- src/components/Canvas/CanvasContainer.js | 9 ++- src/components/Canvas/CreateItemContainer.js | 46 ++++++++++++++ src/components/Canvas/index.js | 63 +++++++++++++------ src/components/Canvas/operations/mutations.js | 22 +++++++ src/components/solution/MainTabs.js | 9 +-- src/components/solution/operations/queries.js | 37 +++++++---- 7 files changed, 150 insertions(+), 39 deletions(-) create mode 100644 src/components/Canvas/CreateItemContainer.js create mode 100644 src/components/Canvas/operations/mutations.js diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].js index 9d4eb94..e4945cd 100644 --- a/pages/solution/[solution_id].js +++ b/pages/solution/[solution_id].js @@ -21,6 +21,7 @@ export default function Solution() { }); const solution = data != undefined? data.solutionById : {}; + const canvas = data != undefined? data.canvasBySolutionId : {}; const tags = solution.tags !== undefined ? solution.tags : []; const members = solution.team_members !== undefined ? solution.team_members : []; @@ -33,7 +34,7 @@ export default function Solution() {
- + diff --git a/src/components/Canvas/CanvasContainer.js b/src/components/Canvas/CanvasContainer.js index 9959303..115dcea 100644 --- a/src/components/Canvas/CanvasContainer.js +++ b/src/components/Canvas/CanvasContainer.js @@ -4,21 +4,20 @@ import Canvas from "./index" import {LIST_CANVAS_BY_ID_QUERY} from "./operations/queries" import { useQuery } from '@apollo/client'; -const CanvasContainer = ({solution_id}) => { +const CanvasContainer = ({canva}) => { const { loading, error, data } = useQuery(LIST_CANVAS_BY_ID_QUERY, { variables: { solution_id }, }); - const canvas = data != undefined? data.canvasBySolutionId : {}; - + let canvas = data != undefined ? data.canvasBySolutionId : {}; + return ( ) } CanvasContainer.propTypes = { - solution_id: PropTypes.string.isRequired + canvas: PropTypes.object.isRequired } - export default CanvasContainer; \ No newline at end of file diff --git a/src/components/Canvas/CreateItemContainer.js b/src/components/Canvas/CreateItemContainer.js new file mode 100644 index 0000000..2bc9117 --- /dev/null +++ b/src/components/Canvas/CreateItemContainer.js @@ -0,0 +1,46 @@ +import { useMutation } from '@apollo/client'; +import React from 'react'; +import InputTextTag from "../solution/InputTextTag"; +import {CREATE_ITEM_CANVAS} from "./operations/mutations"; + +const ENTER_KEY = 13; + +const CreateItemContainer = ({canvas_id, setVisible, item}) => { + + const [addItemCanvas] = useMutation(CREATE_ITEM_CANVAS); + + const onKeyUp = ({keyCode, target})=> { + if(keyCode == ENTER_KEY){ + console.log({ canvas_id, value: target.value, item }); + addItemCanvas( + {variables:{ canvas_id, value: target.value, item }, + update: (cache, {data:{createItemCanvas}}) => { + console.log("CACHE", item, createItemCanvas[item]); + + cache.modify({ + fields: { + canvasBySolutionId: (existingItem) => ({...existingItem, [item]: createItemCanvas[item]}) + } + }) + } + }); + + target.value = ''; + setVisible(false); + } + } + + const onFocusOut = ()=> { + setVisible(false); + } + + return( + + ) +} + +export default CreateItemContainer; \ No newline at end of file diff --git a/src/components/Canvas/index.js b/src/components/Canvas/index.js index 4299db9..60a429e 100644 --- a/src/components/Canvas/index.js +++ b/src/components/Canvas/index.js @@ -1,7 +1,9 @@ -import React from 'react'; -import { Grid, makeStyles, Paper, Typography } from '@material-ui/core'; +import React, { useState } from 'react'; +import { Button, Grid, makeStyles, Paper, Typography } from '@material-ui/core'; import purple from '@material-ui/core/colors/purple'; import PropTypes from "prop-types" +import CreateItemContainer from "./CreateItemContainer" +import AddIcon from '@material-ui/icons/Add'; const useStyles = makeStyles(theme => ({ column: { @@ -21,6 +23,9 @@ const useStyles = makeStyles(theme => ({ }, titles:{ padding: 5 + }, + button: { + float: "right" } })); @@ -42,67 +47,89 @@ const PostIt = ({description}) => { ); } // Dependencies -const Segment = ({name, items}) => { +const Segment = ({name, items, canvas_id, propName}) => { const classes = useStyles(); - + const [addItemVisible, setAddItemVisible] = useState(false); + return( <> - - {name} - - {items.map(item => )} + + {name} + + + {addItemVisible ? : null} + {items.map(item => )} ) } const canvas = ({canvas}) => { + + const { + dependencies, + technology, + patterns, + problem, + func_requirement, + non_func_requirement, + context, + difficulties, + advantages + } = canvas const classes = useStyles(); - + return ( <> - + - + - + - + - + - + - + - + - + diff --git a/src/components/Canvas/operations/mutations.js b/src/components/Canvas/operations/mutations.js new file mode 100644 index 0000000..11c48fa --- /dev/null +++ b/src/components/Canvas/operations/mutations.js @@ -0,0 +1,22 @@ +import { gql } from '@apollo/client'; + +export const CREATE_ITEM_CANVAS = gql` +mutation createItemCanvas($value: String!, $item: String!, $canvas_id: String!) { + createItemCanvas(value:$value, item: $item, canvas_id: $canvas_id){ + canvas_id + solution_id + dependencies + technology + patterns + problem + func_requirement + non_func_requirement + context + difficulties + advantages + created_at + updated_at + + } +} +`; \ No newline at end of file diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.js index cc150b0..4396d82 100644 --- a/src/components/solution/MainTabs.js +++ b/src/components/solution/MainTabs.js @@ -6,7 +6,7 @@ import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; -import CanvasContainer from '../Canvas/CanvasContainer' +import Canvas from '../Canvas' import BigPicture from "./BigPicture" function TabPanel(props) { @@ -42,7 +42,7 @@ function a11yProps(index) { }; } -export default function MainTabs({solution}) { +export default function MainTabs({solution, canvas}) { const theme = useTheme(); const [value, setValue] = React.useState(0); @@ -71,7 +71,7 @@ export default function MainTabs({solution}) {
- + Diagrams @@ -85,5 +85,6 @@ export default function MainTabs({solution}) { } MainTabs.propTypes = { - solution: PropTypes.object.isRequired + solution: PropTypes.object.isRequired, + canvas: PropTypes.object.isRequired } \ No newline at end of file diff --git a/src/components/solution/operations/queries.js b/src/components/solution/operations/queries.js index a573c0d..89cd71b 100644 --- a/src/components/solution/operations/queries.js +++ b/src/components/solution/operations/queries.js @@ -2,19 +2,34 @@ import { gql } from '@apollo/client'; export const LIST_SOLUTION_BY_ID_QUERY = gql` query($solution_id: String!) { - solutionById(solution_id: $solution_id){ + canvasBySolutionId(solution_id: $solution_id){ + canvas_id solution_id - name - customer - project - market - year_month - description - big_picture - tags - team_members + dependencies + technology + patterns + problem + func_requirement + non_func_requirement + context + difficulties + advantages created_at - updated_at + updated_at + } + solutionById(solution_id: $solution_id){ + solution_id + name + customer + project + market + year_month + description + big_picture + tags + team_members + created_at + updated_at } } `; \ No newline at end of file From 00da5a8df13a79e9cf276e87c695e0dcb6c6fbd9 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Tue, 5 Jan 2021 22:27:40 -0300 Subject: [PATCH 12/46] Fix big_picture home --- pages/index.js | 6 +-- src/components/Breadcumb.js | 5 +- src/components/ListSolutions.js | 4 +- src/components/Login/index.js | 12 ++--- src/components/Search.js | 9 +++- src/components/solution/InputTextTag.js | 6 +++ src/components/solution/MainTabs.js | 7 +-- src/components/solution/Reference/Links.js | 54 ++++++++++++++++++++++ src/components/solution/Reference/index.js | 54 ++++++++++++++++++++++ src/components/solution/Teams.js | 2 +- src/reducers/index.js | 17 +------ 11 files changed, 138 insertions(+), 38 deletions(-) create mode 100644 src/components/solution/Reference/Links.js create mode 100644 src/components/solution/Reference/index.js diff --git a/pages/index.js b/pages/index.js index 2a25d60..29c20bc 100644 --- a/pages/index.js +++ b/pages/index.js @@ -11,14 +11,10 @@ const LIST_FILTERED_SOLUTIONS_QUERY = gql` solution(search:$search) { solution_id name - customer - project - market year_month description tags - created_at - updated_at + big_picture } } `; diff --git a/src/components/Breadcumb.js b/src/components/Breadcumb.js index d786133..5ce3413 100644 --- a/src/components/Breadcumb.js +++ b/src/components/Breadcumb.js @@ -12,12 +12,11 @@ const BreadCumbs = () => { return ( - Material-UI + Home Page - Core + Solution - Breadcrumb ); } diff --git a/src/components/ListSolutions.js b/src/components/ListSolutions.js index 989f62a..fd3deef 100644 --- a/src/components/ListSolutions.js +++ b/src/components/ListSolutions.js @@ -17,8 +17,8 @@ export default function ListSolutions({solutions}) { { solutions.map( - ({solution_id,name,description,year_month}) => - () + ({solution_id,name,description,year_month, big_picture}) => + () ) } diff --git a/src/components/Login/index.js b/src/components/Login/index.js index 1167cc0..ebb0ea8 100644 --- a/src/components/Login/index.js +++ b/src/components/Login/index.js @@ -90,6 +90,7 @@ class Login extends React.Component { } _onLogin() { + window.location.href = "/"; let { onLogin } = this.props; this.setState({ passwordFieldEmpty: false, emailFieldEmpty: false }); @@ -120,7 +121,7 @@ class Login extends React.Component { render() { let { classes, - state: { showPreloader, success, message } + state: { showPreloader = false, success = true, message = "" } } = this.props; const buttonClassname = makeStyles({ @@ -136,7 +137,7 @@ class Login extends React.Component { direction="row" justify="flex-start" > - + - + )} -
-
- - Do not have an account yet ?{" "} -
diff --git a/src/components/Search.js b/src/components/Search.js index f5a949e..4a83a14 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect, useRef } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Grid from '@material-ui/core/Grid'; import { TextField, Typography } from '@material-ui/core'; @@ -31,6 +31,12 @@ const keyUpSearch = (event, loadingSolutions) => { export default function Search({loadingSolutions}) { const classes = useStyles(); + const inputEl = useRef(null); + + useEffect(() => { + inputEl.current.querySelector('input').focus(); + },[]) + return (
@@ -39,6 +45,7 @@ export default function Search({loadingSolutions}) {
Architecture Center { + const inputEl = useRef(null); + useEffect(() => { + inputEl.current.querySelector('input').focus(); + + },[]) return( - Diagrams + - References +
diff --git a/src/components/solution/Reference/Links.js b/src/components/solution/Reference/Links.js new file mode 100644 index 0000000..7fedff0 --- /dev/null +++ b/src/components/solution/Reference/Links.js @@ -0,0 +1,54 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import Grid from '@material-ui/core/Grid'; + +const useStyles = makeStyles((theme) => ({ + root: { + flexGrow: 1, + }, + demo: { + backgroundColor: theme.palette.background.paper, + }, +})); + +export default function InteractiveList() { + const classes = useStyles(); + + return ( +
+ + +
+ + + + + + + + + + + + + +
+
+ +
+ +
+ ); +} diff --git a/src/components/solution/Reference/index.js b/src/components/solution/Reference/index.js new file mode 100644 index 0000000..a1ef763 --- /dev/null +++ b/src/components/solution/Reference/index.js @@ -0,0 +1,54 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import Grid from '@material-ui/core/Grid'; + +const useStyles = makeStyles((theme) => ({ + root: { + flexGrow: 1, + }, + demo: { + backgroundColor: theme.palette.background.paper, + }, +})); + +export default function InteractiveList() { + const classes = useStyles(); + + return ( +
+ + +
+ + + + + + + + + + + + + +
+
+ +
+ +
+ ); +} diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.js index 877d6f2..cc78c84 100644 --- a/src/components/solution/Teams.js +++ b/src/components/solution/Teams.js @@ -35,7 +35,7 @@ export default function Teams({members, solution_id}) { className={classes.button} startIcon={} size="small" - onClick={() => setAddTeamMemberVisible(!addTeamMemberVisible)} + onClick={() => setAddTeamMemberVisible(true)} > member diff --git a/src/reducers/index.js b/src/reducers/index.js index fdd8274..c8a2f7b 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -1,19 +1,6 @@ import { combineReducers } from "redux"; +import userReducer from "./userReducer"; -export const SOLUTION_LOADED = 'SOLUTION_LOADED'; - -const solution = {}; - -function solutionReducer(state = solution, action) { - switch (action.type) { - case SOLUTION_LOADED: - return {...action.solution}; - - default: - return state; - } -} - -const reducer = combineReducers({ solutionReducer }); +const reducer = combineReducers({ userReducer }); export default reducer; \ No newline at end of file From 886052acc2810825b6bcd5f7e379298605aefbea Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Thu, 7 Jan 2021 06:37:10 -0300 Subject: [PATCH 13/46] add login process --- src/components/Canvas/CreateItemContainer.js | 3 - src/components/Login/LoginContainer.js | 45 ++++--- src/components/Login/index.js | 130 ++++++++----------- src/components/Login/operations/mutations.js | 9 ++ src/lib/apolloClient.js | 15 ++- 5 files changed, 105 insertions(+), 97 deletions(-) create mode 100644 src/components/Login/operations/mutations.js diff --git a/src/components/Canvas/CreateItemContainer.js b/src/components/Canvas/CreateItemContainer.js index 2bc9117..912a07d 100644 --- a/src/components/Canvas/CreateItemContainer.js +++ b/src/components/Canvas/CreateItemContainer.js @@ -11,12 +11,9 @@ const CreateItemContainer = ({canvas_id, setVisible, item}) => { const onKeyUp = ({keyCode, target})=> { if(keyCode == ENTER_KEY){ - console.log({ canvas_id, value: target.value, item }); addItemCanvas( {variables:{ canvas_id, value: target.value, item }, update: (cache, {data:{createItemCanvas}}) => { - console.log("CACHE", item, createItemCanvas[item]); - cache.modify({ fields: { canvasBySolutionId: (existingItem) => ({...existingItem, [item]: createItemCanvas[item]}) diff --git a/src/components/Login/LoginContainer.js b/src/components/Login/LoginContainer.js index 0589985..f6bb7dd 100644 --- a/src/components/Login/LoginContainer.js +++ b/src/components/Login/LoginContainer.js @@ -1,23 +1,34 @@ -import { connect } from "react-redux"; -import { login, oauthFacebook } from "../../actions/Login"; +import React from "react"; import FormLogin from "./index"; +import {LOGIN} from "./operations/mutations" +import { useMutation } from '@apollo/client'; +import { useRouter } from 'next/router' -const mapDispatchToProps = (dispatch) => { - return { - onLogin(email, password) { - dispatch(login(email, password)); - }, - oauthFacebook(accessToken) { - dispatch(oauthFacebook(accessToken)); - } - }; -}; +const FormLoginContainer = () => { -const mapStateToProps = (state) => ({ state: state.userReducer }); + const [login] = useMutation(LOGIN); + const router = useRouter() -const FormLoginContainer = connect( - mapStateToProps, - mapDispatchToProps -)(FormLogin); + const onLogin = (email, password, setShowPreloader, setMessage)=> { + + login( + {variables:{ username: email, password }, + update: (cache, {data:{login}}) => { + const {accessToken} = login; + + if(accessToken !== null){ + localStorage.setItem("token", accessToken); + router.push('/') + }else{ + setShowPreloader(false); + setMessage("Email or password invalid"); + } + } + }); + + } + + return () +} export default FormLoginContainer; diff --git a/src/components/Login/index.js b/src/components/Login/index.js index ebb0ea8..c1fa2ce 100644 --- a/src/components/Login/index.js +++ b/src/components/Login/index.js @@ -1,5 +1,4 @@ -import * as React from "react"; -import { withStyles, Theme } from "@material-ui/core/styles"; +import React, {useState, useRef, useEffect} from "react"; import Grid from "@material-ui/core/Grid"; import Paper from "@material-ui/core/Paper"; import Typography from "@material-ui/core/Typography"; @@ -12,8 +11,9 @@ import Button from "@material-ui/core/Button"; import { makeStyles } from '@material-ui/styles'; import CircularProgress from "@material-ui/core/CircularProgress"; import green from "@material-ui/core/colors/green"; +import PropTypes from "prop-types" -const styles = (theme) => ({ +const styles = makeStyles((theme) => ({ root: { flexGrow: 1 }, @@ -61,72 +61,47 @@ const styles = (theme) => ({ textError: { color: theme.palette.error.main } -}); +})); +const Login = ({onLogin}) => { + const classes = styles() -class Login extends React.Component { - state = { - email: "", - password: "", - emailFieldEmpty: false, - passwordFieldEmpty: false - }; - - _inputEmail; - - constructor(props) { - super(props); - - this._onClickEnter = this._onClickEnter.bind(this); - this.responseFacebook = this.responseFacebook.bind(this); - this._inputEmail = {focus(){}}; - } - - componentDidMount() { - if (this._inputEmail !== undefined) { - this._inputEmail.focus(); + const [email, setemail] = useState(""); + const [password, setpassword] = useState(""); + const [emailFieldEmpty, setemailFieldEmpty] = useState(false); + const [passwordFieldEmpty, setpasswordFieldEmpty] = useState(false); + const _inputEmail = useRef(null); + const [showPreloader, setShowPreloader] = useState(false) + const [message, setMessage] = useState(""); + + const _onLogin = () => { + setShowPreloader(true); + setemailFieldEmpty(false); + setpasswordFieldEmpty(false); + + if (!email.length) { + setemailFieldEmpty(true); + + return; + } else if (!password.length) { + setpasswordFieldEmpty(true) + + return; + } + + onLogin(email, password, setShowPreloader, setMessage); } - } - _onLogin() { - window.location.href = "/"; - let { onLogin } = this.props; - - this.setState({ passwordFieldEmpty: false, emailFieldEmpty: false }); - - if (!this.state.email.length) { - this.setState({ emailFieldEmpty: true }); - - return; - } else if (!this.state.password.length) { - this.setState({ passwordFieldEmpty: true }); - - return; + const _onClickEnter = (event) => { + if (event.key == "Enter") { + _onLogin(); + } } - onLogin(this.state.email, this.state.password); - } - - _onClickEnter(event) { - if (event.key == "Enter") { - this._onLogin(); - } - } - - responseFacebook(res) { - this.props.oauthFacebook(res.accessToken); - } - - render() { - let { - classes, - state: { showPreloader = false, success = true, message = "" } - } = this.props; - - const buttonClassname = makeStyles({ - [classes.buttonSuccess]: success - }); + useEffect(() => { + _inputEmail.current.focus() + },[]) return ( @@ -194,16 +169,16 @@ class Login extends React.Component { }} > (this._inputEmail = input)} + inputRef={_inputEmail} disabled={showPreloader} - error={this.state.emailFieldEmpty} + error={emailFieldEmpty} helperText={ - this.state.emailFieldEmpty + emailFieldEmpty ? "The email field is empty" : "" } - onChange={el => this.setState({ email: el.target.value })} - onKeyUp={this._onClickEnter} + onChange={el => setemail(el.target.value )} + onKeyUp={_onClickEnter} className={classes.text} label="Type your email" InputProps={{ @@ -214,18 +189,19 @@ class Login extends React.Component { ) }} /> + - this.setState({ password: el.target.value }) + setpassword(el.target.value) } - onKeyUp={this._onClickEnter} + onKeyUp={_onClickEnter} type="password" className={classes.text} label="Password" @@ -237,6 +213,7 @@ class Login extends React.Component { ) }} /> +
- - - - - ); -} diff --git a/pages/index.js b/pages/index.tsx similarity index 65% rename from pages/index.js rename to pages/index.tsx index 29c20bc..bf81d5a 100644 --- a/pages/index.js +++ b/pages/index.tsx @@ -1,8 +1,8 @@ -import React, {useState} from 'react'; +import React, { useState } from 'react'; import Container from '@material-ui/core/Container'; import AppBar from '../src/components/AppBar'; -import Search from '../src/components/Search'; -import ListSolutions from '../src/components/ListSolutions'; +import Search from '../src/components/Search'; +import ListSolutions from '../src/components/ListSolutions'; import { makeStyles } from '@material-ui/core'; import { gql, useLazyQuery, useQuery } from "@apollo/client"; @@ -23,7 +23,7 @@ const useStyles = makeStyles((theme) => ({ button: { margin: theme.spacing(1), }, - buttonAlign:{ + buttonAlign: { textAlign: "right" } })); @@ -32,12 +32,12 @@ export default function Index() { const classes = useStyles(); - const [ getFilteredSolutions, { data }] = useLazyQuery(LIST_FILTERED_SOLUTIONS_QUERY); - - const solutions = data != undefined? data.solution : []; + const [getFilteredSolutions, { data }] = useLazyQuery(LIST_FILTERED_SOLUTIONS_QUERY); + + const solutions = data != undefined ? data.solution : []; return ( - + diff --git a/pages/login.js b/pages/login.tsx similarity index 100% rename from pages/login.js rename to pages/login.tsx diff --git a/pages/solution/[solution_id].js b/pages/solution/[solution_id].tsx similarity index 100% rename from pages/solution/[solution_id].js rename to pages/solution/[solution_id].tsx diff --git a/pages/solution/add.js b/pages/solution/add.tsx similarity index 100% rename from pages/solution/add.js rename to pages/solution/add.tsx diff --git a/setupTests.ts b/setupTests.ts new file mode 100644 index 0000000..f7373db --- /dev/null +++ b/setupTests.ts @@ -0,0 +1,5 @@ +import Enzyme from "enzyme"; +import Adapter from "enzyme-adapter-react-16"; + +// Configure Enzyme with React 16 adapter +Enzyme.configure({ adapter: new Adapter() }); diff --git a/src/Copyright.js b/src/Copyright.tsx similarity index 100% rename from src/Copyright.js rename to src/Copyright.tsx diff --git a/src/Link.js b/src/Link.ts similarity index 100% rename from src/Link.js rename to src/Link.ts diff --git a/src/ProTip.js b/src/ProTip.ts similarity index 100% rename from src/ProTip.js rename to src/ProTip.ts diff --git a/src/api/BoardApi.js b/src/api/BoardApi.js deleted file mode 100644 index 27b4f13..0000000 --- a/src/api/BoardApi.js +++ /dev/null @@ -1,28 +0,0 @@ -// @flow -import axios from "axios"; - -class BoardApi { - static listAllByUser(idUser: Number) { - return axios - .get(`/api/v1/boards/${idUser}`) - .then(response => { - return response; - }) - .catch(({ response }) => { - return response; - }); - } - - static addBoard(name: String) { - return axios - .post(`/api/v1/board`, { name: name }) - .then(response => { - return response; - }) - .catch(({ response }) => { - return response; - }); - } -} - -export default BoardApi; diff --git a/src/api/UserApi.js b/src/api/UserApi.js deleted file mode 100644 index 674059d..0000000 --- a/src/api/UserApi.js +++ /dev/null @@ -1,79 +0,0 @@ -// @flow -import axios from "axios"; - -class UserApi { - static login(email, password) { - return axios - .post("/api/v1/login", { email, password }) - .then(response => { - return response; - }) - .catch(({ response }) => { - return response; - }); - } - - static facebookLogin(data) { - return axios - .post("/api/v1/oauth/facebook", { - access_token: data - }) - .then(response => { - return response; - }) - .catch(({ response }) => { - return response; - }); - } - - static logout() { - return axios - .post("/api/v1/logout") - .then(response => { - return response; - }) - .catch(error => { - return error; - }); - } - - static createAccount(email, password) { - return axios - .post("/api/v1/user", { - email, - password - }) - .then(function(response) { - return response; - }) - .catch(function(error) { - return error; - }); - } - - static updateAccountUser(user) { - let data = new FormData(); - data.append("user", JSON.stringify(user)); - data.append("image", user.image); - - let config = { - onUploadProgress: function(progressEvent) { - return Math.round((progressEvent.loaded * 100) / progressEvent.total); - }, - headers: { - "Content-Type": "multipart/form-data" - } - }; - - return axios - .put(`/api/v1/user/${user._id}`, data, config) - .then(function(response) { - return response; - }) - .catch(function(error) { - return error; - }); - } -} - -export default UserApi; diff --git a/src/api/__tests__/UserApi.test.js b/src/api/__tests__/UserApi.test.js deleted file mode 100644 index ca5331b..0000000 --- a/src/api/__tests__/UserApi.test.js +++ /dev/null @@ -1,116 +0,0 @@ -import { login, logout } from "../../actions/Login"; -import { updateAccountUser, createAccount } from "../../actions/User"; -import configureStore from "../../configureStore"; -import axios from "axios"; -import MockAdapter from "axios-mock-adapter"; -import "jest-localstorage-mock"; - -describe("User API", () => { - let store = configureStore(); - let mock: MockAdapter; - - store.subscribe(() => { - localStorage.setItem("state", JSON.stringify(store.getState())); - }); - - beforeEach(() => { - mock = new MockAdapter(axios); - }); - - afterEach(() => { - mock.restore(); - mock.reset(); - }); - - it("Shoud to create user account", () => { - let response = { - success: true, - message: "User account created with successfull!" - }; - - let expectedState = { - success: true, - message: "User account created with successfull!", - showPreloader: false, - user: {} - }; - - mock.onPost(`/api/v1/user`).reply(200, response); - - store - .dispatch(createAccount("email@examaple.com", "mypassword")) - .then(() => { - let currentState = store.getState().userReducer; - - expect(currentState).toEqual(expectedState); - }); - }); - - it("Shoud to authenticate a user and set token localstorage", () => { - let response = { - success: true, - message: "Login User successfull!", - token: "asijaosijas1109281029812", - user: { - name: "Name example", - email: "email@example.com", - firstAccess: true - }, - showPreloader: false - }; - - mock.onPost("/api/v1/login").reply(200, response); - - const expectedState = [ - { - success: response.success, - message: response.message, - user: response.user, - showPreloader: response.showPreloader - } - ]; - - store.dispatch(login(response.user.email, "12345")).then(() => { - expect([store.getState().userReducer]).toEqual(expectedState); - expect(response.token).toEqual(JSON.parse(localStorage.getItem("token") as string)); - expect(response.user).toEqual(JSON.parse(localStorage.getItem("user") as string)); - }); - }); - - it("Shoud to update user account", () => { - let response = { - success: true - }; - - let user = { - name: "nameExample", - email: "email@example.com", - lastname: "lastname example", - phone: "1111-1111", - firstAccess: false - }; - let _id = "12121212"; - - mock.onPut(`/api/v1/user/${_id}`).reply(200, response); - - store.dispatch(updateAccountUser(user)).then(() => { - let expectedUserState = store.getState().userReducer.user; - - expect(expectedUserState).toEqual(user); - }); - }); - - it("Shoud logout a user and clean token and user in the localstorage", () => { - let response = { - success: true, - message: "Logout succesfull!" - }; - - mock.onPut(`/api/v1/logout`).reply(200, response); - - store.dispatch(logout()).then(() => { - expect(localStorage.getItem("token")).toEqual(null); - expect(localStorage.getItem("user")).toEqual(null); - }); - }); -}); diff --git a/src/components/AppBar.js b/src/components/AppBar.tsx similarity index 99% rename from src/components/AppBar.js rename to src/components/AppBar.tsx index 312116e..0724453 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.tsx @@ -129,7 +129,7 @@ export default function PrimarySearchAppBar() { - Sensedia + {process.env.NEXT_PUBLIC_NAME} diff --git a/src/components/Breadcumb.js b/src/components/Breadcumb.tsx similarity index 100% rename from src/components/Breadcumb.js rename to src/components/Breadcumb.tsx diff --git a/src/components/Canvas/CanvasContainer.js b/src/components/Canvas/CanvasContainer.js deleted file mode 100644 index 115dcea..0000000 --- a/src/components/Canvas/CanvasContainer.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import PropTypes from "prop-types" -import Canvas from "./index" -import {LIST_CANVAS_BY_ID_QUERY} from "./operations/queries" -import { useQuery } from '@apollo/client'; - -const CanvasContainer = ({canva}) => { - const { loading, error, data } = useQuery(LIST_CANVAS_BY_ID_QUERY, { - variables: { solution_id }, - }); - - let canvas = data != undefined ? data.canvasBySolutionId : {}; - - return ( - - ) -} - -CanvasContainer.propTypes = { - canvas: PropTypes.object.isRequired -} - -export default CanvasContainer; \ No newline at end of file diff --git a/src/components/Canvas/CreateItemContainer.js b/src/components/Canvas/CreateItemContainer.tsx similarity index 100% rename from src/components/Canvas/CreateItemContainer.js rename to src/components/Canvas/CreateItemContainer.tsx diff --git a/src/components/Canvas/index.js b/src/components/Canvas/index.tsx similarity index 100% rename from src/components/Canvas/index.js rename to src/components/Canvas/index.tsx diff --git a/src/components/Canvas/operations/mutations.js b/src/components/Canvas/operations/mutations.ts similarity index 100% rename from src/components/Canvas/operations/mutations.js rename to src/components/Canvas/operations/mutations.ts diff --git a/src/components/Canvas/operations/queries.js b/src/components/Canvas/operations/queries.ts similarity index 100% rename from src/components/Canvas/operations/queries.js rename to src/components/Canvas/operations/queries.ts diff --git a/src/components/ListSolutions.js b/src/components/ListSolutions.tsx similarity index 100% rename from src/components/ListSolutions.js rename to src/components/ListSolutions.tsx diff --git a/src/components/Login/LoginContainer.js b/src/components/Login/LoginContainer.tsx similarity index 100% rename from src/components/Login/LoginContainer.js rename to src/components/Login/LoginContainer.tsx diff --git a/src/components/Login/index.js b/src/components/Login/index.tsx similarity index 100% rename from src/components/Login/index.js rename to src/components/Login/index.tsx diff --git a/src/components/Login/operations/mutations.js b/src/components/Login/operations/mutations.ts similarity index 100% rename from src/components/Login/operations/mutations.js rename to src/components/Login/operations/mutations.ts diff --git a/src/components/Search.js b/src/components/Search.tsx similarity index 100% rename from src/components/Search.js rename to src/components/Search.tsx diff --git a/src/components/Solution.js b/src/components/Solution.tsx similarity index 100% rename from src/components/Solution.js rename to src/components/Solution.tsx diff --git a/src/components/solution/BigPicture.js b/src/components/solution/BigPicture.tsx similarity index 100% rename from src/components/solution/BigPicture.js rename to src/components/solution/BigPicture.tsx diff --git a/src/components/solution/InputTextTag.js b/src/components/solution/InputTextTag.tsx similarity index 100% rename from src/components/solution/InputTextTag.js rename to src/components/solution/InputTextTag.tsx diff --git a/src/components/solution/InputTextTagContainer.js b/src/components/solution/InputTextTagContainer.tsx similarity index 100% rename from src/components/solution/InputTextTagContainer.js rename to src/components/solution/InputTextTagContainer.tsx diff --git a/src/components/solution/InputTextTeamContainer.js b/src/components/solution/InputTextTeamContainer.tsx similarity index 100% rename from src/components/solution/InputTextTeamContainer.js rename to src/components/solution/InputTextTeamContainer.tsx diff --git a/src/components/solution/MainTabs.js b/src/components/solution/MainTabs.tsx similarity index 99% rename from src/components/solution/MainTabs.js rename to src/components/solution/MainTabs.tsx index 54817e0..3bb116d 100644 --- a/src/components/solution/MainTabs.js +++ b/src/components/solution/MainTabs.tsx @@ -10,6 +10,7 @@ import Canvas from '../Canvas' import BigPicture from "./BigPicture" import Reference from "./Reference"; import ReferenceLinks from "./Reference/Links"; + function TabPanel(props) { const { children, value, index, ...other } = props; diff --git a/src/components/solution/Reference/Links.js b/src/components/solution/Reference/Links.tsx similarity index 100% rename from src/components/solution/Reference/Links.js rename to src/components/solution/Reference/Links.tsx diff --git a/src/components/solution/Reference/index.js b/src/components/solution/Reference/index.tsx similarity index 100% rename from src/components/solution/Reference/index.js rename to src/components/solution/Reference/index.tsx diff --git a/src/components/solution/SolutionDetails.js b/src/components/solution/SolutionDetails.tsx similarity index 100% rename from src/components/solution/SolutionDetails.js rename to src/components/solution/SolutionDetails.tsx diff --git a/src/components/solution/Tags.js b/src/components/solution/Tags.tsx similarity index 100% rename from src/components/solution/Tags.js rename to src/components/solution/Tags.tsx diff --git a/src/components/solution/Teams.js b/src/components/solution/Teams.tsx similarity index 79% rename from src/components/solution/Teams.js rename to src/components/solution/Teams.tsx index cc78c84..e54f3e1 100644 --- a/src/components/solution/Teams.js +++ b/src/components/solution/Teams.tsx @@ -4,7 +4,6 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Button, Chip, Divider } from '@material-ui/core'; -import PropTypes from "prop-types" import AddIcon from '@material-ui/icons/Add'; import InputTextTeamContainer from "./InputTextTeamContainer"; @@ -20,7 +19,12 @@ const useStyles = makeStyles({ } }); -export default function Teams({members, solution_id}) { +export type TeamsProps = { + members: Array, + solution_id: string +} + +export default function Teams({members, solution_id}: TeamsProps) { const classes = useStyles(); const [addTeamMemberVisible, setAddTeamMemberVisible] = useState(false); @@ -34,7 +38,6 @@ export default function Teams({members, solution_id}) { color="primary" className={classes.button} startIcon={} - size="small" onClick={() => setAddTeamMemberVisible(true)} > member @@ -43,13 +46,8 @@ export default function Teams({members, solution_id}) { {addTeamMemberVisible ? : null}
- {members.map(member => )} + {members.map((member:string) => )} ); -} - -Teams.propTypes = { - members: PropTypes.array.isRequired, - solution_id: PropTypes.string.isRequired } \ No newline at end of file diff --git a/src/components/solution/Upload/UploadButton.js b/src/components/solution/Upload/UploadButton.tsx similarity index 100% rename from src/components/solution/Upload/UploadButton.js rename to src/components/solution/Upload/UploadButton.tsx diff --git a/src/components/solution/Upload/UploadButtonContainer.js b/src/components/solution/Upload/UploadButtonContainer.tsx similarity index 100% rename from src/components/solution/Upload/UploadButtonContainer.js rename to src/components/solution/Upload/UploadButtonContainer.tsx diff --git a/src/components/solution/operations/mutaions.js b/src/components/solution/operations/mutaions.ts similarity index 100% rename from src/components/solution/operations/mutaions.js rename to src/components/solution/operations/mutaions.ts diff --git a/src/components/solution/operations/queries.js b/src/components/solution/operations/queries.ts similarity index 100% rename from src/components/solution/operations/queries.js rename to src/components/solution/operations/queries.ts diff --git a/src/configureStore.js b/src/configureStore.ts similarity index 100% rename from src/configureStore.js rename to src/configureStore.ts diff --git a/src/lib/apolloClient.js b/src/lib/apolloClient.ts similarity index 100% rename from src/lib/apolloClient.js rename to src/lib/apolloClient.ts diff --git a/src/reducers/context.js b/src/reducers/context.ts similarity index 100% rename from src/reducers/context.js rename to src/reducers/context.ts diff --git a/src/reducers/index.js b/src/reducers/index.ts similarity index 100% rename from src/reducers/index.js rename to src/reducers/index.ts diff --git a/src/reducers/initialState.js b/src/reducers/initialState.ts similarity index 100% rename from src/reducers/initialState.js rename to src/reducers/initialState.ts diff --git a/src/reducers/userReducer.js b/src/reducers/userReducer.ts similarity index 100% rename from src/reducers/userReducer.js rename to src/reducers/userReducer.ts diff --git a/src/theme.js b/src/theme.ts similarity index 100% rename from src/theme.js rename to src/theme.ts diff --git a/tsconfig.jest.json b/tsconfig.jest.json new file mode 100644 index 0000000..fb41a56 --- /dev/null +++ b/tsconfig.jest.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "jsx": "react", + "isolatedModules": false, + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..56f7e9a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "allowJs": true, + "alwaysStrict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "preserve", + "lib": ["dom", "es2017"], + "module": "esnext", + "moduleResolution": "node", + "noImplicitAny": true, + "noImplicitThis": true, + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "esnext" + }, + "exclude": ["node_modules"], + "include": ["**/*.ts", "**/*.tsx", "next.config.js"] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index d2b39c7..778a3d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -79,11 +79,138 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/helper-validator-identifier@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.10", "@babel/generator@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== + dependencies: + "@babel/types" "^7.12.11" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" + +"@babel/helper-get-function-arity@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-member-expression-to-functions@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1": + 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.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": + 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-replace-supers@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== + dependencies: + "@babel/types" "^7.12.11" + +"@babel/helper-validator-identifier@^7.10.4", "@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/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -93,13 +220,126 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== + dependencies: + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + "@babel/types@7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" @@ -109,6 +349,28 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + 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.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + "@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" @@ -139,6 +401,203 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@material-ui/core@latest": version "4.11.2" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.2.tgz#f8276dfa40d88304e6ceb98962af73803d27d42d" @@ -253,16 +712,287 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw== +"@redux-saga/core@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4" + integrity sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg== + dependencies: + "@babel/runtime" "^7.6.3" + "@redux-saga/deferred" "^1.1.2" + "@redux-saga/delay-p" "^1.1.2" + "@redux-saga/is" "^1.1.2" + "@redux-saga/symbols" "^1.1.2" + "@redux-saga/types" "^1.1.0" + redux "^4.0.4" + typescript-tuple "^2.2.1" + +"@redux-saga/deferred@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redux-saga/deferred/-/deferred-1.1.2.tgz#59937a0eba71fff289f1310233bc518117a71888" + integrity sha512-908rDLHFN2UUzt2jb4uOzj6afpjgJe3MjICaUNO3bvkV/kN/cNeI9PMr8BsFXB/MR8WTAZQq/PlTq8Kww3TBSQ== + +"@redux-saga/delay-p@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redux-saga/delay-p/-/delay-p-1.1.2.tgz#8f515f4b009b05b02a37a7c3d0ca9ddc157bb355" + integrity sha512-ojc+1IoC6OP65Ts5+ZHbEYdrohmIw1j9P7HS9MOJezqMYtCDgpkoqB5enAAZrNtnbSL6gVCWPHaoaTY5KeO0/g== + dependencies: + "@redux-saga/symbols" "^1.1.2" + +"@redux-saga/is@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redux-saga/is/-/is-1.1.2.tgz#ae6c8421f58fcba80faf7cadb7d65b303b97e58e" + integrity sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w== + dependencies: + "@redux-saga/symbols" "^1.1.2" + "@redux-saga/types" "^1.1.0" + +"@redux-saga/symbols@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redux-saga/symbols/-/symbols-1.1.2.tgz#216a672a487fc256872b8034835afc22a2d0595d" + integrity sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ== + +"@redux-saga/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204" + integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg== + +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/cheerio@*", "@types/cheerio@^0.22.22": + version "0.22.23" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.23.tgz#74bcfee9c5ee53f619711dca953a89fe5cfa4eb4" + integrity sha512-QfHLujVMlGqcS/ePSf3Oe5hK3H8wi/yN2JYuxSB1U10VvW1fO3K8C+mURQesFYS1Hn7lspOsTT75SKq/XtydQg== + dependencies: + "@types/node" "*" + +"@types/connect@*": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" + integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/enzyme-adapter-react-16@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz#8aca7ae2fd6c7137d869b6616e696d21bb8b0cec" + integrity sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg== + dependencies: + "@types/enzyme" "*" + +"@types/enzyme@*", "@types/enzyme@^3.10.5": + version "3.10.8" + resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.8.tgz#ad7ac9d3af3de6fd0673773123fafbc63db50d42" + integrity sha512-vlOuzqsTHxog6PV79+tvOHFb6hq4QZKMq1lLD9MaWD1oec2lHTKndn76XOpSwCA0oFTaIbKVPrgM3k78Jjd16g== + dependencies: + "@types/cheerio" "*" + "@types/react" "*" + +"@types/express-serve-static-core@*": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" + integrity sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.6": + version "4.17.9" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" + integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== + dependencies: + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.3.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.x": + version "26.0.20" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.20.tgz#cd2f2702ecf69e86b586e1f5223a60e454056307" + integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/jest@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf" + integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/mime@*": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" + integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== + +"@types/node@*", "@types/node@^14.0.6": + version "14.14.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" + integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/prettier@^2.0.0": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.6.tgz#f4b1efa784e8db479cdb8b14403e2144b1e9ff03" + integrity sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA== + "@types/prop-types@*": version "15.7.3" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== +"@types/qs@*": + version "6.9.5" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" + integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/react-autosuggest@^9.3.14": + version "9.3.14" + resolved "https://registry.yarnpkg.com/@types/react-autosuggest/-/react-autosuggest-9.3.14.tgz#0a759db913f28609f390605283747c497af7e931" + integrity sha512-cvGpKaQaNsFbDxTwP56VKVj2FO6SpJ9PsrQtlVzN7aVa/SsMZoQrBLEUx5HQKfIS4Zupb6K4tHmIyTjF7AEcow== + dependencies: + "@types/react" "*" + +"@types/react-dom@^16.9.8": + version "16.9.10" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.10.tgz#4485b0bec3d41f856181b717f45fd7831101156f" + integrity sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw== + dependencies: + "@types/react" "^16" + +"@types/react-redux@^7.1.9": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.15.tgz#19075884db94101be762accef924d266a603fb1b" + integrity sha512-+piY42tUflPfI7y9Vy3UkG6MEMuJlrxfdtgeUcWmd5Z0qB57NXAPG6smkqu1DNXluo/KDyXPeRYhcFzMwt1BEA== + dependencies: + "@types/hoist-non-react-statics" "^3.3.0" + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + redux "^4.0.0" + +"@types/react-toastify@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@types/react-toastify/-/react-toastify-4.1.0.tgz#604e712855dd677916d5c66af595d3b590f5d95d" + integrity sha512-u7Ie/7LHBsPVz/iJxi/WlRDS7Gh9csCJACTDXx+pSLuZCm94xpkwzhM3jV1L5ZxP/in0Gp2tFbJ91VrSGr1gyQ== + dependencies: + react-toastify "*" + "@types/react-transition-group@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" @@ -278,11 +1008,51 @@ "@types/prop-types" "*" csstype "^3.0.2" +"@types/react@^16", "@types/react@^16.9.35": + version "16.14.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" + integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/redux-saga@^0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@types/redux-saga/-/redux-saga-0.10.5.tgz#80bf21078379ebc97387dbe56e44467b5677fa85" + integrity sha1-gL8hB4N568lzh9vlbkRGe1Z3+oU= + dependencies: + redux-saga "*" + +"@types/serve-static@*": + version "1.13.8" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" + integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + "@types/ungap__global-this@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@types/ungap__global-this/-/ungap__global-this-0.3.1.tgz#18ce9f657da556037a29d50604335614ce703f4c" integrity sha512-+/DsiV4CxXl6ZWefwHZDXSe1Slitz21tom38qPCaG0DYCS1NnDPIQDTKcmQ/tvK/edJUKkmuIDBJbmKDiB0r/g== +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.12.tgz#6234ce3e3e3fa32c5db301a170f96a599c960d74" + integrity sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw== + dependencies: + "@types/yargs-parser" "*" + "@types/zen-observable@^0.8.0": version "0.8.2" resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" @@ -462,6 +1232,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abort-controller@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -469,11 +1244,29 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + adjust-sourcemap-loader@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" @@ -489,6 +1282,21 @@ agent-base@6: dependencies: debug "4" +airbnb-prop-types@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" + integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== + dependencies: + array.prototype.find "^2.1.1" + function.prototype.name "^1.1.2" + is-regex "^1.1.0" + object-is "^1.1.2" + object.assign "^4.1.0" + object.entries "^1.1.2" + prop-types "^15.7.2" + prop-types-exact "^1.2.0" + react-is "^16.13.1" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -499,7 +1307,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -522,6 +1330,13 @@ anser@1.4.9: resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -544,7 +1359,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -559,7 +1374,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: +anymatch@^3.0.3, anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -589,6 +1404,13 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + arity-n@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" @@ -609,11 +1431,33 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.find@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.4" + +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -624,6 +1468,18 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -647,11 +1503,34 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axios-mock-adapter@^1.18.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz#9d72e321a6c5418e1eff067aa99761a86c5188a4" + integrity sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg== + dependencies: + fast-deep-equal "^3.1.3" + is-buffer "^2.0.3" + axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -659,6 +1538,41 @@ axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + 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" @@ -677,6 +1591,32 @@ babel-plugin-transform-react-remove-prop-types@0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -700,6 +1640,13 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -746,6 +1693,11 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -770,7 +1722,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -782,6 +1734,11 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -853,7 +1810,21 @@ browserslist@4.14.6: escalade "^3.1.1" node-releases "^1.1.65" -buffer-from@^1.0.0, buffer-from@^1.1.1: +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -934,7 +1905,20 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -camelcase@5.3.1: +call-bind@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.1.tgz#29aca9151f8ddcfd5b9b786898f005f425e88567" + integrity sha512-tvAvUwNcRikl3RVF20X9lsYmmepsovzTWeJiXjO0PkJp15uy/6xKFZOQtuiSULwYW+6ToZBprphCgWXC2dSgcQ== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -949,6 +1933,18 @@ caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.300011 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz#0088bfecc6a14694969e391cc29d7eb6362ca6a7" integrity sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -966,6 +1962,51 @@ chalk@4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +cheerio-select-tmp@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz#55bbef02a4771710195ad736d5e346763ca4e646" + integrity sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== + dependencies: + css-select "^3.1.2" + css-what "^4.0.0" + domelementtype "^2.1.0" + domhandler "^4.0.0" + domutils "^2.4.4" + +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.5.tgz#88907e1828674e8f9fee375188b27dadd4f0fa2f" + integrity sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== + dependencies: + cheerio-select-tmp "^0.1.0" + dom-serializer "~1.2.0" + domhandler "^4.0.0" + entities "~2.1.0" + htmlparser2 "^6.0.0" + parse5 "^6.0.0" + parse5-htmlparser2-tree-adapter "^6.0.0" + chokidar@3.4.3, chokidar@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" @@ -1012,6 +2053,11 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1020,6 +2066,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1035,16 +2086,35 @@ classnames@2.2.6: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -clsx@^1.0.4, clsx@latest: +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clsx@^1.0.4, clsx@^1.1.1, clsx@latest: version "1.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1098,7 +2168,14 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -commander@^2.20.0: +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -1150,7 +2227,7 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -convert-source-map@1.7.0: +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -1179,7 +2256,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -1222,6 +2299,26 @@ cross-fetch@3.0.6: dependencies: node-fetch "2.6.1" +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@3.12.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -1257,6 +2354,17 @@ css-loader@4.3.0: schema-utils "^2.7.1" semver "^7.3.2" +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-vendor@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" @@ -1265,6 +2373,11 @@ css-vendor@^2.0.8: "@babel/runtime" "^7.8.3" is-in-browser "^1.0.2" +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + css.escape@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -1301,6 +2414,23 @@ cssnano-simple@1.2.1: cssnano-preset-simple "1.2.1" postcss "^7.0.32" +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + csstype@^2.5.2: version "2.6.14" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de" @@ -1324,6 +2454,13 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + data-uri-to-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.0.tgz#8a3088a5efd3f53c3682343313c6895d498eb8d7" @@ -1331,7 +2468,16 @@ data-uri-to-buffer@3.0.0: dependencies: buffer-from "^1.1.1" -debug@4: +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -1345,6 +2491,16 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -1369,6 +2525,23 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1391,6 +2564,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -1414,6 +2592,21 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -1423,6 +2616,11 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= + dom-helpers@^5.0.1: version "5.2.0" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" @@ -1440,7 +2638,7 @@ dom-serializer@1.1.0: domhandler "^3.0.0" entities "^2.0.0" -dom-serializer@^1.0.1: +dom-serializer@^1.0.1, dom-serializer@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== @@ -1459,6 +2657,13 @@ domelementtype@^2.0.1, domelementtype@^2.1.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@3.3.0, domhandler@^3.0.0, domhandler@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" @@ -1482,7 +2687,7 @@ domutils@2.4.2: domelementtype "^2.0.1" domhandler "^3.3.0" -domutils@^2.4.2: +domutils@^2.4.2, domutils@^2.4.3, domutils@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== @@ -1501,6 +2706,14 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + electron-to-chromium@^1.3.585: version "1.3.633" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" @@ -1519,6 +2732,16 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1545,11 +2768,84 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -entities@^2.0.0: +entities@^2.0.0, entities@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +enzyme-adapter-react-16@^1.15.2: + version "1.15.5" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.5.tgz#7a6f0093d3edd2f7025b36e7fbf290695473ee04" + integrity sha512-33yUJGT1nHFQlbVI5qdo5Pfqvu/h4qPwi1o0a6ZZsjpiqq92a3HjynDhwd1IeED+Su60HDWV8mxJqkTnLYdGkw== + dependencies: + enzyme-adapter-utils "^1.13.1" + enzyme-shallow-equal "^1.0.4" + has "^1.0.3" + object.assign "^4.1.0" + object.values "^1.1.1" + prop-types "^15.7.2" + react-is "^16.13.1" + react-test-renderer "^16.0.0-0" + semver "^5.7.0" + +enzyme-adapter-utils@^1.13.1: + version "1.14.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" + integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== + dependencies: + airbnb-prop-types "^2.16.0" + function.prototype.name "^1.1.3" + has "^1.0.3" + object.assign "^4.1.2" + object.fromentries "^2.0.3" + prop-types "^15.7.2" + semver "^5.7.1" + +enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" + integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== + dependencies: + has "^1.0.3" + object-is "^1.1.2" + +enzyme-to-json@^3.5.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.1.tgz#d60740950bc7ca6384dfe6fe405494ec5df996bc" + integrity sha512-15tXuONeq5ORoZjV/bUo2gbtZrN2IH+Z6DvL35QmZyKHgbY1ahn6wcnLd9Xv9OjiwbAXiiP8MRZwbZrCv1wYNg== + dependencies: + "@types/cheerio" "^0.22.22" + lodash "^4.17.15" + react-is "^16.12.0" + +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" + has "^1.0.3" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" + is-subset "^0.1.1" + lodash.escape "^4.0.1" + lodash.isequal "^4.5.0" + object-inspect "^1.7.0" + object-is "^1.0.2" + object.assign "^4.1.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" + rst-selector-parser "^2.2.3" + string.prototype.trim "^1.2.1" + errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -1557,6 +2853,57 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.4: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" @@ -1593,6 +2940,23 @@ 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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -1601,6 +2965,11 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esrecurse@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -1608,7 +2977,7 @@ esrecurse@^4.1.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -1646,6 +3015,44 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1664,6 +3071,18 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + ext@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -1686,6 +3105,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1705,16 +3129,38 @@ extract-files@^9.0.0: resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== -fast-deep-equal@^3.1.1: +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -1767,7 +3213,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -1793,6 +3239,20 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -1836,11 +3296,36 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" +fsevents@^2.1.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.2, function.prototype.name@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.3.tgz#0bb034bb308e7682826f215eb6b2ae64918847fe" + integrity sha512-H51qkbNSp8mtkJt+nyW1gyStBiKZxfRqySNUR99ylq6BPXHKI4SEvIlTKp4odLfjRKJV04DFWMU3G/YRlQOsag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + functions-have-names "^1.2.1" + +functions-have-names@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -1855,11 +3340,56 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" + integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + 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" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -1885,7 +3415,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -1897,7 +3427,12 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -1912,6 +3447,29 @@ graphql@^15.4.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347" integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1922,6 +3480,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -1958,6 +3521,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hash-base@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" @@ -1989,13 +3559,37 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== + dependencies: + array-filter "^1.0.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + htmlparser2@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" @@ -2006,6 +3600,16 @@ htmlparser2@5.0.1: domutils "^2.4.2" entities "^2.0.0" +htmlparser2@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" + integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.4.4" + entities "^2.0.0" + http-errors@1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -2017,6 +3621,15 @@ http-errors@1.7.3: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -2030,6 +3643,11 @@ https-proxy-agent@5.0.0: agent-base "6" debug "4" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + hyphenate-style-name@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" @@ -2049,6 +3667,13 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -2059,6 +3684,14 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2109,6 +3742,11 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + 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" @@ -2123,6 +3761,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" @@ -2142,11 +3785,42 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -2161,6 +3835,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -2179,6 +3858,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2208,6 +3892,16 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -2227,6 +3921,16 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3: resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= +is-negative-zero@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2246,6 +3950,50 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -2256,11 +4004,23 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2273,6 +4033,429 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-css-modules@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jest-css-modules/-/jest-css-modules-2.1.0.tgz#9c25ebe9d0214d8f55861a442268fdd4b01b4781" + integrity sha512-my3Scnt6l2tOll/eGwNZeh1KLAFkNzdl4MyZRdpl46GO6/93JcKKdTjNqK6Nokg8A8rT84MFLOpY1pzqKBEqMw== + dependencies: + identity-obj-proxy "3.0.0" + +jest-diff@^25.2.1: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + jest-worker@24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -2281,21 +4464,111 @@ jest-worker@24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.0.1: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -2303,12 +4576,15 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: - minimist "^1.2.5" + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" jss-plugin-camel-case@^10.0.3: version "10.5.0" @@ -2405,11 +4681,29 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + klona@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + line-column@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" @@ -2418,6 +4712,11 @@ line-column@^1.0.2: isarray "^1.0.0" isobject "^2.0.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -2465,12 +4764,32 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.escape@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" + integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@^4.17.11, lodash@^4.17.13: +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -2504,13 +4823,25 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2572,6 +4903,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -2580,6 +4919,23 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" @@ -2607,7 +4963,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -2641,6 +4997,11 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +mkdirp@1.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -2648,6 +5009,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3: dependencies: minimist "^1.2.5" +moo@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -2709,6 +5075,21 @@ native-url@0.3.4: dependencies: querystring "^0.2.0" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +nearley@^2.7.10: + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -2773,6 +5154,11 @@ next@latest: optionalDependencies: sharp "0.26.2" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + node-abi@^2.7.0: version "2.19.3" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" @@ -2797,6 +5183,11 @@ node-html-parser@1.4.9: dependencies: he "1.2.0" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -2826,6 +5217,23 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + node-releases@^1.1.65: version "1.1.67" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" @@ -2841,6 +5249,16 @@ normalize-html-whitespace@1.0.0: resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA== +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -2853,6 +5271,20 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -2863,11 +5295,28 @@ npmlog@^4.0.1, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + 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" @@ -2882,6 +5331,24 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-inspect@^1.7.0, object-inspect@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-is@^1.0.2, object-is@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" + integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -2889,6 +5356,36 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.1, object.entries@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.fromentries@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" + integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -2896,6 +5393,16 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2903,6 +5410,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + optimism@^0.13.1: version "0.13.2" resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.13.2.tgz#002a438b69652bfe8f8754a4493ed35c2e9d9821" @@ -2910,11 +5424,33 @@ optimism@^0.13.1: dependencies: "@wry/context" "^0.5.2" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + p-limit@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -2973,6 +5509,33 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.0, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -3008,6 +5571,21 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + pbkdf2@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" @@ -3019,7 +5597,12 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -picomatch@^2.0.4, picomatch@^2.2.1: +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -3029,6 +5612,13 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -3036,7 +5626,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -3178,6 +5768,31 @@ prebuild-install@^5.3.5: tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +pretty-format@^25.2.1, pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -3193,6 +5808,23 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types-exact@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" + integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== + dependencies: + has "^1.0.3" + object.assign "^4.1.0" + reflect.ownkeys "^0.2.0" + prop-types@15.7.2, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@latest: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -3207,6 +5839,11 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -3254,11 +5891,16 @@ punycode@^1.2.4: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3269,6 +5911,26 @@ querystring@0.2.0, querystring@^0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -3313,12 +5975,12 @@ react-dom@latest: object-assign "^4.1.1" scheduler "^0.20.1" -react-is@16.13.1, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1: +react-is@16.13.1, react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -"react-is@^16.8.0 || ^17.0.0": +"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== @@ -3339,7 +6001,26 @@ 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-transition-group@^4.4.0: +react-test-renderer@^16.0.0-0: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.8.6" + scheduler "^0.19.1" + +react-toastify@*: + version "6.2.0" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-6.2.0.tgz#f2d76747c70b9de91f71f253d9feae6b53dc836c" + integrity sha512-XpjFrcBhQ0/nBOL4syqgP/TywFnOyxmstYLWgSQWcj39qpp+WU4vPt3C/ayIDx7RFyxRWfzWTdR2qOcDGo7G0w== + dependencies: + clsx "^1.1.1" + prop-types "^15.7.2" + react-transition-group "^4.4.1" + +react-transition-group@^4.4.0, react-transition-group@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== @@ -3357,6 +6038,25 @@ react@latest: loose-envify "^1.1.0" object-assign "^4.1.1" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + "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" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -3400,12 +6100,19 @@ redux-devtools-extension@^2.13.8: resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1" integrity sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg== +redux-saga@*: + version "1.1.3" + resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.1.3.tgz#9f3e6aebd3c994bbc0f6901a625f9a42b51d1112" + integrity sha512-RkSn/z0mwaSa5/xH/hQLo8gNf4tlvT18qXDNvedihLcfzh+jMchDgaariQoehCpgRltEm4zHKJyINEz6aqswTw== + dependencies: + "@redux-saga/core" "^1.1.3" + redux-thunk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== -redux@^4.0.5: +redux@^4.0.0, redux@^4.0.4, redux@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== @@ -3413,6 +6120,11 @@ redux@^4.0.5: loose-envify "^1.4.0" symbol-observable "^1.2.0" +reflect.ownkeys@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" + integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -3446,6 +6158,70 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url-loader@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" @@ -3467,6 +6243,14 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@^1.10.0, resolve@^1.18.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -3492,6 +6276,13 @@ rimraf@^2.5.4, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -3500,6 +6291,19 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -3524,11 +6328,26 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sass-loader@10.0.5: version "10.0.5" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" @@ -3540,6 +6359,21 @@ sass-loader@10.0.5: schema-utils "^3.0.0" semver "^7.3.2" +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +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== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler@^0.20.1: version "0.20.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" @@ -3575,23 +6409,23 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@^5.4.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: +semver@7.x, semver@^7.3.2: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -3599,7 +6433,7 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -set-blocking@~2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3647,12 +6481,41 @@ sharp@0.26.2: tar-fs "^2.1.0" tunnel-agent "^0.6.0" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shell-quote@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -signal-exit@^3.0.0: +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -3687,6 +6550,16 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -3733,7 +6606,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -3751,7 +6624,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@0.7.3, source-map@~0.7.2: +source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -3763,11 +6636,37 @@ source-map@0.8.0-beta.0: dependencies: whatwg-url "^7.0.0" -source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -3775,6 +6674,26 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" @@ -3782,6 +6701,13 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + stacktrace-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -3802,6 +6728,11 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + stream-browserify@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -3847,6 +6778,14 @@ string-hash@1.1.3: resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -3864,6 +6803,40 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trim@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz#d23a22fde01c1e6571a7fadcb9be11decd8061a7" + integrity sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string.prototype.trimend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3878,7 +6851,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@6.0.0: +strip-ansi@6.0.0, strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== @@ -3899,6 +6872,21 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -3950,13 +6938,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + symbol-observable@1.2.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -3967,6 +6963,11 @@ symbol-observable@^2.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -3993,6 +6994,14 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -4026,6 +7035,20 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -4046,6 +7069,11 @@ tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -4093,6 +7121,23 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -4100,6 +7145,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + traverse@0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" @@ -4114,6 +7166,23 @@ ts-invariant@^0.6.0: "@ungap/global-this" "^0.4.2" tslib "^1.9.3" +ts-jest@^26.1.0: + version "26.4.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.4.tgz#61f13fb21ab400853c532270e52cc0ed7e502c49" + integrity sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg== + dependencies: + "@types/jest" "26.x" + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -4136,11 +7205,43 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -4151,11 +7252,42 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript-compare@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/typescript-compare/-/typescript-compare-0.0.2.tgz#7ee40a400a406c2ea0a7e551efd3309021d5f425" + integrity sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA== + dependencies: + typescript-logic "^0.0.0" + +typescript-logic@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/typescript-logic/-/typescript-logic-0.0.0.tgz#66ebd82a2548f2b444a43667bec120b496890196" + integrity sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q== + +typescript-tuple@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/typescript-tuple/-/typescript-tuple-2.2.1.tgz#7d9813fb4b355f69ac55032e0363e8bb0f04dad2" + integrity sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q== + dependencies: + typescript-compare "^0.0.2" + +typescript@^3.9.3: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -4254,11 +7386,68 @@ util@^0.11.0: dependencies: inherits "2.0.3" +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vm-browserify@1.1.2, vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -4290,6 +7479,16 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-sources@1.4.3, webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" @@ -4327,6 +7526,18 @@ webpack@4.44.1: watchpack "^1.7.4" webpack-sources "^1.4.1" +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + whatwg-url@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" @@ -4336,11 +7547,39 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -4348,6 +7587,11 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -4355,11 +7599,45 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.2.3: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -4380,6 +7658,36 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yargs-parser@20.x: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From c319cef48b889020cf9777cdf2dca35bfa03e306 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sat, 23 Jan 2021 09:35:24 -0300 Subject: [PATCH 16/46] Add InputTag tests --- .gitignore | 4 +- jest.config.js | 3 - package.json | 7 +- pages/_app.tsx | 9 +- setupTests.ts | 5 - src/components/Canvas/CreateItemContainer.tsx | 47 +- src/components/Solution.tsx | 39 +- src/components/solution/InputTextTag.test.tsx | 37 + src/components/solution/InputTextTag.tsx | 18 +- .../__snapshots__/InputTextTag.test.tsx.snap | 73 ++ src/reducers/__tests__/UserReducer.ts | 121 ---- yarn.lock | 669 ++++-------------- 12 files changed, 301 insertions(+), 731 deletions(-) delete mode 100644 setupTests.ts create mode 100644 src/components/solution/InputTextTag.test.tsx create mode 100644 src/components/solution/__snapshots__/InputTextTag.test.tsx.snap delete mode 100644 src/reducers/__tests__/UserReducer.ts diff --git a/.gitignore b/.gitignore index ed07c2a..c6407fc 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,6 @@ yarn-debug.log* yarn-error.log* # Next.js -/.next +.next + +coverage diff --git a/jest.config.js b/jest.config.js index b7b6ba0..4a02137 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,9 +7,6 @@ module.exports = { }, testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$", moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], - // Setup Enzyme - snapshotSerializers: ["enzyme-to-json/serializer"], - setupFilesAfterEnv: ["/setupTests.ts"], testPathIgnorePatterns: ["/.next/", "/node_modules/"], collectCoverage: false, collectCoverageFrom: ["src/**/*.ts", "src/**/*.tsx"], diff --git a/package.json b/package.json index 29ff8d3..6bdb01c 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,9 @@ "test:coverage": "jest --coverage --env=jsdom" }, "devDependencies": { + "@testing-library/jest-dom": "^5.11.9", + "@testing-library/react": "^11.2.3", "@types/cookie": "^0.4.0", - "@types/enzyme": "^3.10.5", - "@types/enzyme-adapter-react-16": "^1.0.6", "@types/express": "^4.17.6", "@types/jest": "^25.2.3", "@types/node": "^14.0.6", @@ -42,9 +42,6 @@ "@types/react-toastify": "^4.1.0", "@types/redux-saga": "^0.10.5", "axios-mock-adapter": "^1.18.1", - "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.2", - "enzyme-to-json": "^3.5.0", "jest": "^26.0.1", "jest-css-modules": "^2.1.0", "redux-devtools-extension": "^2.13.8", diff --git a/pages/_app.tsx b/pages/_app.tsx index f0fe7ec..c97945a 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -4,18 +4,13 @@ import Head from 'next/head'; import { ThemeProvider } from '@material-ui/core/styles'; import CssBaseline from '@material-ui/core/CssBaseline'; import theme from '../src/theme'; -import { Provider } from "react-redux"; -import configureStore from "../src/configureStore"; import { ApolloProvider } from "@apollo/client"; import { useApollo } from "../src/lib/apolloClient"; - export default function MyApp(props:any) { const { Component, pageProps } = props; - const store = configureStore(true); const apolloClient = useApollo(pageProps.initialApolloState); - React.useEffect(() => { // Remove the server-side injected CSS. const jssStyles = document.querySelector('#jss-server-side'); @@ -34,9 +29,7 @@ export default function MyApp(props:any) { {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} - - @@ -47,4 +40,4 @@ export default function MyApp(props:any) { MyApp.propTypes = { Component: PropTypes.elementType.isRequired, pageProps: PropTypes.object.isRequired, -}; +}; \ No newline at end of file diff --git a/setupTests.ts b/setupTests.ts deleted file mode 100644 index f7373db..0000000 --- a/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Enzyme from "enzyme"; -import Adapter from "enzyme-adapter-react-16"; - -// Configure Enzyme with React 16 adapter -Enzyme.configure({ adapter: new Adapter() }); diff --git a/src/components/Canvas/CreateItemContainer.tsx b/src/components/Canvas/CreateItemContainer.tsx index 912a07d..b724be7 100644 --- a/src/components/Canvas/CreateItemContainer.tsx +++ b/src/components/Canvas/CreateItemContainer.tsx @@ -1,42 +1,49 @@ import { useMutation } from '@apollo/client'; import React from 'react'; import InputTextTag from "../solution/InputTextTag"; -import {CREATE_ITEM_CANVAS} from "./operations/mutations"; +import { CREATE_ITEM_CANVAS } from "./operations/mutations"; const ENTER_KEY = 13; -const CreateItemContainer = ({canvas_id, setVisible, item}) => { +type CreateItemContainerProps = { + canvas_id: string, + setVisible: Function, + item: string +} + +const CreateItemContainer = ({ canvas_id, setVisible, item }: CreateItemContainerProps) => { const [addItemCanvas] = useMutation(CREATE_ITEM_CANVAS); - - const onKeyUp = ({keyCode, target})=> { - if(keyCode == ENTER_KEY){ + + const onKeyUp = ({ keyCode, target }) => { + if (keyCode == ENTER_KEY) { addItemCanvas( - {variables:{ canvas_id, value: target.value, item }, - update: (cache, {data:{createItemCanvas}}) => { - cache.modify({ - fields: { - canvasBySolutionId: (existingItem) => ({...existingItem, [item]: createItemCanvas[item]}) - } - }) - } - }); + { + variables: { canvas_id, value: target.value, item }, + update: (cache, { data: { createItemCanvas } }) => { + cache.modify({ + fields: { + canvasBySolutionId: (existingItem) => ({ ...existingItem, [item]: createItemCanvas[item] }) + } + }) + } + }); target.value = ''; setVisible(false); } } - - const onFocusOut = ()=> { + + const onFocusOut = () => { setVisible(false); } - return( - + /> ) } diff --git a/src/components/Solution.tsx b/src/components/Solution.tsx index 28c11bc..cdf3848 100644 --- a/src/components/Solution.tsx +++ b/src/components/Solution.tsx @@ -6,10 +6,9 @@ import CardMedia from '@material-ui/core/CardMedia'; import CardContent from '@material-ui/core/CardContent'; import CardActions from '@material-ui/core/CardActions'; import Typography from '@material-ui/core/Typography'; -import PropTypes from 'prop-types'; import Link from "next/link" -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(() => ({ root: { maxWidth: 345, minWidth: 345 @@ -20,16 +19,24 @@ const useStyles = makeStyles((theme) => ({ }, })); -export default function Solution({solution_id,name,description,date,image}) { +type SolutionProps = { + solution_id: string, + name: string, + description: string, + date: string, + image: string +} + +export default function Solution({ solution_id, name, description, date, image }: SolutionProps) { const classes = useStyles(); - + return ( - + - {description} + {description} - + - + ); -} - -Solution.propTypes = { - solution_id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - description: PropTypes.string.isRequired, - date: PropTypes.string.isRequired, - image: PropTypes.string.isRequired, -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/components/solution/InputTextTag.test.tsx b/src/components/solution/InputTextTag.test.tsx new file mode 100644 index 0000000..7b776b4 --- /dev/null +++ b/src/components/solution/InputTextTag.test.tsx @@ -0,0 +1,37 @@ +import * as React from "react"; +import InputTextTag, { InputTextTagProps } from "./InputTextTag"; +import { render, screen, fireEvent } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + + const props: InputTextTagProps = { + onKeyUp: jest.fn(), + onFocusOut: jest.fn(), + label: "test label" + } + + render(); + const textField = screen.getByTestId('input-tag'); + + expect(textField).toBeTruthy(); + expect(textField).toMatchSnapshot(); + }); + + it("Press some key should be call a event", async () => { + + const props: InputTextTagProps = { + onKeyUp: jest.fn(), + onFocusOut: jest.fn(), + label: "test label" + } + + render(); + const textField = screen.getByTestId('input-tag'); + + fireEvent.keyUp(textField,{ value: "some value" }); + + expect(props.onKeyUp).toBeCalled(); + expect(textField).toMatchSnapshot(); + }); +}); diff --git a/src/components/solution/InputTextTag.tsx b/src/components/solution/InputTextTag.tsx index f5e66d6..ef699ba 100644 --- a/src/components/solution/InputTextTag.tsx +++ b/src/components/solution/InputTextTag.tsx @@ -1,15 +1,21 @@ import React, { useEffect, useRef } from 'react'; -import PropTypes from "prop-types"; import { TextField } from '@material-ui/core'; -const InputTextTag = ({label, onKeyUp, onFocusOut}) => { - const inputEl = useRef(null); +export type InputTextTagProps = { + label: string, + onKeyUp: any, + onFocusOut: any +} + +const InputTextTag = ({label, onKeyUp, onFocusOut}: InputTextTagProps) => { + const inputEl: any = useRef(null); useEffect(() => { inputEl.current.querySelector('input').focus(); },[]) return( { } export default InputTextTag; - -InputTextTag.prototype = { - label: PropTypes.string.isRequired, - onKeyUp: PropTypes.func.isRequired, - onFocusOut: PropTypes.func.isRequired, -} \ No newline at end of file diff --git a/src/components/solution/__snapshots__/InputTextTag.test.tsx.snap b/src/components/solution/__snapshots__/InputTextTag.test.tsx.snap new file mode 100644 index 0000000..6a0bae0 --- /dev/null +++ b/src/components/solution/__snapshots__/InputTextTag.test.tsx.snap @@ -0,0 +1,73 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` Component should render correctely 1`] = ` +
+ +
+ + +
+
+`; + +exports[` Press some key should be call a event 1`] = ` +
+ +
+ + +
+
+`; diff --git a/src/reducers/__tests__/UserReducer.ts b/src/reducers/__tests__/UserReducer.ts deleted file mode 100644 index 21eef3b..0000000 --- a/src/reducers/__tests__/UserReducer.ts +++ /dev/null @@ -1,121 +0,0 @@ -import userReducer from "../userReducer"; -import actionTypes from "../../actions/actionsType"; - -describe("USer reducer", () => { - const initialState = { - success: false, - message: null, - showPreloader: false, - user: {} - }; - - it("should state to be equal to initial State mock", () => { - let state = userReducer(initialState, {}); - expect(state).toEqual(initialState); - }); - - it("testing action CREATE_ACCOUNT_SEND", () => { - let action = { - type: actionTypes.CREATE_ACCOUNT_SEND - }; - let newState = { ...initialState, showPreloader: true }; - let state = userReducer(initialState, action); - - expect(state).toEqual(newState); - }); - - it("testing action CREATE_ACCOUNT_SUCCESS and CREATE_ACCOUNT_ERROR", () => { - let action = { - type: actionTypes.CREATE_ACCOUNT_SUCCESS - }; - let newState = { ...initialState, showPreloader: false }; - let state = userReducer(initialState, action); - - expect(state).toEqual(newState); - }); - - it("testing action LOADING_LOGIN", () => { - let action = { - type: actionTypes.LOADING_LOGIN - }; - let newState = { ...initialState, showPreloader: true }; - let state = userReducer(initialState, action); - - expect(state).toEqual(newState); - }); - - it("testing action LOGIN_SUCCESS", () => { - let response = { - message: "Login successfull!", - success: true, - user: { name: "username" } - }; - - let action = { - type: actionTypes.LOGIN_SUCCESS, - ...response - }; - let newState = { - ...initialState, - ...response - }; - let state = userReducer(initialState, action); - - expect(state).toEqual(newState); - }); - - it("testing action LOGOUT_SUCCESS", () => { - let action = { - type: actionTypes.LOGOUT_SUCCESS - }; - let newState = { ...initialState, success: false }; - let state = userReducer(initialState, action); - - expect(state).toEqual(newState); - }); - - it("testing action SET_FIRST_ACCESS", () => { - let action = { - type: actionTypes.SET_FIRST_ACCESS, - firstAccess: false - }; - - let state = userReducer(initialState, action); - - let newState = { - ...state, - user: { ...state.user, firstAccess: false } - }; - - expect(state).toEqual(newState); - }); - - it("testing action UPDATE_ACCOUNT_USER", () => { - let user = { - lastname: "name example", - email: "email example", - phone: "1111-1111", - firstAccess: false - }; - - let action = { - type: actionTypes.UPDATE_ACCOUNT_USER, - user - }; - - let state = userReducer(initialState, action); - - let newState = { - ...state, - user: { - ...state.user, - lastname: action.user.lastname, - email: action.user.email, - phone: action.user.phone, - firstAccess: action.user.firstAccess - } - }; - - expect(state).toEqual(newState); - }); -}); diff --git a/yarn.lock b/yarn.lock index 778a3d5..d06f9ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -309,7 +309,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/runtime@7.12.5", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7": +"@babel/runtime-corejs3@^7.10.2": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" + integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.12.5", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.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== @@ -770,6 +778,47 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@testing-library/dom@^7.28.1": + version "7.29.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.29.4.tgz#1647c2b478789621ead7a50614ad81ab5ae5b86c" + integrity sha512-CtrJRiSYEfbtNGtEsd78mk1n1v2TUbeABlNIcOCJdDfkN5/JTOwQEbbQpoSRxGqzcWPgStMvJ4mNolSuBRv1NA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.4" + lz-string "^1.4.4" + pretty-format "^26.6.2" + +"@testing-library/jest-dom@^5.11.9": + version "5.11.9" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz#e6b3cd687021f89f261bd53cbe367041fbd3e975" + integrity sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ== + dependencies: + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^4.2.2" + chalk "^3.0.0" + css "^3.0.0" + css.escape "^1.5.1" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.3.tgz#9971ede1c8465a231d7982eeca3c39fc362d5443" + integrity sha512-BirBUGPkTW28ULuCwIbYo0y2+0aavHczBT6N9r3LrsswEW3pg25l1wgoE7I8QBIy1upXWkwKpYdWY7NYYP0Bxw== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + +"@types/aria-query@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" + integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.12" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" @@ -811,13 +860,6 @@ "@types/connect" "*" "@types/node" "*" -"@types/cheerio@*", "@types/cheerio@^0.22.22": - version "0.22.23" - resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.23.tgz#74bcfee9c5ee53f619711dca953a89fe5cfa4eb4" - integrity sha512-QfHLujVMlGqcS/ePSf3Oe5hK3H8wi/yN2JYuxSB1U10VvW1fO3K8C+mURQesFYS1Hn7lspOsTT75SKq/XtydQg== - dependencies: - "@types/node" "*" - "@types/connect@*": version "3.4.34" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" @@ -830,21 +872,6 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== -"@types/enzyme-adapter-react-16@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz#8aca7ae2fd6c7137d869b6616e696d21bb8b0cec" - integrity sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg== - dependencies: - "@types/enzyme" "*" - -"@types/enzyme@*", "@types/enzyme@^3.10.5": - version "3.10.8" - resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.8.tgz#ad7ac9d3af3de6fd0673773123fafbc63db50d42" - integrity sha512-vlOuzqsTHxog6PV79+tvOHFb6hq4QZKMq1lLD9MaWD1oec2lHTKndn76XOpSwCA0oFTaIbKVPrgM3k78Jjd16g== - dependencies: - "@types/cheerio" "*" - "@types/react" "*" - "@types/express-serve-static-core@*": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" @@ -906,7 +933,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@26.x": +"@types/jest@*", "@types/jest@26.x": version "26.0.20" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.20.tgz#cd2f2702ecf69e86b586e1f5223a60e454056307" integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== @@ -1036,6 +1063,13 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== +"@types/testing-library__jest-dom@^5.9.1": + version "5.9.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" + integrity sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ== + dependencies: + "@types/jest" "*" + "@types/ungap__global-this@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@types/ungap__global-this/-/ungap__global-this-0.3.1.tgz#18ce9f657da556037a29d50604335614ce703f4c" @@ -1282,21 +1316,6 @@ agent-base@6: dependencies: debug "4" -airbnb-prop-types@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" - integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== - dependencies: - array.prototype.find "^2.1.1" - function.prototype.name "^1.1.2" - is-regex "^1.1.0" - object-is "^1.1.2" - object.assign "^4.1.0" - object.entries "^1.1.2" - prop-types "^15.7.2" - prop-types-exact "^1.2.0" - react-is "^16.13.1" - ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -1411,6 +1430,14 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + arity-n@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" @@ -1431,33 +1458,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.find@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" - integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.4" - -array.prototype.flat@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -1693,11 +1698,6 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1905,14 +1905,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -call-bind@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.1.tgz#29aca9151f8ddcfd5b9b786898f005f425e88567" - integrity sha512-tvAvUwNcRikl3RVF20X9lsYmmepsovzTWeJiXjO0PkJp15uy/6xKFZOQtuiSULwYW+6ToZBprphCgWXC2dSgcQ== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1970,7 +1962,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -1983,30 +1975,6 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -cheerio-select-tmp@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz#55bbef02a4771710195ad736d5e346763ca4e646" - integrity sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== - dependencies: - css-select "^3.1.2" - css-what "^4.0.0" - domelementtype "^2.1.0" - domhandler "^4.0.0" - domutils "^2.4.4" - -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.5.tgz#88907e1828674e8f9fee375188b27dadd4f0fa2f" - integrity sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== - dependencies: - cheerio-select-tmp "^0.1.0" - dom-serializer "~1.2.0" - domhandler "^4.0.0" - entities "~2.1.0" - htmlparser2 "^6.0.0" - parse5 "^6.0.0" - parse5-htmlparser2-tree-adapter "^6.0.0" - chokidar@3.4.3, chokidar@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" @@ -2175,7 +2143,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.19.0, commander@^2.20.0: +commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2256,6 +2224,11 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js-pure@^3.0.0: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.3.tgz#10e9e3b2592ecaede4283e8f3ad7020811587c02" + integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2354,17 +2327,6 @@ css-loader@4.3.0: schema-utils "^2.7.1" semver "^7.3.2" -css-select@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" - integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== - dependencies: - boolbase "^1.0.0" - css-what "^4.0.0" - domhandler "^4.0.0" - domutils "^2.4.3" - nth-check "^2.0.0" - css-vendor@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" @@ -2373,12 +2335,7 @@ css-vendor@^2.0.8: "@babel/runtime" "^7.8.3" is-in-browser "^1.0.2" -css-what@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" - integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== - -css.escape@^1.5.0: +css.escape@^1.5.0, css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= @@ -2393,6 +2350,15 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -2535,13 +2501,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -2616,10 +2575,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= +dom-accessibility-api@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" + integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== dom-helpers@^5.0.1: version "5.2.0" @@ -2638,7 +2597,7 @@ dom-serializer@1.1.0: domhandler "^3.0.0" entities "^2.0.0" -dom-serializer@^1.0.1, dom-serializer@~1.2.0: +dom-serializer@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== @@ -2687,7 +2646,7 @@ domutils@2.4.2: domelementtype "^2.0.1" domhandler "^3.3.0" -domutils@^2.4.2, domutils@^2.4.3, domutils@^2.4.4: +domutils@^2.4.2: version "2.4.4" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== @@ -2768,84 +2727,11 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -entities@^2.0.0, entities@~2.1.0: +entities@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== -enzyme-adapter-react-16@^1.15.2: - version "1.15.5" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.5.tgz#7a6f0093d3edd2f7025b36e7fbf290695473ee04" - integrity sha512-33yUJGT1nHFQlbVI5qdo5Pfqvu/h4qPwi1o0a6ZZsjpiqq92a3HjynDhwd1IeED+Su60HDWV8mxJqkTnLYdGkw== - dependencies: - enzyme-adapter-utils "^1.13.1" - enzyme-shallow-equal "^1.0.4" - has "^1.0.3" - object.assign "^4.1.0" - object.values "^1.1.1" - prop-types "^15.7.2" - react-is "^16.13.1" - react-test-renderer "^16.0.0-0" - semver "^5.7.0" - -enzyme-adapter-utils@^1.13.1: - version "1.14.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" - integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== - dependencies: - airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.3" - has "^1.0.3" - object.assign "^4.1.2" - object.fromentries "^2.0.3" - prop-types "^15.7.2" - semver "^5.7.1" - -enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" - integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== - dependencies: - has "^1.0.3" - object-is "^1.1.2" - -enzyme-to-json@^3.5.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.1.tgz#d60740950bc7ca6384dfe6fe405494ec5df996bc" - integrity sha512-15tXuONeq5ORoZjV/bUo2gbtZrN2IH+Z6DvL35QmZyKHgbY1ahn6wcnLd9Xv9OjiwbAXiiP8MRZwbZrCv1wYNg== - dependencies: - "@types/cheerio" "^0.22.22" - lodash "^4.17.15" - react-is "^16.12.0" - -enzyme@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -2860,50 +2746,6 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.4: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" @@ -3311,21 +3153,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.2, function.prototype.name@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.3.tgz#0bb034bb308e7682826f215eb6b2ae64918847fe" - integrity sha512-H51qkbNSp8mtkJt+nyW1gyStBiKZxfRqySNUR99ylq6BPXHKI4SEvIlTKp4odLfjRKJV04DFWMU3G/YRlQOsag== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - functions-have-names "^1.2.1" - -functions-have-names@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" - integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -3350,15 +3177,6 @@ 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-intrinsic@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" - integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -3480,11 +3298,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3571,13 +3384,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -html-element-map@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" - integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== - dependencies: - array-filter "^1.0.0" - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -3600,16 +3406,6 @@ htmlparser2@5.0.1: domutils "^2.4.2" entities "^2.0.0" -htmlparser2@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" - integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.4.4" - entities "^2.0.0" - http-errors@1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -3704,6 +3500,11 @@ indefinite-observable@^2.0.1: dependencies: symbol-observable "1.2.0" +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3785,13 +3586,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== - dependencies: - call-bind "^1.0.0" - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3802,11 +3596,6 @@ is-buffer@^2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -3835,11 +3624,6 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3921,16 +3705,6 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3: resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= -is-negative-zero@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -3955,13 +3729,6 @@ is-potential-custom-element-name@^1.0.0: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= -is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3972,23 +3739,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -4764,21 +4514,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4815,6 +4550,11 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -4946,6 +4686,11 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5009,11 +4754,6 @@ mkdirp@^0.5.1, mkdirp@^0.5.3: dependencies: minimist "^1.2.5" -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -5080,16 +4820,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -5295,13 +5025,6 @@ npmlog@^4.0.1, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== - dependencies: - boolbase "^1.0.0" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -5331,24 +5054,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0, object-inspect@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - -object-is@^1.0.2, object-is@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -5356,36 +5061,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.entries@^1.1.1, object.entries@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - -object.fromentries@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" - integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -5393,16 +5068,6 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" - integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5519,23 +5184,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - parse5@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^6.0.0, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -5816,15 +5469,6 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types-exact@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" - integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== - dependencies: - has "^1.0.3" - object.assign "^4.1.0" - reflect.ownkeys "^0.2.0" - prop-types@15.7.2, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@latest: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -5911,26 +5555,6 @@ querystring@0.2.0, querystring@^0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -5975,7 +5599,7 @@ react-dom@latest: object-assign "^4.1.1" scheduler "^0.20.1" -react-is@16.13.1, react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: +react-is@16.13.1, react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -6001,16 +5625,6 @@ 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-test-renderer@^16.0.0-0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== - dependencies: - object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" - react-toastify@*: version "6.2.0" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-6.2.0.tgz#f2d76747c70b9de91f71f253d9feae6b53dc836c" @@ -6095,6 +5709,14 @@ readdirp@~3.5.0: dependencies: picomatch "^2.2.1" +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + redux-devtools-extension@^2.13.8: version "2.13.8" resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1" @@ -6120,11 +5742,6 @@ redux@^4.0.0, redux@^4.0.4, redux@^4.0.5: loose-envify "^1.4.0" symbol-observable "^1.2.0" -reflect.ownkeys@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" - integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= - regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -6291,14 +5908,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -6366,14 +5975,6 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" -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== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler@^0.20.1: version "0.20.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" @@ -6409,7 +6010,7 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6606,6 +6207,14 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -6812,31 +6421,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trim@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz#d23a22fde01c1e6571a7fadcb9be11decd8061a7" - integrity sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -string.prototype.trimend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -6887,6 +6471,13 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" From 6ea30943f993fbdeb7674941643acde3a73df3e8 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 08:20:02 -0300 Subject: [PATCH 17/46] Add tests to component --- src/components/Solution.test.tsx | 25 +++++++++++ src/components/Solution.tsx | 4 +- .../__snapshots__/Solution.test.tsx.snap | 44 +++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 src/components/Solution.test.tsx create mode 100644 src/components/__snapshots__/Solution.test.tsx.snap diff --git a/src/components/Solution.test.tsx b/src/components/Solution.test.tsx new file mode 100644 index 0000000..d2a6b89 --- /dev/null +++ b/src/components/Solution.test.tsx @@ -0,0 +1,25 @@ +import * as React from "react"; +import Solution, { SolutionProps } from "./Solution"; +import { render } from '@testing-library/react' + +describe("", () => { + it.only("Component should render correctely", async () => { + + const props: SolutionProps = { + solution_id: "solution_id", + name: "ame", + description: "description", + date: "ate", + image: "image" + } + + const { getByTestId, getByText } = render(); + const solution = getByTestId('solution'); + + expect(solution).toBeTruthy(); + expect(getByText(props.name)).toBeInTheDocument; + expect(getByText(props.description)).toBeInTheDocument; + expect(getByText(props.date)).toBeInTheDocument; + expect(solution).toMatchSnapshot(); + }); +}); diff --git a/src/components/Solution.tsx b/src/components/Solution.tsx index cdf3848..3262a7b 100644 --- a/src/components/Solution.tsx +++ b/src/components/Solution.tsx @@ -19,7 +19,7 @@ const useStyles = makeStyles(() => ({ }, })); -type SolutionProps = { +export type SolutionProps = { solution_id: string, name: string, description: string, @@ -31,7 +31,7 @@ export default function Solution({ solution_id, name, description, date, image } const classes = useStyles(); return ( - + Component should render correctely 1`] = ` +
+
+
+ + ame + + + ate + +
+
+
+
+

+ description +

+
+
+
+`; From bb269c1e372c59612bfc054ed068777fefe45df8 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 09:00:51 -0300 Subject: [PATCH 18/46] Add tests to component --- src/components/Search.test.tsx | 35 ++++++ src/components/Search.tsx | 59 +++++----- src/components/Solution.test.tsx | 2 +- .../__snapshots__/Search.test.tsx.snap | 101 ++++++++++++++++++ 4 files changed, 169 insertions(+), 28 deletions(-) create mode 100644 src/components/Search.test.tsx create mode 100644 src/components/__snapshots__/Search.test.tsx.snap diff --git a/src/components/Search.test.tsx b/src/components/Search.test.tsx new file mode 100644 index 0000000..0fafac5 --- /dev/null +++ b/src/components/Search.test.tsx @@ -0,0 +1,35 @@ +import * as React from "react"; +import Search, { SearchProps } from "./Search"; +import { fireEvent, render } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + + const props: SearchProps = { + loadingSolutions: jest.fn() + } + + const { getByTestId, getByText } = render(); + const search = getByTestId('search'); + + expect(search).toBeTruthy(); + expect(getByText('Architecture Center')).toBeInTheDocument; + expect(search).toMatchSnapshot(); + }); + + it("When press Enter loadingSolutions is called", async () => { + + const props: SearchProps = { + loadingSolutions: jest.fn() + } + + const { getByTestId } = render(); + const searchTextField = getByTestId('searchTextField'); + + expect(searchTextField).toBeTruthy(); + fireEvent.keyUp(searchTextField, { value: "some text", keyCode: 13 }); + + expect(props.loadingSolutions).toBeCalled(); + expect(searchTextField).toMatchSnapshot(); + }); +}); diff --git a/src/components/Search.tsx b/src/components/Search.tsx index 4a83a14..b463a4c 100644 --- a/src/components/Search.tsx +++ b/src/components/Search.tsx @@ -1,59 +1,64 @@ -import React, { useEffect, useRef } from 'react'; +import React, { KeyboardEvent, useEffect, useRef } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Grid from '@material-ui/core/Grid'; import { TextField, Typography } from '@material-ui/core'; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(() => ({ root: { flexGrow: 1, - height:'100%' + height: '100%' }, - containerSearchBar:{ + containerSearchBar: { marginTop: '20%', marginBottom: '50px', }, - searchBar:{ + searchBar: { backgroundColor: '#ffffff', marginTop: '100px' } })); -const keyUpSearch = (event, loadingSolutions) => { - if(event.keyCode == 13){ - loadingSolutions({ +const keyUpSearch = (event: KeyboardEvent, loadingSolutions: Function) => { + if (event.keyCode == 13) { + loadingSolutions({ variables: { - search: event.target.value + search: (event.target as HTMLInputElement).value }, - }); + }); } } -export default function Search({loadingSolutions}) { +export type SearchProps = { + loadingSolutions: Function +} + +export default function Search({ loadingSolutions }: SearchProps) { const classes = useStyles(); - const inputEl = useRef(null); + const inputEl = useRef(null); useEffect(() => { - inputEl.current.querySelector('input').focus(); - },[]) + inputEl?.current?.querySelector('input')?.focus(); + }, []) return ( -
+
-
- Architecture Center - keyUpSearch(event, loadingSolutions) - }/> -
+
+ Architecture Center + keyUpSearch(event, loadingSolutions) + } /> +
diff --git a/src/components/Solution.test.tsx b/src/components/Solution.test.tsx index d2a6b89..3411a3d 100644 --- a/src/components/Solution.test.tsx +++ b/src/components/Solution.test.tsx @@ -3,7 +3,7 @@ import Solution, { SolutionProps } from "./Solution"; import { render } from '@testing-library/react' describe("", () => { - it.only("Component should render correctely", async () => { + it("Component should render correctely", async () => { const props: SolutionProps = { solution_id: "solution_id", diff --git a/src/components/__snapshots__/Search.test.tsx.snap b/src/components/__snapshots__/Search.test.tsx.snap new file mode 100644 index 0000000..b1725cd --- /dev/null +++ b/src/components/__snapshots__/Search.test.tsx.snap @@ -0,0 +1,101 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` Component should render correctely 1`] = ` +
+
+
+
+

+ Architecture Center +

+
+ +
+ + +
+
+
+
+
+
+`; + +exports[` When press Enter loadingSolutions is called 1`] = ` +
+ +
+ + +
+
+`; From 392da18356b3ca6c35313da8a404c82d362cb660 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 11:22:33 -0300 Subject: [PATCH 19/46] Add tests to components --- src/components/ListSolutions.test.tsx | 47 +++++++++++++++++++ src/components/ListSolutions.tsx | 26 +++++++--- .../__snapshots__/ListSolutions.test.tsx.snap | 12 +++++ 3 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 src/components/ListSolutions.test.tsx create mode 100644 src/components/__snapshots__/ListSolutions.test.tsx.snap diff --git a/src/components/ListSolutions.test.tsx b/src/components/ListSolutions.test.tsx new file mode 100644 index 0000000..bfba719 --- /dev/null +++ b/src/components/ListSolutions.test.tsx @@ -0,0 +1,47 @@ +import { render } from "@testing-library/react"; +import * as React from "react"; +import ListSolutions, { ListSolutionsProps, Solution } from "./ListSolutions"; + +describe("", () => { + it("Component should render correctely", async () => { + + const props: ListSolutionsProps = { + solutions: [] + } + + const { getByTestId } = render(); + const listSOlutions = getByTestId('list-solutions'); + + expect(listSOlutions).toBeTruthy(); + expect(listSOlutions).toMatchSnapshot(); + }); + + it("To pass an array of solutions shold be show the same number of ", async () => { + + const props: ListSolutionsProps = { + solutions: [{ + solution_id: "1", + name: "solution 1", + description: "description", + year_month: "ate", + big_picture: "image" + }, + { + solution_id: "2", + name: "solution 2", + description: "description", + year_month: "ate", + big_picture: "image" + }] + } + + const { getByText } = render(); + + props.solutions.forEach((solution: Solution) => { + + expect(getByText(solution.name)).toBeTruthy(); + + }); + }); + +}); diff --git a/src/components/ListSolutions.tsx b/src/components/ListSolutions.tsx index fd3deef..26eda1c 100644 --- a/src/components/ListSolutions.tsx +++ b/src/components/ListSolutions.tsx @@ -3,24 +3,36 @@ import { makeStyles } from '@material-ui/core/styles'; import Grid from '@material-ui/core/Grid'; import Solution from './Solution'; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(() => ({ root: { flexGrow: 1, }, })); -export default function ListSolutions({solutions}) { +export type Solution = { + solution_id: string, + name: string, + description: string, + year_month: string, + big_picture: string +} + +export type ListSolutionsProps = { + solutions: Array +} + +export default function ListSolutions({ solutions }: ListSolutionsProps) { const classes = useStyles(); - + return ( -
+
{ solutions.map( - ({solution_id,name,description,year_month, big_picture}) => - () + ({ solution_id, name, description, year_month, big_picture }: Solution) => + () ) - } + }
); diff --git a/src/components/__snapshots__/ListSolutions.test.tsx.snap b/src/components/__snapshots__/ListSolutions.test.tsx.snap new file mode 100644 index 0000000..016abc8 --- /dev/null +++ b/src/components/__snapshots__/ListSolutions.test.tsx.snap @@ -0,0 +1,12 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` Component should render correctely 1`] = ` +
+
+
+`; From b05f6544caa7a098b0a0c68318af3c0e32ac5440 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 11:30:55 -0300 Subject: [PATCH 20/46] Add tests to components --- src/components/Breadcumb.test.tsx | 16 ++++++++++++++++ src/components/Breadcumb.tsx | 5 ++--- .../__snapshots__/Breadcumb.test.tsx.snap | 10 ++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/components/Breadcumb.test.tsx create mode 100644 src/components/__snapshots__/Breadcumb.test.tsx.snap diff --git a/src/components/Breadcumb.test.tsx b/src/components/Breadcumb.test.tsx new file mode 100644 index 0000000..034fd8c --- /dev/null +++ b/src/components/Breadcumb.test.tsx @@ -0,0 +1,16 @@ +import * as React from "react"; +import Breadcumb from "./Breadcumb"; +import { render, fireEvent } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + + const { getByText } = render(); + const breadcumb = getByText('Solution'); + + fireEvent.click(breadcumb); + + expect(breadcumb).toBeInTheDocument; + expect(breadcumb).toMatchSnapshot(); + }); +}); diff --git a/src/components/Breadcumb.tsx b/src/components/Breadcumb.tsx index 5ce3413..29493af 100644 --- a/src/components/Breadcumb.tsx +++ b/src/components/Breadcumb.tsx @@ -1,9 +1,8 @@ -import React from 'react'; -import Typography from '@material-ui/core/Typography'; +import React, { SyntheticEvent } from 'react'; import Breadcrumbs from '@material-ui/core/Breadcrumbs'; import Link from '@material-ui/core/Link'; -function handleClick(event) { +function handleClick(event : SyntheticEvent) { event.preventDefault(); console.info('You clicked a breadcrumb.'); } diff --git a/src/components/__snapshots__/Breadcumb.test.tsx.snap b/src/components/__snapshots__/Breadcumb.test.tsx.snap new file mode 100644 index 0000000..0068656 --- /dev/null +++ b/src/components/__snapshots__/Breadcumb.test.tsx.snap @@ -0,0 +1,10 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` Component should render correctely 1`] = ` + + Solution + +`; From c38e0744e8654cce43989e6b2c8ea0d049b3bce2 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 12:02:03 -0300 Subject: [PATCH 21/46] Add tests to component --- src/components/AppBar.test.tsx | 49 ++++++++++++++++++++++++++++++++++ src/components/AppBar.tsx | 26 +++++++++--------- 2 files changed, 61 insertions(+), 14 deletions(-) create mode 100644 src/components/AppBar.test.tsx diff --git a/src/components/AppBar.test.tsx b/src/components/AppBar.test.tsx new file mode 100644 index 0000000..8cf8d0b --- /dev/null +++ b/src/components/AppBar.test.tsx @@ -0,0 +1,49 @@ +import * as React from "react"; +import AppBar from "./AppBar"; +import { fireEvent, render } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + + const { getByText, getAllByText } = render(); + + expect(getByText('Solution')).toBeInTheDocument; + expect(getAllByText('Profile')).toBeInTheDocument; + expect(getByText('My account')).toBeInTheDocument; + expect(getByText('Notifications')).toBeInTheDocument; + + }); + + it("Click on profile menu shild be call function to show it", async () => { + + const { getByTestId } = render(); + const menu = getByTestId('profileMenuOpen'); + + fireEvent.click(menu); + + expect(fireEvent).toBeInTheDocument; + + }); + + it("Click on My account menu shild be call function to show it", async () => { + + const { getByText } = render(); + const menu = getByText('My account'); + + fireEvent.click(menu); + + expect(fireEvent).toBeInTheDocument; + + }); + + it("Click on mobile menu menu shild be call function to show it", async () => { + + const { getByLabelText } = render(); + const menu = getByLabelText('show more'); + + fireEvent.click(menu); + + expect(fireEvent).toBeInTheDocument; + + }); +}); diff --git a/src/components/AppBar.tsx b/src/components/AppBar.tsx index 0724453..c297de6 100644 --- a/src/components/AppBar.tsx +++ b/src/components/AppBar.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { SyntheticEvent, useState } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import AppBar from '@material-ui/core/AppBar'; import Toolbar from '@material-ui/core/Toolbar'; @@ -42,14 +42,14 @@ const useStyles = makeStyles((theme) => ({ export default function PrimarySearchAppBar() { const classes = useStyles(); - const [anchorEl, setAnchorEl] = React.useState(null); - const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null); + const [anchorEl, setAnchorEl] = useState(null); + const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = useState(null); const isMenuOpen = Boolean(anchorEl); const isMobileMenuOpen = Boolean(mobileMoreAnchorEl); - const handleProfileMenuOpen = (event) => { - setAnchorEl(event.currentTarget); + const handleProfileMenuOpen = (event: SyntheticEvent) => { + setAnchorEl(event.currentTarget as HTMLElement); }; const handleMobileMenuClose = () => { @@ -61,8 +61,8 @@ export default function PrimarySearchAppBar() { handleMobileMenuClose(); }; - const handleMobileMenuOpen = (event) => { - setMobileMoreAnchorEl(event.currentTarget); + const handleMobileMenuOpen = (event: SyntheticEvent) => { + setMobileMoreAnchorEl(event.currentTarget as HTMLElement); }; const menuId = 'primary-search-account-menu'; @@ -108,7 +108,7 @@ export default function PrimarySearchAppBar() {

Notifications

- + - - {process.env.NEXT_PUBLIC_NAME} - + + {process.env.NEXT_PUBLIC_NAME} + - +
From cc4aba2e88bb54bef2ac11597a1b986f9a7da083 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 12:21:06 -0300 Subject: [PATCH 22/46] Add tests to component --- src/components/solution/Teams.test.tsx | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/components/solution/Teams.test.tsx diff --git a/src/components/solution/Teams.test.tsx b/src/components/solution/Teams.test.tsx new file mode 100644 index 0000000..1e304de --- /dev/null +++ b/src/components/solution/Teams.test.tsx @@ -0,0 +1,50 @@ +import * as React from "react"; +import Teams, { TeamsProps } from "./Teams"; +import { fireEvent, render } from '@testing-library/react' +import { MockedProvider } from '@apollo/client/testing'; + +describe("", () => { + it("Component should render correctely", async () => { + const props: TeamsProps = { + members: [], + solution_id: "1" + } + const { getByText } = render(); + + expect(getByText('Team')).toBeInTheDocument; + expect(getByText('member')).toBeInTheDocument; + }); + + it("Passing members as props should be render them", async () => { + const members: Array = ["Member 1", "Member 2"]; + + const props: TeamsProps = { + members, + solution_id: "1" + } + const { getByText } = render(); + + members.forEach(member => expect(getByText(member)).toBeInTheDocument) + + }); + + it("Click on add member should be to show input to type member", async () => { + + const props: TeamsProps = { + members: [], + solution_id: "1" + } + const { getByText, getByTestId } = render( + + + + ); + + const button = getByText('member'); + + fireEvent.click(button); + + expect(getByTestId('input-tag')).toBeInTheDocument + + }); +}); From aced16fedf4d2a664fc3fbd2aef74a3abdda176b Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 12:45:40 -0300 Subject: [PATCH 23/46] Fix syntax --- .../solution/InputTextTeamContainer.tsx | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/components/solution/InputTextTeamContainer.tsx b/src/components/solution/InputTextTeamContainer.tsx index b6a03a0..8ee8608 100644 --- a/src/components/solution/InputTextTeamContainer.tsx +++ b/src/components/solution/InputTextTeamContainer.tsx @@ -1,42 +1,48 @@ import { useMutation } from '@apollo/client'; import React from 'react'; import InputTextTag from "./InputTextTag"; -import {ADD_MEMBER_TO_SOLUTION} from "./operations/mutaions"; +import { ADD_MEMBER_TO_SOLUTION } from "./operations/mutaions"; const ENTER_KEY = 13; -const InputTextTagContainer = ({solution_id, setVisible}) => { +export type InputTextTagContainerProps = { + solution_id: string, + setVisible: Function +} + +const InputTextTagContainer = ({ solution_id, setVisible }: InputTextTagContainerProps) => { const [saveTemMeber] = useMutation(ADD_MEMBER_TO_SOLUTION); - const onKeyUp = ({keyCode, target})=> { - if(keyCode == ENTER_KEY){ + const onKeyUp = ({ keyCode, target }: KeyboardEvent) => { + if (keyCode == ENTER_KEY) { saveTemMeber( - {variables:{ solution_id, team_member: target.value }, - update: (cache, {data:{createTeamMemberSolution}}) => { - cache.modify({ - fields: { - solutionById: (existingSolution) => ({...existingSolution, team_members: createTeamMemberSolution.team_members}) - } - }) - } - }); - - target.value = ''; + { + variables: { solution_id, team_member: (target as HTMLInputElement).value }, + update: (cache, { data: { createTeamMemberSolution } }) => { + cache.modify({ + fields: { + solutionById: (existingSolution) => ({ ...existingSolution, team_members: createTeamMemberSolution.team_members }) + } + }) + } + }); + + (target as HTMLInputElement).value = ''; setVisible(false); } } - - const onFocusOut = ()=> { + + const onFocusOut = () => { setVisible(false); } - return( - + /> ) } From 06eca3b3f508afb034cdaf1b5ab0f020dea8d9b8 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Sun, 24 Jan 2021 13:11:44 -0300 Subject: [PATCH 24/46] Fix type system --- src/components/solution/MainTabs.tsx | 43 ++++++++++----------- src/components/solution/SolutionDetails.tsx | 22 +++++++---- src/components/solution/Tags.tsx | 39 +++++++++---------- 3 files changed, 54 insertions(+), 50 deletions(-) diff --git a/src/components/solution/MainTabs.tsx b/src/components/solution/MainTabs.tsx index 3bb116d..c79218d 100644 --- a/src/components/solution/MainTabs.tsx +++ b/src/components/solution/MainTabs.tsx @@ -1,6 +1,4 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { useTheme } from '@material-ui/core/styles'; +import React, { ChangeEvent } from 'react'; import AppBar from '@material-ui/core/AppBar'; import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; @@ -11,7 +9,13 @@ import BigPicture from "./BigPicture" import Reference from "./Reference"; import ReferenceLinks from "./Reference/Links"; -function TabPanel(props) { +export type TabPanelProps = { + children: React.ReactNode, + index: number, + value: number, +}; + +function TabPanel(props: TabPanelProps) { const { children, value, index, ...other } = props; return ( @@ -31,24 +35,22 @@ function TabPanel(props) { ); } -TabPanel.propTypes = { - children: PropTypes.node, - index: PropTypes.any.isRequired, - value: PropTypes.any.isRequired, -}; - -function a11yProps(index) { +function a11yProps(index: number) { return { id: `full-width-tab-${index}`, 'aria-controls': `full-width-tabpanel-${index}`, }; } -export default function MainTabs({solution, canvas}) { - const theme = useTheme(); +export type MainTabsProps = { + solution: object, + canvas: object +} + +export default function MainTabs({solution, canvas}: MainTabsProps) { const [value, setValue] = React.useState(0); - const handleChange = (event, newValue) => { + const handleChange = (event: ChangeEvent<{}>, newValue: any) => { setValue(newValue); }; @@ -69,24 +71,19 @@ export default function MainTabs({solution, canvas}) { - + - + - + - +
); -} - -MainTabs.propTypes = { - solution: PropTypes.object.isRequired, - canvas: PropTypes.object.isRequired } \ No newline at end of file diff --git a/src/components/solution/SolutionDetails.tsx b/src/components/solution/SolutionDetails.tsx index eeb8e82..7e3589c 100644 --- a/src/components/solution/SolutionDetails.tsx +++ b/src/components/solution/SolutionDetails.tsx @@ -4,7 +4,6 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Divider } from '@material-ui/core'; -import PropTypes from 'prop-types'; const useStyles = makeStyles({ root: { @@ -18,14 +17,27 @@ const useStyles = makeStyles({ }, }); -export default function SolutionDetails({solution}) { +export type Solution = { + name: string, + customer: string, + project: string, + market: string, + year_month: string, + description: string +} + +export type SolutionDetailsProps = { + solution: Solution +} + +export default function SolutionDetails({ solution }: SolutionDetailsProps) { const classes = useStyles(); return ( - Solution details + Solution details @@ -73,8 +85,4 @@ export default function SolutionDetails({solution}) { ); -} - -SolutionDetails.propTypes = { - solution: PropTypes.object.isRequired } \ No newline at end of file diff --git a/src/components/solution/Tags.tsx b/src/components/solution/Tags.tsx index de5a22a..f1ac16a 100644 --- a/src/components/solution/Tags.tsx +++ b/src/components/solution/Tags.tsx @@ -4,7 +4,6 @@ import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; import { Button, Chip, Divider } from '@material-ui/core'; -import PropTypes from 'prop-types'; import AddIcon from '@material-ui/icons/Add'; import InputTextTagContainer from './InputTextTagContainer'; @@ -20,7 +19,12 @@ const useStyles = makeStyles({ } }); -export default function Tags({tags, solution_id}) { +export type TagsProps = { + tags: Array, + solution_id: string +} + +export default function Tags({ tags, solution_id }: TagsProps) { const classes = useStyles(); const [addTagVisible, setAddTagVisible] = useState(false); @@ -29,28 +33,23 @@ export default function Tags({tags, solution_id}) { - Tags - - {addTagVisible ? : null} -
- {tags.map(tag => )} + {addTagVisible ? : null} +
+ {tags.map((tag: string) => )}
); -} - -Tags.propTypes = { - tags: PropTypes.array.isRequired, - solution_id: PropTypes.string.isRequired } \ No newline at end of file From 2f4314b904a91adc3ea992b2edfb4fc88a3a5793 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 19:51:16 -0300 Subject: [PATCH 25/46] Add tests to component --- .../solution/InputTextTagContainer.tsx | 48 ++++++++++-------- src/components/solution/Tag.test.tsx | 50 +++++++++++++++++++ 2 files changed, 77 insertions(+), 21 deletions(-) create mode 100644 src/components/solution/Tag.test.tsx diff --git a/src/components/solution/InputTextTagContainer.tsx b/src/components/solution/InputTextTagContainer.tsx index c74049a..72db652 100644 --- a/src/components/solution/InputTextTagContainer.tsx +++ b/src/components/solution/InputTextTagContainer.tsx @@ -1,42 +1,48 @@ import { useMutation } from '@apollo/client'; import React from 'react'; import InputTextTag from "./InputTextTag"; -import {ADD_TAG_TO_SOLUTION} from "./operations/mutaions"; +import { ADD_TAG_TO_SOLUTION } from "./operations/mutaions"; const ENTER_KEY = 13; -const InputTextTagContainer = ({solution_id, setVisible}) => { +export type InputTextTagContainerProps = { + solution_id: string, + setVisible: Function +} + +const InputTextTagContainer = ({ solution_id, setVisible }: InputTextTagContainerProps) => { const [saveTemMeber] = useMutation(ADD_TAG_TO_SOLUTION); - const onKeyUp = ({keyCode, target})=> { - if(keyCode == ENTER_KEY){ + const onKeyUp = ({ keyCode, target }: KeyboardEvent) => { + if (keyCode == ENTER_KEY) { saveTemMeber( - {variables:{ solution_id, tag: target.value }, - update: (cache, {data:{createTagSolution}}) => { - cache.modify({ - fields: { - solutionById: (existingSolution) => ({...existingSolution, tags: createTagSolution.tags}) - } - }) - } - }); - - target.value = ''; + { + variables: { solution_id, tag: (target as HTMLInputElement).value }, + update: (cache, { data: { createTagSolution } }) => { + cache.modify({ + fields: { + solutionById: (existingSolution) => ({ ...existingSolution, tags: createTagSolution.tags }) + } + }) + } + }); + + (target as HTMLInputElement).value = ''; setVisible(false); } } - - const onFocusOut = ()=> { + + const onFocusOut = () => { setVisible(false); } - return( - + /> ) } diff --git a/src/components/solution/Tag.test.tsx b/src/components/solution/Tag.test.tsx new file mode 100644 index 0000000..a15c098 --- /dev/null +++ b/src/components/solution/Tag.test.tsx @@ -0,0 +1,50 @@ +import * as React from "react"; +import Tags, { TagsProps } from "./Tags"; +import { fireEvent, render } from '@testing-library/react' +import { MockedProvider } from '@apollo/client/testing'; + +describe("", () => { + it("Component should render correctely", async () => { + const props: TagsProps = { + tags: [], + solution_id: "1" + } + const { getByText } = render(); + + expect(getByText('Tags')).toBeInTheDocument; + expect(getByText('tag')).toBeInTheDocument; + }); + + it("Passing tags as props should be render them", async () => { + const tags: Array = ["Member 1", "Member 2"]; + + const props: TagsProps = { + tags, + solution_id: "1" + } + const { getByText } = render(); + + tags.forEach(member => expect(getByText(member)).toBeInTheDocument) + + }); + + it("Click on add tag should be to show input to type member", async () => { + + const props: TagsProps = { + tags: [], + solution_id: "1" + } + const { getByText, getByTestId } = render( + + + + ); + + const button = getByText('tag'); + + fireEvent.click(button); + + expect(getByTestId('input-tag')).toBeInTheDocument + + }); +}); From 48c24ce129fd2dbb5719c99e31ed7d5c51ed0cb0 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 19:58:16 -0300 Subject: [PATCH 26/46] Add tests to components --- .../solution/SolutionDetails.test.tsx | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/components/solution/SolutionDetails.test.tsx diff --git a/src/components/solution/SolutionDetails.test.tsx b/src/components/solution/SolutionDetails.test.tsx new file mode 100644 index 0000000..4061886 --- /dev/null +++ b/src/components/solution/SolutionDetails.test.tsx @@ -0,0 +1,28 @@ +import { render } from "@testing-library/react"; +import * as React from "react"; +import SolutionDetails, { Solution } from "./SolutionDetails"; + +describe("", () => { + it("Component should render correctely", async () => { + const solution: Solution = { + name: "name solution", + customer: "customer", + description: "descriptino", + market: "market", + project: "project", + year_month: "2021/12" + }; + + const { getByText } = render(); + + expect(getByText('Solution details')).toBeInTheDocument; + expect(getByText(solution.name)).toBeInTheDocument; + expect(getByText(solution.customer)).toBeInTheDocument; + expect(getByText(solution.description)).toBeInTheDocument; + expect(getByText(solution.market)).toBeInTheDocument; + expect(getByText(solution.project)).toBeInTheDocument; + expect(getByText(solution.year_month)).toBeInTheDocument; + }); + + +}); From 22b84a2ce7ddac4a8da5e3332c77f79c680c0d56 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 20:44:33 -0300 Subject: [PATCH 27/46] Add tests components --- .../solution/InputTextTeamContainer.test.tsx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/components/solution/InputTextTeamContainer.test.tsx diff --git a/src/components/solution/InputTextTeamContainer.test.tsx b/src/components/solution/InputTextTeamContainer.test.tsx new file mode 100644 index 0000000..44536b6 --- /dev/null +++ b/src/components/solution/InputTextTeamContainer.test.tsx @@ -0,0 +1,31 @@ +import * as React from "react"; +import InputTextTeamContainer, { InputTextTagContainerProps } from "./InputTextTeamContainer"; +import { fireEvent, render } from '@testing-library/react' +import { MockedProvider } from '@apollo/client/testing'; + +describe("", () => { + it("Component should render correctely", async () => { + + const props: InputTextTagContainerProps = { + solution_id: "2345", + setVisible: jest.fn() + } + const { getByTestId } = render( + + + + ); + + const input = getByTestId('input-tag'); + + fireEvent.keyUp(input, { value: "abc", keyCode: 13 }); + + fireEvent.click(input); + + fireEvent.blur(input.querySelector('input') || window); + + expect(input).toBeInTheDocument + expect(props.setVisible).toBeCalledTimes(2); + + }); +}); From 5f466abbe1a1c6ead9e19ef7bcc757b53bc67418 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 20:52:17 -0300 Subject: [PATCH 28/46] Add tests to --- .../solution/InputTextTagContainer.test.tsx | 31 +++++++++++++++++++ .../solution/InputTextTeamContainer.tsx | 4 +-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/components/solution/InputTextTagContainer.test.tsx diff --git a/src/components/solution/InputTextTagContainer.test.tsx b/src/components/solution/InputTextTagContainer.test.tsx new file mode 100644 index 0000000..1b4acb6 --- /dev/null +++ b/src/components/solution/InputTextTagContainer.test.tsx @@ -0,0 +1,31 @@ +import * as React from "react"; +import InputTextTagContainer, { InputTextTagContainerProps } from "./InputTextTagContainer"; +import { fireEvent, render } from '@testing-library/react' +import { MockedProvider } from '@apollo/client/testing'; + +describe("", () => { + it("Component should render correctely", async () => { + + const props: InputTextTagContainerProps = { + solution_id: "2345", + setVisible: jest.fn() + } + const { getByTestId } = render( + + + + ); + + const input = getByTestId('input-tag'); + + fireEvent.keyUp(input, { value: "abc", keyCode: 13 }); + + fireEvent.click(input); + + fireEvent.blur(input.querySelector('input') || window); + + expect(input).toBeInTheDocument + expect(props.setVisible).toBeCalledTimes(2); + + }); +}); diff --git a/src/components/solution/InputTextTeamContainer.tsx b/src/components/solution/InputTextTeamContainer.tsx index 8ee8608..814fd76 100644 --- a/src/components/solution/InputTextTeamContainer.tsx +++ b/src/components/solution/InputTextTeamContainer.tsx @@ -5,12 +5,12 @@ import { ADD_MEMBER_TO_SOLUTION } from "./operations/mutaions"; const ENTER_KEY = 13; -export type InputTextTagContainerProps = { +export type InputTextTeamContainerProps = { solution_id: string, setVisible: Function } -const InputTextTagContainer = ({ solution_id, setVisible }: InputTextTagContainerProps) => { +const InputTextTagContainer = ({ solution_id, setVisible }: InputTextTeamContainerProps) => { const [saveTemMeber] = useMutation(ADD_MEMBER_TO_SOLUTION); From 26fc9edbf2eb3070f7ebfcdaeb237f63dd7997a3 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 20:52:53 -0300 Subject: [PATCH 29/46] Fix variable name --- src/components/solution/InputTextTeamContainer.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/solution/InputTextTeamContainer.test.tsx b/src/components/solution/InputTextTeamContainer.test.tsx index 44536b6..50402da 100644 --- a/src/components/solution/InputTextTeamContainer.test.tsx +++ b/src/components/solution/InputTextTeamContainer.test.tsx @@ -1,12 +1,12 @@ import * as React from "react"; -import InputTextTeamContainer, { InputTextTagContainerProps } from "./InputTextTeamContainer"; +import InputTextTeamContainer, { InputTextTeamContainerProps } from "./InputTextTeamContainer"; import { fireEvent, render } from '@testing-library/react' import { MockedProvider } from '@apollo/client/testing'; describe("", () => { it("Component should render correctely", async () => { - const props: InputTextTagContainerProps = { + const props: InputTextTeamContainerProps = { solution_id: "2345", setVisible: jest.fn() } From fe2907650131a2559455d5f3cb084ee31febd7ea Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 22:19:42 -0300 Subject: [PATCH 30/46] Fix typescript errors --- package.json | 1 + src/Copyright.tsx | 16 -- src/Link.ts | 63 ------ src/ProTip.ts | 35 ---- src/components/Canvas/CreateItemContainer.tsx | 6 +- src/components/Canvas/index.tsx | 195 +++++++++++------- src/components/Login/LoginContainer.tsx | 37 ++-- src/components/Login/index.tsx | 27 ++- src/components/solution/BigPicture.tsx | 50 +++-- src/components/solution/MainTabs.test.tsx | 26 +++ src/components/solution/MainTabs.tsx | 17 +- .../solution/Upload/UploadButton.tsx | 15 +- .../solution/Upload/UploadButtonContainer.tsx | 41 ++-- src/configureStore.ts | 4 +- src/lib/apolloClient.ts | 8 +- src/reducers/userReducer.ts | 2 +- yarn.lock | 50 ++++- 17 files changed, 315 insertions(+), 278 deletions(-) delete mode 100644 src/Copyright.tsx delete mode 100644 src/Link.ts delete mode 100644 src/ProTip.ts create mode 100644 src/components/solution/MainTabs.test.tsx diff --git a/package.json b/package.json index 6bdb01c..8b70127 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@apollo/client": "^3.3.6", "@material-ui/core": "latest", "@material-ui/icons": "^4.11.2", + "@types/apollo-upload-client": "^14.1.0", "apollo-upload-client": "^14.1.3", "axios": "^0.21.1", "clsx": "latest", diff --git a/src/Copyright.tsx b/src/Copyright.tsx deleted file mode 100644 index 5d4e8f3..0000000 --- a/src/Copyright.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import Typography from '@material-ui/core/Typography'; -import MuiLink from '@material-ui/core/Link'; - -export default function Copyright() { - return ( - - {'Copyright © '} - - Your Website - {' '} - {new Date().getFullYear()} - {'.'} - - ); -} diff --git a/src/Link.ts b/src/Link.ts deleted file mode 100644 index f51c9c7..0000000 --- a/src/Link.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* eslint-disable jsx-a11y/anchor-has-content */ -import React from 'react'; -import PropTypes from 'prop-types'; -import clsx from 'clsx'; -import { useRouter } from 'next/router'; -import NextLink from 'next/link'; -import MuiLink from '@material-ui/core/Link'; - -const NextComposed = React.forwardRef(function NextComposed(props, ref) { - const { as, href, ...other } = props; - - return ( - - - - ); -}); - -NextComposed.propTypes = { - as: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), - href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), - prefetch: PropTypes.bool, -}; - -// A styled version of the Next.js Link component: -// https://nextjs.org/docs/#with-link -function Link(props) { - const { - href, - activeClassName = 'active', - className: classNameProps, - innerRef, - naked, - ...other - } = props; - - const router = useRouter(); - const pathname = typeof href === 'string' ? href : href.pathname; - const className = clsx(classNameProps, { - [activeClassName]: router.pathname === pathname && activeClassName, - }); - - if (naked) { - return ; - } - - return ( - - ); -} - -Link.propTypes = { - activeClassName: PropTypes.string, - as: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), - className: PropTypes.string, - href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), - innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), - naked: PropTypes.bool, - onClick: PropTypes.func, - prefetch: PropTypes.bool, -}; - -export default React.forwardRef((props, ref) => ); diff --git a/src/ProTip.ts b/src/ProTip.ts deleted file mode 100644 index b541be4..0000000 --- a/src/ProTip.ts +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; -import Link from '@material-ui/core/Link'; -import SvgIcon from '@material-ui/core/SvgIcon'; -import Typography from '@material-ui/core/Typography'; - -function LightBulbIcon(props) { - return ( - - - - ); -} - -const useStyles = makeStyles((theme) => ({ - root: { - margin: theme.spacing(6, 0, 3), - }, - lightBulb: { - verticalAlign: 'middle', - marginRight: theme.spacing(1), - }, -})); - -export default function ProTip() { - const classes = useStyles(); - return ( - - - Pro tip: See more{' '} - templates on the - Material-UI documentation. - - ); -} diff --git a/src/components/Canvas/CreateItemContainer.tsx b/src/components/Canvas/CreateItemContainer.tsx index b724be7..93ddac7 100644 --- a/src/components/Canvas/CreateItemContainer.tsx +++ b/src/components/Canvas/CreateItemContainer.tsx @@ -15,11 +15,11 @@ const CreateItemContainer = ({ canvas_id, setVisible, item }: CreateItemContaine const [addItemCanvas] = useMutation(CREATE_ITEM_CANVAS); - const onKeyUp = ({ keyCode, target }) => { + const onKeyUp = ({ keyCode, target }: KeyboardEvent) => { if (keyCode == ENTER_KEY) { addItemCanvas( { - variables: { canvas_id, value: target.value, item }, + variables: { canvas_id, value: (target as HTMLInputElement).value, item }, update: (cache, { data: { createItemCanvas } }) => { cache.modify({ fields: { @@ -29,7 +29,7 @@ const CreateItemContainer = ({ canvas_id, setVisible, item }: CreateItemContaine } }); - target.value = ''; + (target as HTMLInputElement).value = ''; setVisible(false); } } diff --git a/src/components/Canvas/index.tsx b/src/components/Canvas/index.tsx index 60a429e..aac71db 100644 --- a/src/components/Canvas/index.tsx +++ b/src/components/Canvas/index.tsx @@ -1,27 +1,26 @@ import React, { useState } from 'react'; import { Button, Grid, makeStyles, Paper, Typography } from '@material-ui/core'; import purple from '@material-ui/core/colors/purple'; -import PropTypes from "prop-types" import CreateItemContainer from "./CreateItemContainer" import AddIcon from '@material-ui/icons/Add'; -const useStyles = makeStyles(theme => ({ +const useStyles = makeStyles(() => ({ column: { height: 600 }, - mainAdvantages:{ + mainAdvantages: { height: 150, }, - mainDificulties:{ + mainDificulties: { height: 150, - }, + }, fullRetangle: { height: '100%', }, halfRetangle: { height: '50%', }, - titles:{ + titles: { padding: 5 }, button: { @@ -37,7 +36,7 @@ const useStylesPostIt = makeStyles({ } }); -const PostIt = ({description}) => { +const PostIt = ({ description }: { description: string }) => { const classes = useStylesPostIt(); return ( @@ -46,16 +45,24 @@ const PostIt = ({description}) => {
); } + +export type SegmentProps = { + name: string, + items: string[], + canvas_id: string, + propName: string +} + // Dependencies -const Segment = ({name, items, canvas_id, propName}) => { +const Segment = ({ name, items, canvas_id, propName }: SegmentProps) => { const classes = useStyles(); const [addItemVisible, setAddItemVisible] = useState(false); - - return( + + return ( <> - + {name} - - {addItemVisible ? : null} + {addItemVisible ? : null} {items.map(item => )} ) } -const canvas = ({canvas}) => { - + +export type CanvasProp = { + canvas_id: string, + dependencies: Array, + technology: Array, + patterns: Array, + problem: Array, + func_requirement: Array, + non_func_requirement: Array, + context: Array, + difficulties: Array, + advantages: Array +}; + +const canvas = ({ canvas }: { canvas: CanvasProp }) => { + const { dependencies, technology, patterns, - problem, - func_requirement, - non_func_requirement, - context, - difficulties, + problem, + func_requirement, + non_func_requirement, + context, + difficulties, advantages } = canvas const classes = useStyles(); - - return ( - <> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + return ( + <> + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + - - - - - - - - - + + + - - ) -} - -canvas.propTypes = { - canvas: PropTypes.object.isRequired + + + + + + + + ) } export default canvas; \ No newline at end of file diff --git a/src/components/Login/LoginContainer.tsx b/src/components/Login/LoginContainer.tsx index f6bb7dd..63a237f 100644 --- a/src/components/Login/LoginContainer.tsx +++ b/src/components/Login/LoginContainer.tsx @@ -1,6 +1,6 @@ import React from "react"; import FormLogin from "./index"; -import {LOGIN} from "./operations/mutations" +import { LOGIN } from "./operations/mutations" import { useMutation } from '@apollo/client'; import { useRouter } from 'next/router' @@ -9,21 +9,28 @@ const FormLoginContainer = () => { const [login] = useMutation(LOGIN); const router = useRouter() - const onLogin = (email, password, setShowPreloader, setMessage)=> { - - login( - {variables:{ username: email, password }, - update: (cache, {data:{login}}) => { - const {accessToken} = login; - - if(accessToken !== null){ - localStorage.setItem("token", accessToken); - router.push('/') - }else{ - setShowPreloader(false); - setMessage("Email or password invalid"); - } + const onLogin = ( + email: string, + password: string, + setShowPreloader: Function, + setMessage: Function + ) => { + + login( + { + variables: { username: email, password }, + // @ts-ignore + update: (cache, { data: { login } }) => { + const { accessToken } = login; + + if (accessToken !== null) { + localStorage.setItem("token", accessToken); + router.push('/') + } else { + setShowPreloader(false); + setMessage("Email or password invalid"); } + } }); } diff --git a/src/components/Login/index.tsx b/src/components/Login/index.tsx index c1fa2ce..1bc1d52 100644 --- a/src/components/Login/index.tsx +++ b/src/components/Login/index.tsx @@ -1,4 +1,4 @@ -import React, {useState, useRef, useEffect} from "react"; +import React, {useState, useRef, useEffect, KeyboardEvent} from "react"; import Grid from "@material-ui/core/Grid"; import Paper from "@material-ui/core/Paper"; import Typography from "@material-ui/core/Typography"; @@ -8,12 +8,12 @@ import LockIcon from "@material-ui/icons/Https"; import EmailIcon from "@material-ui/icons/Email"; import Check from "@material-ui/icons/Check"; import Button from "@material-ui/core/Button"; -import { makeStyles } from '@material-ui/styles'; +import { makeStyles } from '@material-ui/styles'; import CircularProgress from "@material-ui/core/CircularProgress"; import green from "@material-ui/core/colors/green"; -import PropTypes from "prop-types" +import { Theme } from "@material-ui/core"; -const styles = makeStyles((theme) => ({ +const styles = makeStyles((theme: Theme) => ({ root: { flexGrow: 1 }, @@ -63,7 +63,11 @@ const styles = makeStyles((theme) => ({ } })); -const Login = ({onLogin}) => { +export type LoginProps = { + onLogin: Function +} + +const Login = ({onLogin}: LoginProps) => { const classes = styles() @@ -71,7 +75,7 @@ const Login = ({onLogin}) => { const [password, setpassword] = useState(""); const [emailFieldEmpty, setemailFieldEmpty] = useState(false); const [passwordFieldEmpty, setpasswordFieldEmpty] = useState(false); - const _inputEmail = useRef(null); + const _inputEmail = useRef(null); const [showPreloader, setShowPreloader] = useState(false) const [message, setMessage] = useState(""); @@ -93,22 +97,21 @@ const Login = ({onLogin}) => { onLogin(email, password, setShowPreloader, setMessage); } - const _onClickEnter = (event) => { + const _onClickEnter = (event : KeyboardEvent) => { if (event.key == "Enter") { _onLogin(); } } useEffect(() => { - _inputEmail.current.focus() + _inputEmail?.current?.focus() },[]) return ( - + @@ -259,8 +262,4 @@ const Login = ({onLogin}) => { } -Login.propTypes = { - onLogin : PropTypes.func.isRequired -} - export default Login; \ No newline at end of file diff --git a/src/components/solution/BigPicture.tsx b/src/components/solution/BigPicture.tsx index 5500bff..51b6eaf 100644 --- a/src/components/solution/BigPicture.tsx +++ b/src/components/solution/BigPicture.tsx @@ -2,34 +2,40 @@ import React from 'react'; import Card from '@material-ui/core/Card'; import CardContent from '@material-ui/core/CardContent'; import Typography from '@material-ui/core/Typography'; -import PropTypes from 'prop-types'; import UploadButtonContainer from "./Upload/UploadButtonContainer" -const Image = ({image}) => +const Image = ({ image }: { image: string }) => -const NoImageComponent = ({solution}) => ( - <> - - This soloution does not have a big picture diagram yet. +const NoImageComponent = ({ solution }: { solution: Solution }) => ( + <> + + This soloution does not have a big picture diagram yet. - - - ) - -const BigPicture = ({solution}) => - ( - - - {solution.big_picture !== null && solution.big_picture != "" - ? - : } - - - ); + + +) +export type Solution = { + solution_id: string, + name: string, + description: string, + year_month: string, + big_picture: string +} -BigPicture.propTypes = { - solution: PropTypes.object.isRequired +export type BigPictureProps = { + solution: Solution } +const BigPicture = ({ solution }: BigPictureProps) => +( + + + {solution.big_picture !== null && solution.big_picture != "" + ? + : } + + +); + export default BigPicture; \ No newline at end of file diff --git a/src/components/solution/MainTabs.test.tsx b/src/components/solution/MainTabs.test.tsx new file mode 100644 index 0000000..c4ac89c --- /dev/null +++ b/src/components/solution/MainTabs.test.tsx @@ -0,0 +1,26 @@ +import * as React from "react"; +import MainTabs, { MainTabsProps } from "./MainTabs"; +import { render } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + + const props: MainTabsProps = { + solution: { + big_picture: "image", + description: "description", + solution_id: "1234", + name: "name", + year_month: "2021/12" + }, + canvas: {} + } + + const {getByText} = render(); + + expect(getByText('Big Picture')).toBeInTheDocument; + expect(getByText('Architecture canvas')).toBeInTheDocument; + expect(getByText('Other Diagrams')).toBeInTheDocument; + expect(getByText('References')).toBeInTheDocument; + }); +}); diff --git a/src/components/solution/MainTabs.tsx b/src/components/solution/MainTabs.tsx index c79218d..210c2d1 100644 --- a/src/components/solution/MainTabs.tsx +++ b/src/components/solution/MainTabs.tsx @@ -4,7 +4,7 @@ import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; -import Canvas from '../Canvas' +import Canvas, {CanvasProp} from '../Canvas' import BigPicture from "./BigPicture" import Reference from "./Reference"; import ReferenceLinks from "./Reference/Links"; @@ -42,14 +42,23 @@ function a11yProps(index: number) { }; } +export type Solution = { + solution_id: string, + name: string, + description: string, + year_month: string, + big_picture: string +} + export type MainTabsProps = { - solution: object, - canvas: object + solution: Solution, + canvas: CanvasProp } export default function MainTabs({solution, canvas}: MainTabsProps) { const [value, setValue] = React.useState(0); - + + // @ts-ignore const handleChange = (event: ChangeEvent<{}>, newValue: any) => { setValue(newValue); }; diff --git a/src/components/solution/Upload/UploadButton.tsx b/src/components/solution/Upload/UploadButton.tsx index dedab2f..054c4a4 100644 --- a/src/components/solution/Upload/UploadButton.tsx +++ b/src/components/solution/Upload/UploadButton.tsx @@ -1,9 +1,8 @@ -import React from 'react'; +import React, { ChangeEvent } from 'react'; import Button from '@material-ui/core/Button'; import { makeStyles } from '@material-ui/core'; -import PropTypes from "prop-types"; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(() => ({ button: { display: "none" }, @@ -12,7 +11,11 @@ const useStyles = makeStyles((theme) => ({ } })); -export default function UploadButton({onChange}) { +export type UploadButtonProps = { + onChange: (event: ChangeEvent) => void +} + +export default function UploadButton({onChange}: UploadButtonProps) { const classes = useStyles(); return ( @@ -32,8 +35,4 @@ export default function UploadButton({onChange}) {
); -} - -UploadButton.prototype = { - onChange: PropTypes.func.isRequired } \ No newline at end of file diff --git a/src/components/solution/Upload/UploadButtonContainer.tsx b/src/components/solution/Upload/UploadButtonContainer.tsx index 318ad2c..876561e 100644 --- a/src/components/solution/Upload/UploadButtonContainer.tsx +++ b/src/components/solution/Upload/UploadButtonContainer.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from "prop-types"; import { gql, useMutation } from '@apollo/client'; import UploadButton from "./UploadButton" @@ -17,33 +16,37 @@ const SINGLE_UPLOAD = gql` } `; -export default function UploadButtonContainer({solution}) { - const [mutate, { loading, error, data }] = useMutation(SINGLE_UPLOAD); +export type Solution = { + solution_id: string, + name: string, + description: string, + year_month: string, + big_picture: string +} + +export default function UploadButtonContainer({ solution }: { solution: Solution }) { + const [mutate, { loading, error }] = useMutation(SINGLE_UPLOAD); const onChange = ({ target: { validity, files: [file] } - }) => validity.valid - && mutate({ - variables: { file, solution_id: solution.solution_id }, - update: (cache, {data: {singleFileUpload}}) => { - cache.modify({ - fields: { - solutionById: (existingTodos) => ({...existingTodos, big_picture: singleFileUpload.url}) - } - }) - } - }); + } : any) => validity.valid + && mutate({ + variables: { file, solution_id: solution.solution_id }, + update: (cache, { data: { singleFileUpload } }) => { + cache.modify({ + fields: { + solutionById: (existingTodos) => ({ ...existingTodos, big_picture: singleFileUpload.url }) + } + }) + } + }); if (loading) return
Loading...
; if (error) return
{JSON.stringify(error, null, 2)}
; return ( - + ); -} - -UploadButtonContainer.prototype = { - solution: PropTypes.object.isRequired, } \ No newline at end of file diff --git a/src/configureStore.ts b/src/configureStore.ts index 1dcaaeb..13833f3 100644 --- a/src/configureStore.ts +++ b/src/configureStore.ts @@ -1,4 +1,4 @@ -import { createStore, applyMiddleware, Store } from "redux"; +import { createStore, applyMiddleware } from "redux"; import reducer from "./reducers"; import thunk from "redux-thunk"; import { composeWithDevTools } from "redux-devtools-extension"; @@ -6,7 +6,7 @@ import { composeWithDevTools } from "redux-devtools-extension"; const configureStore = (server = false) => { const store = createStore( reducer, - server ? undefined : window .__PRELOADED_STATE__, + server ? undefined : (window as any).__PRELOADED_STATE__, composeWithDevTools(applyMiddleware(thunk)) ); diff --git a/src/lib/apolloClient.ts b/src/lib/apolloClient.ts index a12399d..251e391 100644 --- a/src/lib/apolloClient.ts +++ b/src/lib/apolloClient.ts @@ -3,7 +3,7 @@ import { ApolloClient, InMemoryCache } from "@apollo/client"; import { createUploadLink } from 'apollo-upload-client' import { setContext } from '@apollo/client/link/context'; - let apolloClient; + let apolloClient: any; const authLink = setContext((_, { headers }) => { const token = localStorage.getItem('token'); @@ -20,12 +20,12 @@ import { setContext } from '@apollo/client/link/context'; ssrMode: typeof window === "undefined", // set to true for SSR link: authLink.concat(createUploadLink({ uri: "http://localhost/graphql", - })), + }) as any), cache: new InMemoryCache(), }); } - export function initializeApollo(initialState = null) { + export function initializeApollo(initialState: any = null) { const _apolloClient = apolloClient ?? createApolloClient(); // If your page has Next.js data fetching methods that use Apollo Client, @@ -47,7 +47,7 @@ import { setContext } from '@apollo/client/link/context'; return _apolloClient; } - export function useApollo(initialState) { + export function useApollo(initialState: any) { const store = useMemo(() => initializeApollo(initialState), [initialState]); return store; } \ No newline at end of file diff --git a/src/reducers/userReducer.ts b/src/reducers/userReducer.ts index e04bf0b..2673447 100644 --- a/src/reducers/userReducer.ts +++ b/src/reducers/userReducer.ts @@ -7,7 +7,7 @@ const initialState = { user: {} }; -export default function userReducer(state = initialState, action) { +export default function userReducer(state = initialState, action: any) { switch (action.type) { case actionsType.CREATE_ACCOUNT_SEND: return { diff --git a/yarn.lock b/yarn.lock index d06f9ad..228e75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -53,6 +53,25 @@ dependencies: cross-fetch "3.0.6" +"@apollo/client@^3.1.3": + version "3.3.7" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.7.tgz#f15bf961dc0c2bee37a47bf86b8881fdc6183810" + integrity sha512-Cb0OqqvlehlRHtHIXRIS/Pe5WYU4hHl1FznXTRSxBAN42WmBUM3zy/Unvw183RdWMyV6Kc2pFKOEuaG1K7JTAQ== + dependencies: + "@graphql-typed-document-node/core" "^3.0.0" + "@types/zen-observable" "^0.8.0" + "@wry/context" "^0.5.2" + "@wry/equality" "^0.3.0" + fast-json-stable-stringify "^2.0.0" + graphql-tag "^2.11.0" + hoist-non-react-statics "^3.3.2" + optimism "^0.14.0" + prop-types "^15.7.2" + symbol-observable "^2.0.0" + ts-invariant "^0.6.0" + tslib "^1.10.0" + zen-observable "^0.8.14" + "@apollo/client@^3.2.5", "@apollo/client@^3.3.6": version "3.3.6" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.6.tgz#f359646308167f38d5bc498dfc2344c888400093" @@ -814,6 +833,15 @@ "@babel/runtime" "^7.12.5" "@testing-library/dom" "^7.28.1" +"@types/apollo-upload-client@^14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@types/apollo-upload-client/-/apollo-upload-client-14.1.0.tgz#21a57d7e3f29ff946ba51a53b3d7da46ddd21fbc" + integrity sha512-ZLvcEqu+l9qKGdrIpASt/A2WY1ghAC9L3qaoegkiBOccjxvQmWN9liZzVFiuHTuWseWpVbMklqbs/z+KEjll9Q== + dependencies: + "@apollo/client" "^3.1.3" + "@types/extract-files" "*" + graphql "^15.3.0" + "@types/aria-query@^4.2.0": version "4.2.1" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" @@ -891,6 +919,11 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/extract-files@*": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/extract-files/-/extract-files-8.1.0.tgz#4728440e1d92a6d1d11ac47f5a10e3f9ce47f044" + integrity sha512-ulxvlFU71yLVV3JxdBgryASAIp+aZQuQOpkhU1SznJlcWz0qsJCWHqdJqP6Lprs3blqGS5FH5GbBkU0977+Wew== + "@types/graceful-fs@^4.1.2": version "4.1.4" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" @@ -1256,6 +1289,13 @@ dependencies: tslib "^1.14.1" +"@wry/trie@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.2.1.tgz#4191e1d4a85dd77dfede383d65563138ed82fc47" + integrity sha512-sYkuXZqArky2MLQCv4tLW6hX3N8AfTZ5ZMBc8jC6Yy35WYr82UYLLtjS7k/uRGHOA0yTSjuNadG6QQ6a5CS5hQ== + dependencies: + tslib "^1.14.1" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -3260,7 +3300,7 @@ graphql-tag@^2.11.0: resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== -graphql@^15.4.0: +graphql@^15.3.0, graphql@^15.4.0: version "15.4.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347" integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA== @@ -5089,6 +5129,14 @@ optimism@^0.13.1: dependencies: "@wry/context" "^0.5.2" +optimism@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.14.0.tgz#256fb079a3428585b40a3a8462f907e0abd2fc49" + integrity sha512-ygbNt8n4DOCVpkwiLF+IrKKeNHOjtr9aXLWGP9HNJGoblSGsnVbJLstcH6/nE9Xy5ZQtlkSioFQNnthmENW6FQ== + dependencies: + "@wry/context" "^0.5.2" + "@wry/trie" "^0.2.1" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" From c043097720c189442d957c8be8272ee96e68bf3d Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Mon, 25 Jan 2021 22:27:40 -0300 Subject: [PATCH 31/46] Fix sintax --- src/components/solution/MainTabs.test.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/solution/MainTabs.test.tsx b/src/components/solution/MainTabs.test.tsx index c4ac89c..3636815 100644 --- a/src/components/solution/MainTabs.test.tsx +++ b/src/components/solution/MainTabs.test.tsx @@ -13,7 +13,18 @@ describe("", () => { name: "name", year_month: "2021/12" }, - canvas: {} + canvas: { + canvas_id: "12345", + dependencies:[], + technology:[], + patterns:[], + problem:[], + func_requirement:[], + non_func_requirement:[], + context:[], + difficulties:[], + advantages:[], + } } const {getByText} = render(); From e0225003d6370af53ccfafa8b9282085427bf991 Mon Sep 17 00:00:00 2001 From: Robisson Oliveira Date: Tue, 26 Jan 2021 09:51:47 -0300 Subject: [PATCH 32/46] Add tests --- .../solution/Upload/UploadButton.test.tsx | 25 +++++++++++++++ .../solution/Upload/UploadButton.tsx | 1 + .../Upload/UploadButtonContainer.test.tsx | 31 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 src/components/solution/Upload/UploadButton.test.tsx create mode 100644 src/components/solution/Upload/UploadButtonContainer.test.tsx diff --git a/src/components/solution/Upload/UploadButton.test.tsx b/src/components/solution/Upload/UploadButton.test.tsx new file mode 100644 index 0000000..662d2c0 --- /dev/null +++ b/src/components/solution/Upload/UploadButton.test.tsx @@ -0,0 +1,25 @@ +import * as React from "react"; +import UploadButton, { UploadButtonProps } from "./UploadButton"; +import { fireEvent, render } from '@testing-library/react' + +describe("", () => { + it("Component should render correctely", async () => { + const props: UploadButtonProps = { + onChange: jest.fn() + } + const { getByText } = render(); + + expect(getByText('Upload big picture')).toBeInTheDocument; + }); + + it("To change input file value shild be call onChange function", async () => { + const props: UploadButtonProps = { + onChange: jest.fn() + } + const { getByTestId } = render(); + + fireEvent.change(getByTestId('upload-image'), {value: "image.jpg"}); + + expect(props.onChange).toBeCalled(); + }); +}); diff --git a/src/components/solution/Upload/UploadButton.tsx b/src/components/solution/Upload/UploadButton.tsx index 054c4a4..5f8408f 100644 --- a/src/components/solution/Upload/UploadButton.tsx +++ b/src/components/solution/Upload/UploadButton.tsx @@ -22,6 +22,7 @@ export default function UploadButton({onChange}: UploadButtonProps) {