├── src ├── constants │ └── index.js ├── utils │ └── theme.js ├── actions │ └── index.js ├── store │ └── index.js └── reducers │ └── index.js ├── .editorconfig ├── .gitignore ├── package.json ├── pages ├── _document.js ├── _app.js └── index.js ├── README.md └── yarn.lock /src/constants/index.js: -------------------------------------------------------------------------------- 1 | export const INCREMENT = 'INCREMENT' 2 | export const DECREMENT = 'DECREMENT' 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = spaces 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | -------------------------------------------------------------------------------- /src/utils/theme.js: -------------------------------------------------------------------------------- 1 | import { createMuiTheme } from '@material-ui/core/styles' 2 | 3 | const theme = createMuiTheme({ 4 | palette: { 5 | // Customize Material-UI with your theme 6 | // See more here: https://material-ui.com/customization/themes/ 7 | } 8 | }) 9 | 10 | export default theme 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | .next 12 | 13 | # misc 14 | .DS_Store 15 | .env 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | .vscode/settings.json 25 | -------------------------------------------------------------------------------- /src/actions/index.js: -------------------------------------------------------------------------------- 1 | import { INCREMENT, DECREMENT } from '../constants' 2 | 3 | export const increment = (isServer) => { 4 | return dispatch => { 5 | dispatch({ 6 | type: INCREMENT, 7 | from: isServer ? 'server' : 'client' 8 | }) 9 | } 10 | } 11 | 12 | export const decrement = (isServer) => { 13 | return dispatch => { 14 | dispatch({ 15 | type: DECREMENT, 16 | from: isServer ? 'server' : 'client' 17 | }) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware, compose } from 'redux' 2 | import { composeWithDevTools } from 'redux-devtools-extension' 3 | import thunk from 'redux-thunk' 4 | import { createWrapper } from 'next-redux-wrapper' 5 | import { counter, initialState } from '../reducers' 6 | 7 | const makeStore = () => { 8 | const composeEnhancers = process.env.NODE_ENV !== 'production' ? composeWithDevTools : compose 9 | 10 | return createStore( 11 | counter, 12 | initialState, 13 | composeEnhancers(applyMiddleware(thunk)) 14 | ) 15 | } 16 | 17 | export default createWrapper(makeStore, {debug: true}) 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-redux-wrapper-and-material-ui", 3 | "version": "2.0.0", 4 | "dependencies": { 5 | "@material-ui/core": "latest", 6 | "@material-ui/icons": "latest", 7 | "next": "latest", 8 | "next-redux-wrapper": "latest", 9 | "react": "^16.8.0", 10 | "react-dom": "^16.8.0", 11 | "react-redux": "6.0.0", 12 | "redux": "4.0.1", 13 | "redux-thunk": "2.3.0", 14 | "@material-ui/styles": "latest" 15 | }, 16 | "scripts": { 17 | "dev": "next", 18 | "build": "next build", 19 | "start": "next start" 20 | }, 21 | "devDependencies": { 22 | "redux-devtools-extension": "2.13.7" 23 | }, 24 | "license": "ISC" 25 | } 26 | -------------------------------------------------------------------------------- /src/reducers/index.js: -------------------------------------------------------------------------------- 1 | import { INCREMENT, DECREMENT } from '../constants' 2 | import { HYDRATE } from 'next-redux-wrapper' 3 | 4 | export const initialState = { 5 | value: 0, 6 | action: null, 7 | from: null 8 | } 9 | 10 | export const counter = (state = initialState, action) => { 11 | switch (action.type) { 12 | case HYDRATE: 13 | return { 14 | ...state, 15 | ...action.payload 16 | } 17 | 18 | case INCREMENT: 19 | return { 20 | ...state, 21 | value: state.value + 1, 22 | action: 'increment', 23 | from: action.from 24 | } 25 | 26 | case DECREMENT: 27 | return { 28 | ...state, 29 | value: state.value - 1, 30 | action: 'decrement', 31 | from: action.from 32 | } 33 | 34 | default: 35 | return {...state} 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pages/_document.js: -------------------------------------------------------------------------------- 1 | import React, { Fragment } from 'react' 2 | import Document, { Head, Main, NextScript } from 'next/document' 3 | import { ServerStyleSheets } from '@material-ui/styles' 4 | import {Html} from "next/document"; 5 | 6 | class _Document extends Document { 7 | render () { 8 | return ( 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | ) 19 | } 20 | } 21 | 22 | _Document.getInitialProps = async ctx => { 23 | const sheets = new ServerStyleSheets() 24 | const originalRenderPage = ctx.renderPage 25 | 26 | ctx.renderPage = () => originalRenderPage({ 27 | enhanceApp: WrappedComponent => props => sheets.collect() 28 | }) 29 | 30 | const initialProps = await Document.getInitialProps(ctx) 31 | 32 | return { 33 | ...initialProps, 34 | styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()] 35 | } 36 | } 37 | 38 | export default _Document 39 | -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import App from 'next/app' 3 | import Head from 'next/head' 4 | import { MuiThemeProvider } from '@material-ui/core/styles' 5 | import CssBaseline from '@material-ui/core/CssBaseline' 6 | import wrapper from '../src/store' 7 | import theme from '../src/utils/theme' 8 | 9 | class _App extends App { 10 | static async getInitialProps ({ Component, ctx }) { 11 | return { 12 | pageProps: { 13 | ...(Component.getInitialProps ? await Component.getInitialProps(ctx) : {}), 14 | pathname: ctx.pathname, 15 | } 16 | } 17 | } 18 | 19 | componentDidMount () { 20 | const jssStyles = document.querySelector('#jss-server-side') 21 | if (jssStyles && jssStyles.parentNode) { 22 | jssStyles.parentNode.removeChild(jssStyles) 23 | } 24 | } 25 | 26 | render () { 27 | const { 28 | Component, 29 | pageProps, 30 | } = this.props 31 | 32 | return ( 33 | 34 | 35 | 36 | 37 | 38 | NextJS - With Redux and Material UI 39 | 40 | 41 | 42 | 43 | ) 44 | } 45 | } 46 | 47 | export default wrapper.withRedux(_App) 48 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import makeStyles from '@material-ui/styles/makeStyles' 3 | import Card from '@material-ui/core/Card' 4 | import CardActions from '@material-ui/core/CardActions' 5 | import CardContent from '@material-ui/core/CardContent' 6 | import Fab from '@material-ui/core/Fab' 7 | import AddIcon from '@material-ui/icons/Add' 8 | import RemoveIcon from '@material-ui/icons/Remove' 9 | import Typography from '@material-ui/core/Typography' 10 | import { connect } from 'react-redux' 11 | import { increment, decrement } from '../src/actions' 12 | import { bindActionCreators } from 'redux' 13 | import { INCREMENT } from '../src/constants' 14 | 15 | const useStyles = makeStyles({ 16 | container: { 17 | display: 'flex', 18 | flexWrap: 'wrap' 19 | }, 20 | title: { 21 | fontSize: 14 22 | } 23 | }) 24 | 25 | const Index = ({ 26 | value, 27 | from, 28 | action, 29 | actions: { 30 | increment, 31 | decrement 32 | } 33 | }) => { 34 | const classes = useStyles() 35 | 36 | return ( 37 | 38 | 39 | 44 | Dispatched from {from} 45 | 46 | 47 | {value} 48 | 49 | {action} 50 | 51 | 52 | increment()} 57 | > 58 | 59 | 60 | decrement()} 65 | > 66 | 67 | 68 | 69 | 70 | ) 71 | } 72 | 73 | Index.getInitialProps = ({ store }) => { 74 | store.dispatch({ 75 | type: INCREMENT, 76 | from: 'server' 77 | }) 78 | 79 | return {} 80 | } 81 | 82 | export default connect( 83 | state => state, 84 | dispatch => ({ actions: bindActionCreators({ increment, decrement }, dispatch) }) 85 | )(Index) 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NextJS with Redux and Material-UI example 2 | 3 | A boilerplate NextJS with Redux and Material UI 4 | 5 | ## Getting Started 6 | 7 | ### Installing 8 | 9 | Cloning the project. 10 | ``` 11 | git clone https://github.com/joaopaulomoraes/nextjs-with-redux-and-material-ui.git nextjs-with-redux-and-material-ui 12 | ``` 13 | 14 | Access the project directory. 15 | ``` 16 | cd nextjs-with-redux-and-material-ui 17 | ``` 18 | 19 | Install dependencies. 20 | ``` 21 | yarn install 22 | ``` 23 | 24 | Serve with hot reload at http://localhost:3000. 25 | ``` 26 | yarn dev 27 | ``` 28 | 29 | ## The idea behind the example 30 | 31 | In this example, we will display a counter that is initialized with a value of 0 and will be updated with each click. The first rendering is happening on the server, then the browser takes over. To illustrate this, the rendered counter will have a value of 1 when the app loads and a flag with the dispatch source will be displayed above the counter. From the next clicks that increment / decrement, the counter will receive its new value and the flag with the origin will be updated again with the origin of the dispatch. 32 | 33 | ![](https://i.imgur.com/6YQqLiL.gif) 34 | 35 | Our page is located in `pages/index.js`, so it will map the `/` route. To get the initial data for rendering, we are implementing the `getInitialProps` static method, initializing the redux storage and dispatching the increment action, passing the isServer parameter to identify that the dispatch source is coming from the server. As the component is packaged with `next-redux-wrapper`, the component is automatically connected to Redux and packaged with the reagent-redux Provider`, which allows us to access the redux state immediately and send the storage to the child components for that they access the state when necessary. 36 | 37 | For security, it is recommended to wrap all pages, whether they use Redux or not, so you do not worry about all the child components anymore. 38 | 39 | The `withRedux` function accepts` makeStore` as the first argument, all other arguments are passed internally to the `react-redux connect ()` function. The `makeStore` function will receive the initialState as an argument and should return a new instance of redux store every time it is called, no memoisation is required here. See the [full example] (https://github.com/kirill-konshin/next-redux-wrapper#usage) in the Next Redux Wrapper repository. And there's another package [https://github.com/huzidaha/next-connect-redux] available with similar features. 40 | 41 | To pass the initial state from the server to the client, we pass as a prop called `initialState`, so it is available when the client takes control. 42 | 43 | The trick here to support the universal redux is to separate the cases for the client and the server. When we are on the server, we want to create a new store every time, otherwise the data from the different users will be mixed. If we are on the customer, we always want to use the same store. This is what we do in `store.js` 44 | 45 | Again, the first render is happening in the server and instead of starting the count at 0, it will dispatch an action in redux that starts the count at 1. This continues to highlight how each navigation triggers a server render first and then a client render second, when you navigate between pages. 46 | 47 | --- 48 | 49 | ## License 50 | 51 | [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0/) 52 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.2.0", "@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": 6 | version "7.15.4" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" 8 | integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== 9 | dependencies: 10 | regenerator-runtime "^0.13.4" 11 | 12 | "@emotion/hash@^0.8.0": 13 | version "0.8.0" 14 | resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" 15 | integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== 16 | 17 | "@material-ui/core@latest": 18 | version "4.11.0" 19 | resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz#b69b26e4553c9e53f2bfaf1053e216a0af9be15a" 20 | integrity sha512-bYo9uIub8wGhZySHqLQ833zi4ZML+XCBE1XwJ8EuUVSpTWWG57Pm+YugQToJNFsEyiKFhPh8DPD0bgupz8n01g== 21 | dependencies: 22 | "@babel/runtime" "^7.4.4" 23 | "@material-ui/styles" "^4.10.0" 24 | "@material-ui/system" "^4.9.14" 25 | "@material-ui/types" "^5.1.0" 26 | "@material-ui/utils" "^4.10.2" 27 | "@types/react-transition-group" "^4.2.0" 28 | clsx "^1.0.4" 29 | hoist-non-react-statics "^3.3.2" 30 | popper.js "1.16.1-lts" 31 | prop-types "^15.7.2" 32 | react-is "^16.8.0" 33 | react-transition-group "^4.4.0" 34 | 35 | "@material-ui/icons@latest": 36 | version "4.9.1" 37 | resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.9.1.tgz#fdeadf8cb3d89208945b33dbc50c7c616d0bd665" 38 | integrity sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg== 39 | dependencies: 40 | "@babel/runtime" "^7.4.4" 41 | 42 | "@material-ui/styles@^4.10.0", "@material-ui/styles@latest": 43 | version "4.10.0" 44 | resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.10.0.tgz#2406dc23aa358217aa8cc772e6237bd7f0544071" 45 | integrity sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q== 46 | dependencies: 47 | "@babel/runtime" "^7.4.4" 48 | "@emotion/hash" "^0.8.0" 49 | "@material-ui/types" "^5.1.0" 50 | "@material-ui/utils" "^4.9.6" 51 | clsx "^1.0.4" 52 | csstype "^2.5.2" 53 | hoist-non-react-statics "^3.3.2" 54 | jss "^10.0.3" 55 | jss-plugin-camel-case "^10.0.3" 56 | jss-plugin-default-unit "^10.0.3" 57 | jss-plugin-global "^10.0.3" 58 | jss-plugin-nested "^10.0.3" 59 | jss-plugin-props-sort "^10.0.3" 60 | jss-plugin-rule-value-function "^10.0.3" 61 | jss-plugin-vendor-prefixer "^10.0.3" 62 | prop-types "^15.7.2" 63 | 64 | "@material-ui/system@^4.9.14": 65 | version "4.9.14" 66 | resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.9.14.tgz#4b00c48b569340cefb2036d0596b93ac6c587a5f" 67 | integrity sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w== 68 | dependencies: 69 | "@babel/runtime" "^7.4.4" 70 | "@material-ui/utils" "^4.9.6" 71 | csstype "^2.5.2" 72 | prop-types "^15.7.2" 73 | 74 | "@material-ui/types@^5.1.0": 75 | version "5.1.0" 76 | resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" 77 | integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== 78 | 79 | "@material-ui/utils@^4.10.2", "@material-ui/utils@^4.9.6": 80 | version "4.10.2" 81 | resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.10.2.tgz#3fd5470ca61b7341f1e0468ac8f29a70bf6df321" 82 | integrity sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw== 83 | dependencies: 84 | "@babel/runtime" "^7.4.4" 85 | prop-types "^15.7.2" 86 | react-is "^16.8.0" 87 | 88 | "@next/env@13.5.4": 89 | version "13.5.4" 90 | resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.4.tgz#777c3af16de2cf2f611b6c8126910062d13d222c" 91 | integrity sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ== 92 | 93 | "@next/swc-darwin-arm64@13.5.4": 94 | version "13.5.4" 95 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.4.tgz#241957774fef3f876dc714cfc0ca6f00f561737e" 96 | integrity sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w== 97 | 98 | "@next/swc-darwin-x64@13.5.4": 99 | version "13.5.4" 100 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz#fa11bb97bf06cd45cbd554354b46bf93e22c025b" 101 | integrity sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw== 102 | 103 | "@next/swc-linux-arm64-gnu@13.5.4": 104 | version "13.5.4" 105 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz#dd3a482cd6871ed23b049066a0f3c4c2f955dc88" 106 | integrity sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w== 107 | 108 | "@next/swc-linux-arm64-musl@13.5.4": 109 | version "13.5.4" 110 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz#ed6d7abaf5712cff2752ce5300d6bacc6aff1b18" 111 | integrity sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg== 112 | 113 | "@next/swc-linux-x64-gnu@13.5.4": 114 | version "13.5.4" 115 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz#977a040388e8a685a3a85e0dbdff90a4ee2a7189" 116 | integrity sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg== 117 | 118 | "@next/swc-linux-x64-musl@13.5.4": 119 | version "13.5.4" 120 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz#3e29a0ad8efc016196c3a120da04397eea328b2a" 121 | integrity sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg== 122 | 123 | "@next/swc-win32-arm64-msvc@13.5.4": 124 | version "13.5.4" 125 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz#18a236c3fe5a48d24b56d939e6a05488bb682b7e" 126 | integrity sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w== 127 | 128 | "@next/swc-win32-ia32-msvc@13.5.4": 129 | version "13.5.4" 130 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz#255132243ab6fb20d3c7c92a585e2c4fa50368fe" 131 | integrity sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw== 132 | 133 | "@next/swc-win32-x64-msvc@13.5.4": 134 | version "13.5.4" 135 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz#cc542907b55247c5634d9a8298e1c143a1847e25" 136 | integrity sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg== 137 | 138 | "@swc/helpers@0.5.2": 139 | version "0.5.2" 140 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" 141 | integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== 142 | dependencies: 143 | tslib "^2.4.0" 144 | 145 | "@types/prop-types@*": 146 | version "15.7.3" 147 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" 148 | integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== 149 | 150 | "@types/react-transition-group@^4.2.0": 151 | version "4.4.0" 152 | resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" 153 | integrity sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w== 154 | dependencies: 155 | "@types/react" "*" 156 | 157 | "@types/react@*": 158 | version "16.9.55" 159 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz#47078587f5bfe028a23b6b46c7b94ac0d436acff" 160 | integrity sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg== 161 | dependencies: 162 | "@types/prop-types" "*" 163 | csstype "^3.0.2" 164 | 165 | busboy@1.6.0: 166 | version "1.6.0" 167 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" 168 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 169 | dependencies: 170 | streamsearch "^1.1.0" 171 | 172 | caniuse-lite@^1.0.30001406: 173 | version "1.0.30001546" 174 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz#10fdad03436cfe3cc632d3af7a99a0fb497407f0" 175 | integrity sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw== 176 | 177 | client-only@0.0.1: 178 | version "0.0.1" 179 | resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" 180 | integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== 181 | 182 | clsx@^1.0.4: 183 | version "1.1.1" 184 | resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" 185 | integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== 186 | 187 | css-vendor@^2.0.8: 188 | version "2.0.8" 189 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" 190 | integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== 191 | dependencies: 192 | "@babel/runtime" "^7.8.3" 193 | is-in-browser "^1.0.2" 194 | 195 | csstype@^2.5.2: 196 | version "2.6.13" 197 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" 198 | integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== 199 | 200 | csstype@^3.0.2: 201 | version "3.0.4" 202 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" 203 | integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== 204 | 205 | dom-helpers@^5.0.1: 206 | version "5.2.0" 207 | resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" 208 | integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== 209 | dependencies: 210 | "@babel/runtime" "^7.8.7" 211 | csstype "^3.0.2" 212 | 213 | glob-to-regexp@^0.4.1: 214 | version "0.4.1" 215 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 216 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 217 | 218 | graceful-fs@^4.1.2: 219 | version "4.2.11" 220 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 221 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 222 | 223 | hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.2: 224 | version "3.3.2" 225 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" 226 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== 227 | dependencies: 228 | react-is "^16.7.0" 229 | 230 | hyphenate-style-name@^1.0.3: 231 | version "1.0.4" 232 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" 233 | integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== 234 | 235 | invariant@^2.2.4: 236 | version "2.2.4" 237 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 238 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 239 | dependencies: 240 | loose-envify "^1.0.0" 241 | 242 | is-in-browser@^1.0.2, is-in-browser@^1.1.3: 243 | version "1.1.3" 244 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" 245 | integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= 246 | 247 | "js-tokens@^3.0.0 || ^4.0.0": 248 | version "4.0.0" 249 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 250 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 251 | 252 | jss-plugin-camel-case@^10.0.3: 253 | version "10.4.0" 254 | resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz#46c75ff7fd61c304984c21af5817823f0f501ceb" 255 | integrity sha512-9oDjsQ/AgdBbMyRjc06Kl3P8lDCSEts2vYZiPZfGAxbGCegqE4RnMob3mDaBby5H9vL9gWmyyImhLRWqIkRUCw== 256 | dependencies: 257 | "@babel/runtime" "^7.3.1" 258 | hyphenate-style-name "^1.0.3" 259 | jss "10.4.0" 260 | 261 | jss-plugin-default-unit@^10.0.3: 262 | version "10.4.0" 263 | resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz#2b10f01269eaea7f36f0f5fd1cfbfcc76ed42854" 264 | integrity sha512-BYJ+Y3RUYiMEgmlcYMLqwbA49DcSWsGgHpVmEEllTC8MK5iJ7++pT9TnKkKBnNZZxTV75ycyFCR5xeLSOzVm4A== 265 | dependencies: 266 | "@babel/runtime" "^7.3.1" 267 | jss "10.4.0" 268 | 269 | jss-plugin-global@^10.0.3: 270 | version "10.4.0" 271 | resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz#19449425a94e4e74e113139b629fd44d3577f97d" 272 | integrity sha512-b8IHMJUmv29cidt3nI4bUI1+Mo5RZE37kqthaFpmxf5K7r2aAegGliAw4hXvA70ca6ckAoXMUl4SN/zxiRcRag== 273 | dependencies: 274 | "@babel/runtime" "^7.3.1" 275 | jss "10.4.0" 276 | 277 | jss-plugin-nested@^10.0.3: 278 | version "10.4.0" 279 | resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz#017d0c02c0b6b454fd9d7d3fc33470a15eea9fd1" 280 | integrity sha512-cKgpeHIxAP0ygeWh+drpLbrxFiak6zzJ2toVRi/NmHbpkNaLjTLgePmOz5+67ln3qzJiPdXXJB1tbOyYKAP4Pw== 281 | dependencies: 282 | "@babel/runtime" "^7.3.1" 283 | jss "10.4.0" 284 | tiny-warning "^1.0.2" 285 | 286 | jss-plugin-props-sort@^10.0.3: 287 | version "10.4.0" 288 | resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz#7110bf0b6049cc2080b220b506532bf0b70c0e07" 289 | integrity sha512-j/t0R40/2fp+Nzt6GgHeUFnHVY2kPGF5drUVlgkcwYoHCgtBDOhTTsOfdaQFW6sHWfoQYgnGV4CXdjlPiRrzwA== 290 | dependencies: 291 | "@babel/runtime" "^7.3.1" 292 | jss "10.4.0" 293 | 294 | jss-plugin-rule-value-function@^10.0.3: 295 | version "10.4.0" 296 | resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz#7cff4a91e84973536fa49b6ebbdbf7f339b01c82" 297 | integrity sha512-w8504Cdfu66+0SJoLkr6GUQlEb8keHg8ymtJXdVHWh0YvFxDG2l/nS93SI5Gfx0fV29dO6yUugXnKzDFJxrdFQ== 298 | dependencies: 299 | "@babel/runtime" "^7.3.1" 300 | jss "10.4.0" 301 | tiny-warning "^1.0.2" 302 | 303 | jss-plugin-vendor-prefixer@^10.0.3: 304 | version "10.4.0" 305 | resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz#2a78f3c5d57d1e024fe7ad7c41de34d04e72ecc0" 306 | integrity sha512-DpF+/a+GU8hMh/948sBGnKSNfKkoHg2p9aRFUmyoyxgKjOeH9n74Ht3Yt8lOgdZsuWNJbPrvaa3U4PXKwxVpTQ== 307 | dependencies: 308 | "@babel/runtime" "^7.3.1" 309 | css-vendor "^2.0.8" 310 | jss "10.4.0" 311 | 312 | jss@10.4.0, jss@^10.0.3: 313 | version "10.4.0" 314 | resolved "https://registry.yarnpkg.com/jss/-/jss-10.4.0.tgz#473a6fbe42e85441020a07e9519dac1e8a2e79ca" 315 | integrity sha512-l7EwdwhsDishXzqTc3lbsbyZ83tlUl5L/Hb16pHCvZliA9lRDdNBZmHzeJHP0sxqD0t1mrMmMR8XroR12JBYzw== 316 | dependencies: 317 | "@babel/runtime" "^7.3.1" 318 | csstype "^3.0.2" 319 | is-in-browser "^1.1.3" 320 | tiny-warning "^1.0.2" 321 | 322 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: 323 | version "1.4.0" 324 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 325 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 326 | dependencies: 327 | js-tokens "^3.0.0 || ^4.0.0" 328 | 329 | nanoid@^3.3.6: 330 | version "3.3.6" 331 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" 332 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== 333 | 334 | next-redux-wrapper@latest: 335 | version "6.0.2" 336 | resolved "https://registry.yarnpkg.com/next-redux-wrapper/-/next-redux-wrapper-6.0.2.tgz#b8dcd214e7b5cedd7a2a611ddb60422384d24374" 337 | integrity sha512-I9CnIYhQwI/qEoNdc9VAPjIyuq4rFFhCTa4rKhoDHWEVHGB1DXZy8TAyGpwvWizESd8IoTI/OKlP6bFpCbXsOw== 338 | 339 | next@latest: 340 | version "13.5.4" 341 | resolved "https://registry.yarnpkg.com/next/-/next-13.5.4.tgz#7e6a93c9c2b9a2c78bf6906a6c5cc73ae02d5b4d" 342 | integrity sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA== 343 | dependencies: 344 | "@next/env" "13.5.4" 345 | "@swc/helpers" "0.5.2" 346 | busboy "1.6.0" 347 | caniuse-lite "^1.0.30001406" 348 | postcss "8.4.31" 349 | styled-jsx "5.1.1" 350 | watchpack "2.4.0" 351 | optionalDependencies: 352 | "@next/swc-darwin-arm64" "13.5.4" 353 | "@next/swc-darwin-x64" "13.5.4" 354 | "@next/swc-linux-arm64-gnu" "13.5.4" 355 | "@next/swc-linux-arm64-musl" "13.5.4" 356 | "@next/swc-linux-x64-gnu" "13.5.4" 357 | "@next/swc-linux-x64-musl" "13.5.4" 358 | "@next/swc-win32-arm64-msvc" "13.5.4" 359 | "@next/swc-win32-ia32-msvc" "13.5.4" 360 | "@next/swc-win32-x64-msvc" "13.5.4" 361 | 362 | object-assign@^4.1.1: 363 | version "4.1.1" 364 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 365 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 366 | 367 | picocolors@^1.0.0: 368 | version "1.0.0" 369 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 370 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 371 | 372 | popper.js@1.16.1-lts: 373 | version "1.16.1-lts" 374 | resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" 375 | integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== 376 | 377 | postcss@8.4.31: 378 | version "8.4.31" 379 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" 380 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== 381 | dependencies: 382 | nanoid "^3.3.6" 383 | picocolors "^1.0.0" 384 | source-map-js "^1.0.2" 385 | 386 | prop-types@^15.6.2, prop-types@^15.7.2: 387 | version "15.7.2" 388 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 389 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 390 | dependencies: 391 | loose-envify "^1.4.0" 392 | object-assign "^4.1.1" 393 | react-is "^16.8.1" 394 | 395 | react-dom@^16.8.0: 396 | version "16.14.0" 397 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" 398 | integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== 399 | dependencies: 400 | loose-envify "^1.1.0" 401 | object-assign "^4.1.1" 402 | prop-types "^15.6.2" 403 | scheduler "^0.19.1" 404 | 405 | react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1: 406 | version "16.13.1" 407 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 408 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 409 | 410 | react-redux@6.0.0: 411 | version "6.0.0" 412 | resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef" 413 | integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ== 414 | dependencies: 415 | "@babel/runtime" "^7.2.0" 416 | hoist-non-react-statics "^3.2.1" 417 | invariant "^2.2.4" 418 | loose-envify "^1.4.0" 419 | prop-types "^15.6.2" 420 | react-is "^16.6.3" 421 | 422 | react-transition-group@^4.4.0: 423 | version "4.4.1" 424 | resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" 425 | integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== 426 | dependencies: 427 | "@babel/runtime" "^7.5.5" 428 | dom-helpers "^5.0.1" 429 | loose-envify "^1.4.0" 430 | prop-types "^15.6.2" 431 | 432 | react@^16.8.0: 433 | version "16.14.0" 434 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 435 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 436 | dependencies: 437 | loose-envify "^1.1.0" 438 | object-assign "^4.1.1" 439 | prop-types "^15.6.2" 440 | 441 | redux-devtools-extension@2.13.7: 442 | version "2.13.7" 443 | resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.7.tgz#14bd7a1a7c8bee7f397beb1116fd16fc9633b752" 444 | integrity sha512-F2GlWMWxCTJGRjJ+GSZcGDcVAj6Pbf77FKb4C9S8eni5Eah6UBGNwxNj8K1MTtmItdZH1Wx+EvIifHN2KKcQrw== 445 | 446 | redux-thunk@2.3.0: 447 | version "2.3.0" 448 | resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" 449 | integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== 450 | 451 | redux@4.0.1: 452 | version "4.0.1" 453 | resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" 454 | integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== 455 | dependencies: 456 | loose-envify "^1.4.0" 457 | symbol-observable "^1.2.0" 458 | 459 | regenerator-runtime@^0.13.4: 460 | version "0.13.7" 461 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 462 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 463 | 464 | scheduler@^0.19.1: 465 | version "0.19.1" 466 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" 467 | integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== 468 | dependencies: 469 | loose-envify "^1.1.0" 470 | object-assign "^4.1.1" 471 | 472 | source-map-js@^1.0.2: 473 | version "1.0.2" 474 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 475 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 476 | 477 | streamsearch@^1.1.0: 478 | version "1.1.0" 479 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" 480 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 481 | 482 | styled-jsx@5.1.1: 483 | version "5.1.1" 484 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" 485 | integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== 486 | dependencies: 487 | client-only "0.0.1" 488 | 489 | symbol-observable@^1.2.0: 490 | version "1.2.0" 491 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 492 | integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== 493 | 494 | tiny-warning@^1.0.2: 495 | version "1.0.3" 496 | resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" 497 | integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== 498 | 499 | tslib@^2.4.0: 500 | version "2.6.2" 501 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 502 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 503 | 504 | watchpack@2.4.0: 505 | version "2.4.0" 506 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" 507 | integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== 508 | dependencies: 509 | glob-to-regexp "^0.4.1" 510 | graceful-fs "^4.1.2" 511 | --------------------------------------------------------------------------------