From d261750c9dd30d800e197b72223b1496abd63ebf Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 12:40:47 -0400 Subject: [PATCH 01/14] wip: Add visual studio .vs/ to gitignore. Add vscode patterns to gitignore --- .gitignore | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6a8271a..a27f983 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,21 @@ dist-ssr _* **/worker/* -pnpm-lock.yaml \ No newline at end of file +pnpm-lock.yaml + +# Visual Studio cache/options directory +.vs/ + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix \ No newline at end of file From 4ccc2c421d3985c58a1becf25861e483ede5784e Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 12:42:49 -0400 Subject: [PATCH 02/14] wip: set react peer dependencies to 17 and 18 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 82b16e2..2b19f40 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,8 @@ "@vitejs/plugin-react": "^3.0.0", "@vitejs/plugin-vue": "^4.0.0", "@vueuse/head": "0.x", - "react": "^17", - "react-dom": "^17", + "react": "^17 || ^18", + "react-dom": "^17 || ^18", "react-helmet-async": "^1.0.0", "react-router-dom": "^6", "vite": "^4.0.0", From 02af4fe44afb98fee7a733684f02e034c68699a4 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 12:44:44 -0400 Subject: [PATCH 03/14] wip: update react types --- package.json | 4 ++-- yarn.lock | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2b19f40..0ec45d0 100644 --- a/package.json +++ b/package.json @@ -100,8 +100,8 @@ "@types/fs-extra": "^9.0.12", "@types/node": "^16.4.7", "@types/node-fetch": "^2.5.9", - "@types/react": "^17.0.40", - "@types/react-dom": "^17.0.13", + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", "execa": "^5.1.1", "express": "^4.17.1", "fs-extra": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 5b7b695..f3ffaa6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -663,14 +663,14 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^17.0.13": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.13.tgz#a3323b974ee4280070982b3112351bb1952a7809" - integrity sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ== +"@types/react-dom@^18.2.7": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^17.0.40": +"@types/react@*": version "17.0.40" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.40.tgz#dc010cee6254d5239a138083f3799a16638e6bad" integrity sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ== @@ -679,6 +679,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.15": + version "18.2.15" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" + integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" From 9886fc1468dba32ab27e583c971f30539daebe23 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 12:46:24 -0400 Subject: [PATCH 04/14] wip: require react 18 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0ec45d0..a317186 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,8 @@ "@vitejs/plugin-react": "^3.0.0", "@vitejs/plugin-vue": "^4.0.0", "@vueuse/head": "0.x", - "react": "^17 || ^18", - "react-dom": "^17 || ^18", + "react": "^18", + "react-dom": "^18", "react-helmet-async": "^1.0.0", "react-router-dom": "^6", "vite": "^4.0.0", From 70ab950d8bc2e20574b2a9d54a6af0858454e742 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 12:49:10 -0400 Subject: [PATCH 05/14] wip: update to react 18 --- examples/react-apollo/package.json | 4 ++-- examples/react/package.json | 4 ++-- test/fixtures/react-ts-basic/package.json | 4 ++-- yarn.lock | 29 ++++++++++------------- 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/examples/react-apollo/package.json b/examples/react-apollo/package.json index 65e9a98..6603211 100644 --- a/examples/react-apollo/package.json +++ b/examples/react-apollo/package.json @@ -10,8 +10,8 @@ "dependencies": { "@apollo/client": "^3.3.18", "graphql": "^15.5.0", - "react": "^17.0.0", - "react-dom": "^17.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-helmet-async": "^1.0.9", "react-router-dom": "^6.2.2", "styled-components": "^5.3.0" diff --git a/examples/react/package.json b/examples/react/package.json index 3755539..8ae8174 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -8,8 +8,8 @@ "serve:node": "node ../node-server/index react" }, "dependencies": { - "react": "^17.0.0", - "react-dom": "^17.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-helmet-async": "^1.0.9", "react-router-dom": "^6.2.2" }, diff --git a/test/fixtures/react-ts-basic/package.json b/test/fixtures/react-ts-basic/package.json index cf89082..a62a0cd 100644 --- a/test/fixtures/react-ts-basic/package.json +++ b/test/fixtures/react-ts-basic/package.json @@ -7,8 +7,8 @@ "serve": "node server" }, "dependencies": { - "react": "^17.0.0", - "react-dom": "^17.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-helmet-async": "^1.0.9", "react-router-dom": "^6.2.2" }, diff --git a/yarn.lock b/yarn.lock index f3ffaa6..539bb30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2367,14 +2367,13 @@ raw-body@2.4.3: iconv-lite "0.4.24" unpipe "1.0.0" -react-dom@^17.0.0: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.0" react-fast-compare@^3.2.0: version "3.2.0" @@ -2422,13 +2421,12 @@ react-ssr-prepass@^1.4.0: resolved "https://registry.yarnpkg.com/react-ssr-prepass/-/react-ssr-prepass-1.5.0.tgz#bc4ca7fcb52365e6aea11cc254a3d1bdcbd030c5" integrity sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ== -react@^17.0.0: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-pkg@^3.0.0: version "3.0.0" @@ -2523,13 +2521,12 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" "semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" From c3bb27df81bc619f8c13f1c87aebe7d9af499f99 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 13:05:05 -0400 Subject: [PATCH 06/14] wip: bump react-ssr-prepass and fix typings --- package.json | 4 ++-- src/react/components.ts | 5 ++++- src/react/entry-server.ts | 5 +++-- yarn.lock | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index a317186..e5c31f1 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "connect": "^3.7.0", "node-fetch": "^2.6.1", "react-router-dom": "^6.2.2", - "react-ssr-prepass": "^1.4.0" + "react-ssr-prepass": "^1.5.0" }, "devDependencies": { "@types/connect": "^3.4.34", @@ -100,7 +100,7 @@ "@types/fs-extra": "^9.0.12", "@types/node": "^16.4.7", "@types/node-fetch": "^2.5.9", - "@types/react": "^18.2.15", + "@types/react": "^18.2.7", "@types/react-dom": "^18.2.7", "execa": "^5.1.1", "express": "^4.17.1", diff --git a/src/react/components.ts b/src/react/components.ts index 7ef7f3c..d0df740 100644 --- a/src/react/components.ts +++ b/src/react/components.ts @@ -7,10 +7,13 @@ import { ReactElement, createContext as reactCreateContext, useContext as reactUseContext, + PropsWithChildren, } from 'react' import type { Context } from './types' -export const ClientOnly: FunctionComponent = ({ children }) => { +export const ClientOnly: FunctionComponent = ({ + children, +}) => { const [mounted, setMounted] = useState(false) useEffect(() => setMounted(true)) diff --git a/src/react/entry-server.ts b/src/react/entry-server.ts index 05316cc..4059622 100644 --- a/src/react/entry-server.ts +++ b/src/react/entry-server.ts @@ -1,6 +1,6 @@ import React, { ReactElement } from 'react' import ssrPrepass from 'react-ssr-prepass' -import { renderToString } from 'react-dom/server.js' +import { renderToString } from 'react-dom/server' import { StaticRouter } from 'react-router-dom/server' import { HelmetProvider } from 'react-helmet-async' import { getFullPath, withoutSuffix } from '../utils/route' @@ -11,7 +11,8 @@ import type { Context, SsrHandler } from './types' import { provideContext } from './components.js' export { ClientOnly, useContext } from './components.js' -let render: (element: ReactElement) => string | Promise = renderToString +let render: (component: ReactElement) => string | Promise = + renderToString as (component: ReactElement) => string // @ts-ignore if (__USE_APOLLO_RENDERER__) { diff --git a/yarn.lock b/yarn.lock index 539bb30..56dd0cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -679,7 +679,7 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.2.15": +"@types/react@^18.2.7": version "18.2.15" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== @@ -2416,7 +2416,7 @@ react-router@6.2.2: dependencies: history "^5.2.0" -react-ssr-prepass@^1.4.0: +react-ssr-prepass@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/react-ssr-prepass/-/react-ssr-prepass-1.5.0.tgz#bc4ca7fcb52365e6aea11cc254a3d1bdcbd030c5" integrity sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ== From f95832f55cd1d6a887fe3aa74b0b642c375d1926 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 13:30:14 -0400 Subject: [PATCH 07/14] wip: Remove ts-ignores. Sort imports --- env.d.ts | 7 ++++++ package.json | 4 ++-- src/react/components.ts | 8 +++---- src/react/entry-client.ts | 23 +++++++++++-------- src/react/entry-server.ts | 13 ++++------- src/react/global.d.ts | 7 ++++++ src/react/style-collectors/emotion.ts | 10 +++----- .../style-collectors/material-ui-core-v4.ts | 6 +---- .../style-collectors/styled-components.ts | 5 +--- src/react/types.ts | 5 +++- src/react/utils.ts | 15 ++++++------ yarn.lock | 10 ++++---- 12 files changed, 60 insertions(+), 53 deletions(-) create mode 100644 env.d.ts create mode 100644 src/react/global.d.ts diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..4c61751 --- /dev/null +++ b/env.d.ts @@ -0,0 +1,7 @@ +/// + +interface ImportMetaEnv {} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/package.json b/package.json index e5c31f1..e933da7 100644 --- a/package.json +++ b/package.json @@ -100,8 +100,8 @@ "@types/fs-extra": "^9.0.12", "@types/node": "^16.4.7", "@types/node-fetch": "^2.5.9", - "@types/react": "^18.2.7", - "@types/react-dom": "^18.2.7", + "@types/react": "18.2.7", + "@types/react-dom": "18.2.7", "execa": "^5.1.1", "express": "^4.17.1", "fs-extra": "^10.0.0", diff --git a/src/react/components.ts b/src/react/components.ts index d0df740..0202715 100644 --- a/src/react/components.ts +++ b/src/react/components.ts @@ -1,13 +1,13 @@ import { - useState, - useEffect, - createElement, Fragment, FunctionComponent, + PropsWithChildren, ReactElement, + createElement, createContext as reactCreateContext, useContext as reactUseContext, - PropsWithChildren, + useEffect, + useState, } from 'react' import type { Context } from './types' diff --git a/src/react/entry-client.ts b/src/react/entry-client.ts index a38589e..3c2f1fe 100644 --- a/src/react/entry-client.ts +++ b/src/react/entry-client.ts @@ -1,11 +1,11 @@ import React, { ReactElement } from 'react' -import ReactDOM from 'react-dom' -import createClientContext from '../core/entry-client.js' -import { BrowserRouter, useNavigate } from 'react-router-dom' +import { createRoot, hydrateRoot } from 'react-dom/client' import { HelmetProvider } from 'react-helmet-async' +import { BrowserRouter, useNavigate } from 'react-router-dom' +import createClientContext from '../core/entry-client.js' import { withoutSuffix } from '../utils/route' -import { createRouter } from './utils' import type { ClientHandler, Context } from './types' +import { createRouter } from './utils' import { provideContext } from './components.js' export { ClientOnly, useContext } from './components.js' @@ -53,7 +53,6 @@ export const viteSSR: ClientHandler = async function ( HelmetProvider, {}, React.createElement( - // @ts-ignore BrowserRouter, { basename: routeBase }, React.createElement( @@ -70,13 +69,17 @@ export const viteSSR: ClientHandler = async function ( } if (debug.mount !== false) { - // @ts-ignore const el = document.getElementById(__CONTAINER_ID__) + if (el) { + styles && styles.cleanup && styles.cleanup() - styles && styles.cleanup && styles.cleanup() - - // @ts-ignore - __DEV__ ? ReactDOM.render(app, el) : ReactDOM.hydrate(app, el) + if (__DEV__) { + const root = createRoot(el) + root.render(app) + } else { + hydrateRoot(el, app) + } + } } } diff --git a/src/react/entry-server.ts b/src/react/entry-server.ts index 4059622..b57d779 100644 --- a/src/react/entry-server.ts +++ b/src/react/entry-server.ts @@ -1,24 +1,22 @@ import React, { ReactElement } from 'react' -import ssrPrepass from 'react-ssr-prepass' import { renderToString } from 'react-dom/server' -import { StaticRouter } from 'react-router-dom/server' import { HelmetProvider } from 'react-helmet-async' -import { getFullPath, withoutSuffix } from '../utils/route' -import { createRouter } from './utils' +import { StaticRouter } from 'react-router-dom/server' +import ssrPrepass from 'react-ssr-prepass' import coreViteSSR from '../core/entry-server.js' +import { getFullPath, withoutSuffix } from '../utils/route' import type { Context, SsrHandler } from './types' +import { createRouter } from './utils' import { provideContext } from './components.js' export { ClientOnly, useContext } from './components.js' let render: (component: ReactElement) => string | Promise = - renderToString as (component: ReactElement) => string + renderToString -// @ts-ignore if (__USE_APOLLO_RENDERER__) { // Apollo does not support Suspense so it needs its own // renderer in order to await for async queries. - // @ts-ignore import('@apollo/client/react/ssr') .then(({ renderToStringWithData }) => { render = renderToStringWithData @@ -63,7 +61,6 @@ const viteSSR: SsrHandler = function ( HelmetProvider, { context: helmetContext }, React.createElement( - // @ts-ignore StaticRouter, { basename: routeBase, location: fullPath }, provideContext(React.createElement(App, context), context) diff --git a/src/react/global.d.ts b/src/react/global.d.ts new file mode 100644 index 0000000..954abcd --- /dev/null +++ b/src/react/global.d.ts @@ -0,0 +1,7 @@ +export {} + +declare global { + let __DEV__: boolean + let __CONTAINER_ID__: string + let __USE_APOLLO_RENDERER__: boolean +} diff --git a/src/react/style-collectors/emotion.ts b/src/react/style-collectors/emotion.ts index 674cb14..48bae9e 100644 --- a/src/react/style-collectors/emotion.ts +++ b/src/react/style-collectors/emotion.ts @@ -1,9 +1,7 @@ -import type { Context } from '../types' -import { createElement, ReactElement } from 'react' -// @ts-ignore import createCache from '@emotion/cache' -// @ts-ignore import { CacheProvider } from '@emotion/react' +import { createElement, ReactElement } from 'react' +import type { Context } from '../types' function getCache() { const cache = createCache({ key: 'css' }) @@ -15,8 +13,7 @@ async function ssrCollector(context: Context) { // A subdependency of this dependency calls Buffer on import, // so it must be imported only in Node environment. // https://github.com/emotion-js/emotion/issues/2446 - // @ts-ignore - let createEmotionServer: any = await import('@emotion/server/create-instance') + let createEmotionServer = await import('@emotion/server/create-instance') createEmotionServer = createEmotionServer.default || createEmotionServer const cache = getCache() @@ -44,5 +41,4 @@ function clientProvider(context: Context) { } } -// @ts-ignore export default import.meta.env.SSR ? ssrCollector : clientProvider diff --git a/src/react/style-collectors/material-ui-core-v4.ts b/src/react/style-collectors/material-ui-core-v4.ts index ccf1390..f9b8237 100644 --- a/src/react/style-collectors/material-ui-core-v4.ts +++ b/src/react/style-collectors/material-ui-core-v4.ts @@ -1,7 +1,6 @@ +import { ServerStyleSheets } from '@material-ui/core/styles' import type { ReactElement } from 'react' import type { Context } from '../types' -// @ts-ignore -import { ServerStyleSheets } from '@material-ui/core/styles' const key = 'jss-server-side' @@ -10,13 +9,11 @@ function ssrCollector(context: Context) { return { collect(app: ReactElement) { - //@ts-ignore return sheet.collect(app) }, toString() { let css = sheet.toString() - // @ts-ignore if (import.meta.env.PROD) { css = css.replace(/\s{2,}/gm, ' ') } @@ -37,5 +34,4 @@ function clientProvider(context: Context) { } } -// @ts-ignore export default import.meta.env.SSR ? ssrCollector : clientProvider diff --git a/src/react/style-collectors/styled-components.ts b/src/react/style-collectors/styled-components.ts index b1a7e1e..5de1ff1 100644 --- a/src/react/style-collectors/styled-components.ts +++ b/src/react/style-collectors/styled-components.ts @@ -1,14 +1,12 @@ import type { ReactElement } from 'react' -import type { Context } from '../types' -// @ts-ignore import { ServerStyleSheet } from 'styled-components' +import type { Context } from '../types' function ssrCollector(context: Context) { const sheet = new ServerStyleSheet() return { collect(app: ReactElement) { - // @ts-ignore return sheet.collectStyles(app) }, toString() { @@ -20,5 +18,4 @@ function ssrCollector(context: Context) { } } -// @ts-ignore export default import.meta.env.SSR ? ssrCollector : null diff --git a/src/react/types.ts b/src/react/types.ts index a8388ee..f6f4b84 100644 --- a/src/react/types.ts +++ b/src/react/types.ts @@ -1,11 +1,11 @@ import type { FunctionComponent, ReactElement, ReactNode } from 'react' -import type { Router } from './utils' import type { Meta, Renderer, SharedContext, SharedOptions, } from '../utils/types' +import type { Router } from './utils' export interface RouteRaw { name?: string @@ -13,9 +13,12 @@ export interface RouteRaw { component: any meta?: Meta routes?: RouteRaw[] + children?: RouteRaw[] [key: string]: any } +export interface AugmentedRoute extends RouteRaw {} + export interface PropsProvider extends FunctionComponent<{ from?: RouteRaw diff --git a/src/react/utils.ts b/src/react/utils.ts index e112b1f..606b16a 100644 --- a/src/react/utils.ts +++ b/src/react/utils.ts @@ -1,9 +1,12 @@ import React from 'react' import { useLocation, useParams } from 'react-router-dom' -import { getFullPath } from '../utils/route' -import { createUrl } from '../utils/route' -import type { RouteRaw, PropsProvider as PropsProviderType } from './types' -import type { Base, Meta, State, PagePropsOptions } from '../utils/types' +import { createUrl, getFullPath } from '../utils/route' +import type { Base, Meta, PagePropsOptions, State } from '../utils/types' +import type { + AugmentedRoute, + PropsProvider as PropsProviderType, + RouteRaw, +} from './types' type RouterOptions = { base?: Base @@ -28,7 +31,7 @@ export function createRouter({ state: null, } - const augmentedRoute = { + const augmentedRoute: AugmentedRoute = { ...originalRoute, meta, component: (props: Record) => { @@ -43,7 +46,6 @@ export function createRouter({ hash, search, params: useParams(), - // @ts-ignore -- This should be in ES2019 ?? query: Object.fromEntries(url.searchParams), fullPath: getFullPath(url, routeBase), } @@ -75,7 +77,6 @@ export function createRouter({ augmentedRoute.routes = originalRoute.routes.map(augmentRoute) // Nested routes compatibility with React Router 6 - // @ts-ignore augmentedRoute.children = augmentedRoute.routes } diff --git a/yarn.lock b/yarn.lock index 56dd0cc..1c4aae7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -663,7 +663,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.2.7": +"@types/react-dom@18.2.7": version "18.2.7" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== @@ -679,10 +679,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.2.7": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" - integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== +"@types/react@18.2.7": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.7.tgz#dfb4518042a3117a045b8c222316f83414a783b3" + integrity sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From de8f338b9e1799254578b34afa201930b037317a Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 13:37:48 -0400 Subject: [PATCH 08/14] wip: add emotion and material-ui packages to test fixture --- env.d.ts => src/react/env.d.ts | 0 src/react/global.d.ts | 4 +- test/fixtures/react-ts-basic/package.json | 6 +- yarn.lock | 558 +++++++++++++++++++++- 4 files changed, 558 insertions(+), 10 deletions(-) rename env.d.ts => src/react/env.d.ts (100%) diff --git a/env.d.ts b/src/react/env.d.ts similarity index 100% rename from env.d.ts rename to src/react/env.d.ts diff --git a/src/react/global.d.ts b/src/react/global.d.ts index 954abcd..f700cc7 100644 --- a/src/react/global.d.ts +++ b/src/react/global.d.ts @@ -1,7 +1,7 @@ -export {} - declare global { let __DEV__: boolean let __CONTAINER_ID__: string let __USE_APOLLO_RENDERER__: boolean } + +export default global diff --git a/test/fixtures/react-ts-basic/package.json b/test/fixtures/react-ts-basic/package.json index a62a0cd..5dee9ad 100644 --- a/test/fixtures/react-ts-basic/package.json +++ b/test/fixtures/react-ts-basic/package.json @@ -10,7 +10,11 @@ "react": "^18.0.0", "react-dom": "^18.0.0", "react-helmet-async": "^1.0.9", - "react-router-dom": "^6.2.2" + "react-router-dom": "^6.2.2", + "@emotion/cache": "11.11.0", + "@emotion/react": "11.11.1", + "@emotion/server": "11.11.0", + "@material-ui/core": "4.12.4" }, "devDependencies": { "@types/connect": "^3.4.35", diff --git a/yarn.lock b/yarn.lock index 1c4aae7..8a9c08b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28,6 +28,13 @@ tslib "^2.3.0" zen-observable-ts "^1.2.0" +"@babel/code-frame@^7.0.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" @@ -161,6 +168,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-module-imports@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" @@ -213,6 +227,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" @@ -223,6 +242,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" @@ -255,6 +279,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" @@ -286,6 +319,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.18.3", "@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.22.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -353,6 +393,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" @@ -365,6 +414,44 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@11.11.0", "@emotion/cache@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.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== + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + "@emotion/is-prop-valid@^0.8.8": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" @@ -377,6 +464,51 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@11.11.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/server@11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/server/-/server-11.11.0.tgz#35537176a2a5ed8aed7801f254828e636ec3bd6e" + integrity sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA== + dependencies: + "@emotion/utils" "^1.2.1" + html-tokenize "^2.0.0" + multipipe "^1.0.2" + through "^2.3.8" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + "@emotion/stylis@^0.8.4": version "0.8.5" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" @@ -387,6 +519,26 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + "@esbuild/android-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" @@ -542,6 +694,70 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@material-ui/core@4.12.4": + version "4.12.4" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73" + integrity sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/styles" "^4.11.5" + "@material-ui/system" "^4.12.2" + "@material-ui/types" "5.1.0" + "@material-ui/utils" "^4.11.3" + "@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/styles@^4.11.5": + version "4.11.5" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.5.tgz#19f84457df3aafd956ac863dbe156b1d88e2bbfb" + integrity sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/hash" "^0.8.0" + "@material-ui/types" "5.1.0" + "@material-ui/utils" "^4.11.3" + clsx "^1.0.4" + csstype "^2.5.2" + hoist-non-react-statics "^3.3.2" + jss "^10.5.1" + jss-plugin-camel-case "^10.5.1" + jss-plugin-default-unit "^10.5.1" + jss-plugin-global "^10.5.1" + jss-plugin-nested "^10.5.1" + jss-plugin-props-sort "^10.5.1" + jss-plugin-rule-value-function "^10.5.1" + jss-plugin-vendor-prefixer "^10.5.1" + prop-types "^15.7.2" + +"@material-ui/system@^4.12.2": + version "4.12.2" + resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.12.2.tgz#f5c389adf3fce4146edd489bf4082d461d86aa8b" + integrity sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.11.3" + 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.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.3.tgz#232bd86c4ea81dab714f21edad70b7fdf0253942" + integrity sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg== + dependencies: + "@babel/runtime" "^7.4.4" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + "@rollup/plugin-replace@^3.0.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-3.1.0.tgz#d31e3a90c6b47064f3c9f2ce0ded5bcf0d3b82f6" @@ -648,6 +864,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47" integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/prop-types@*": version "15.7.4" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" @@ -670,6 +891,13 @@ dependencies: "@types/react" "*" +"@types/react-transition-group@^4.2.0": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + "@types/react@*": version "17.0.40" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.40.tgz#dc010cee6254d5239a138083f3799a16638e6bad" @@ -899,6 +1127,15 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + "babel-plugin-styled-components@>= 1.12.0": version "2.0.6" resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.6.tgz#6f76c7f7224b7af7edc24a4910351948c691fc90" @@ -977,6 +1214,11 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-from@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== + buffer-indexof-polyfill@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" @@ -1000,6 +1242,11 @@ call-bind@^1.0.0, call-bind@^1.0.2: 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== + camelize@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" @@ -1039,6 +1286,11 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +clsx@^1.0.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1102,7 +1354,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -1122,6 +1374,17 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -1170,6 +1433,19 @@ css-to-react-native@^3.0.0: css-color-keywords "^1.0.0" postcss-value-parser "^4.0.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" + +csstype@^2.5.2: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== + csstype@^2.6.8: version "2.6.20" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" @@ -1238,7 +1514,15 @@ diff@^5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -duplexer2@~0.1.4: +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +duplexer2@^0.1.2, duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= @@ -1357,6 +1641,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" @@ -1467,6 +1756,11 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -1634,7 +1928,7 @@ history@^5.2.0: dependencies: "@babel/runtime" "^7.7.6" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.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== @@ -1646,6 +1940,17 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +html-tokenize@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-tokenize/-/html-tokenize-2.0.1.tgz#c3b2ea6e2837d4f8c06693393e9d2a12c960be5f" + integrity sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w== + dependencies: + buffer-from "~0.1.1" + inherits "~2.0.1" + minimist "~1.2.5" + readable-stream "~1.0.27-1" + through2 "~0.4.1" + http-errors@1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" @@ -1670,6 +1975,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +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" @@ -1677,6 +1987,14 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1685,7 +2003,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1748,6 +2066,13 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" @@ -1769,6 +2094,11 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +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 sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== + is-negative-zero@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -1825,6 +2155,11 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.2" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1855,6 +2190,11 @@ json-parse-better-errors@^1.0.1: 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== + json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -1869,11 +2209,86 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jss-plugin-camel-case@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz#27ea159bab67eb4837fa0260204eb7925d4daa1c" + integrity sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.10.0" + +jss-plugin-default-unit@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz#db3925cf6a07f8e1dd459549d9c8aadff9804293" + integrity sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.10.0" + +jss-plugin-global@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz#1c55d3c35821fab67a538a38918292fc9c567efd" + integrity sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.10.0" + +jss-plugin-nested@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz#db872ed8925688806e77f1fc87f6e62264513219" + integrity sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.10.0" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz#67f4dd4c70830c126f4ec49b4b37ccddb680a5d7" + integrity sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.10.0" + +jss-plugin-rule-value-function@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz#7d99e3229e78a3712f78ba50ab342e881d26a24b" + integrity sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.10.0" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz#c01428ef5a89f2b128ec0af87a314d0c767931c7" + integrity sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.10.0" + +jss@10.10.0, jss@^10.5.1: + version "10.10.0" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.10.0.tgz#a75cc85b0108c7ac8c7b7d296c520a3e4fbc6ccc" + integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + kleur@^4.0.3: version "4.1.4" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -1999,6 +2414,11 @@ minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@~1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + "mkdirp@>=0.5 0": version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -2026,6 +2446,14 @@ ms@2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multipipe@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-1.0.2.tgz#cc13efd833c9cda99f224f868461b8e1a3fd939d" + integrity sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ== + dependencies: + duplexer2 "^0.1.2" + object-assign "^4.1.0" + nanoid@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" @@ -2102,7 +2530,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -object-assign@^4.1.1: +object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -2117,6 +2545,11 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== + object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -2161,6 +2594,13 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -2169,6 +2609,16 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -2206,6 +2656,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -2265,6 +2720,11 @@ pngjs@6.0.0: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== +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== + postcss-value-parser@^4.0.2: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -2303,7 +2763,7 @@ progress@2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -2396,6 +2856,11 @@ react-is@^16.13.1, react-is@^16.7.0: 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.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + react-refresh@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" @@ -2421,6 +2886,16 @@ react-ssr-prepass@^1.5.0: resolved "https://registry.yarnpkg.com/react-ssr-prepass/-/react-ssr-prepass-1.5.0.tgz#bc4ca7fcb52365e6aea11cc254a3d1bdcbd030c5" integrity sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ== +react-transition-group@^4.4.0: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -2450,11 +2925,31 @@ readable-stream@^2.0.2, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@~1.0.17, readable-stream@~1.0.27-1: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + resolve@^1.10.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" @@ -2464,6 +2959,15 @@ resolve@^1.10.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.19.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" @@ -2652,7 +3156,7 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@^0.5.0: +source-map@^0.5.0, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -2730,6 +3234,11 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -2773,6 +3282,11 @@ styled-components@^5.3.0: shallowequal "^1.1.0" supports-color "^5.5.0" +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2797,6 +3311,24 @@ symbol-observable@^4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== +through2@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" + integrity sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ== + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +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-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" @@ -3035,6 +3567,13 @@ ws@8.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b" integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA== +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== + dependencies: + object-keys "~0.4.0" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -3045,6 +3584,11 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yauzl@2.10.0, yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From effea3036889b33c9d1a7500291982b63c0c58bf Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 14:05:21 -0400 Subject: [PATCH 09/14] wip: wrap up types --- src/react/style-collectors/emotion.ts | 7 +++++-- src/react/styled-components.d.ts | 10 ++++++++++ src/react/tsconfig.json | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/react/styled-components.d.ts create mode 100644 src/react/tsconfig.json diff --git a/src/react/style-collectors/emotion.ts b/src/react/style-collectors/emotion.ts index 48bae9e..f5b2b71 100644 --- a/src/react/style-collectors/emotion.ts +++ b/src/react/style-collectors/emotion.ts @@ -13,8 +13,11 @@ async function ssrCollector(context: Context) { // A subdependency of this dependency calls Buffer on import, // so it must be imported only in Node environment. // https://github.com/emotion-js/emotion/issues/2446 - let createEmotionServer = await import('@emotion/server/create-instance') - createEmotionServer = createEmotionServer.default || createEmotionServer + const createEmotionServerImport = await import( + '@emotion/server/create-instance' + ) + const createEmotionServer = + createEmotionServerImport.default || createEmotionServerImport const cache = getCache() const { extractCriticalToChunks, constructStyleTagsFromChunks } = diff --git a/src/react/styled-components.d.ts b/src/react/styled-components.d.ts new file mode 100644 index 0000000..13695b8 --- /dev/null +++ b/src/react/styled-components.d.ts @@ -0,0 +1,10 @@ +declare module 'styled-components' { + export class ServerStyleSheet { + constructor() + _emitSheetCSS: () => string + collectStyles: (children: any) => JSX.Element + getStyleTags: () => string + interleaveWithNodeStream: (input: Readable) => streamInternal.Transform + seal: () => void + } +} diff --git a/src/react/tsconfig.json b/src/react/tsconfig.json new file mode 100644 index 0000000..11d1f2a --- /dev/null +++ b/src/react/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig-esm.json", + "exclude": [], + "include": ["**/*"] +} From e9d69321b743d0d857dae81562648c554628e5bd Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 16:38:47 -0400 Subject: [PATCH 10/14] wip: React.createElement typescript errors --- .gitignore | 5 ++++- src/react/entry-client.ts | 2 +- src/react/entry-server.ts | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a27f983..cba4ee8 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,7 @@ pnpm-lock.yaml .history/ # Built Visual Studio Code Extensions -*.vsix \ No newline at end of file +*.vsix + +# Ignore log files like yarn-error.log +*.log \ No newline at end of file diff --git a/src/react/entry-client.ts b/src/react/entry-client.ts index 3c2f1fe..73812e3 100644 --- a/src/react/entry-client.ts +++ b/src/react/entry-client.ts @@ -53,7 +53,7 @@ export const viteSSR: ClientHandler = async function ( HelmetProvider, {}, React.createElement( - BrowserRouter, + typeof BrowserRouter, { basename: routeBase }, React.createElement( React.Suspense, diff --git a/src/react/entry-server.ts b/src/react/entry-server.ts index b57d779..ee59d63 100644 --- a/src/react/entry-server.ts +++ b/src/react/entry-server.ts @@ -61,7 +61,7 @@ const viteSSR: SsrHandler = function ( HelmetProvider, { context: helmetContext }, React.createElement( - StaticRouter, + typeof StaticRouter, { basename: routeBase, location: fullPath }, provideContext(React.createElement(App, context), context) ) From 2e6f7653bc2938368c86c8df5a1252953514c959 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 16:53:34 -0400 Subject: [PATCH 11/14] wip: cast routers as function components --- src/react/entry-client.ts | 8 ++++++-- src/react/entry-server.ts | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/react/entry-client.ts b/src/react/entry-client.ts index 73812e3..0277dd0 100644 --- a/src/react/entry-client.ts +++ b/src/react/entry-client.ts @@ -1,7 +1,11 @@ import React, { ReactElement } from 'react' import { createRoot, hydrateRoot } from 'react-dom/client' import { HelmetProvider } from 'react-helmet-async' -import { BrowserRouter, useNavigate } from 'react-router-dom' +import { + BrowserRouter, + BrowserRouterProps, + useNavigate, +} from 'react-router-dom' import createClientContext from '../core/entry-client.js' import { withoutSuffix } from '../utils/route' import type { ClientHandler, Context } from './types' @@ -53,7 +57,7 @@ export const viteSSR: ClientHandler = async function ( HelmetProvider, {}, React.createElement( - typeof BrowserRouter, + BrowserRouter as React.FunctionComponent, { basename: routeBase }, React.createElement( React.Suspense, diff --git a/src/react/entry-server.ts b/src/react/entry-server.ts index ee59d63..dfb0656 100644 --- a/src/react/entry-server.ts +++ b/src/react/entry-server.ts @@ -1,7 +1,7 @@ import React, { ReactElement } from 'react' import { renderToString } from 'react-dom/server' import { HelmetProvider } from 'react-helmet-async' -import { StaticRouter } from 'react-router-dom/server' +import { StaticRouter, StaticRouterProps } from 'react-router-dom/server' import ssrPrepass from 'react-ssr-prepass' import coreViteSSR from '../core/entry-server.js' import { getFullPath, withoutSuffix } from '../utils/route' @@ -61,7 +61,7 @@ const viteSSR: SsrHandler = function ( HelmetProvider, { context: helmetContext }, React.createElement( - typeof StaticRouter, + StaticRouter as React.FunctionComponent, { basename: routeBase, location: fullPath }, provideContext(React.createElement(App, context), context) ) From b164d011e3b7eb7256f6ae8a470a4d562f56233a Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 17:06:09 -0400 Subject: [PATCH 12/14] wip: add non-null assertion for container element --- src/react/entry-client.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/react/entry-client.ts b/src/react/entry-client.ts index 0277dd0..55508ce 100644 --- a/src/react/entry-client.ts +++ b/src/react/entry-client.ts @@ -73,16 +73,15 @@ export const viteSSR: ClientHandler = async function ( } if (debug.mount !== false) { - const el = document.getElementById(__CONTAINER_ID__) - if (el) { - styles && styles.cleanup && styles.cleanup() + const el = document.getElementById(__CONTAINER_ID__)! - if (__DEV__) { - const root = createRoot(el) - root.render(app) - } else { - hydrateRoot(el, app) - } + styles && styles.cleanup && styles.cleanup() + + if (__DEV__) { + const root = createRoot(el) + root.render(app) + } else { + hydrateRoot(el, app) } } } From e0fc985e64c264acae1b49b4f537fe0860465034 Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 17:07:59 -0400 Subject: [PATCH 13/14] wip: globals should be consts --- src/react/global.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/react/global.d.ts b/src/react/global.d.ts index f700cc7..950a3f2 100644 --- a/src/react/global.d.ts +++ b/src/react/global.d.ts @@ -1,7 +1,7 @@ declare global { - let __DEV__: boolean - let __CONTAINER_ID__: string - let __USE_APOLLO_RENDERER__: boolean + const __DEV__: boolean + const __CONTAINER_ID__: string + const __USE_APOLLO_RENDERER__: boolean } export default global From 5316ebd30beceb16182330803ecf43399fd1967c Mon Sep 17 00:00:00 2001 From: Cameron Lofgren Date: Fri, 14 Jul 2023 17:10:20 -0400 Subject: [PATCH 14/14] wip: remove AugmentedRoute interface --- src/react/types.ts | 2 -- src/react/utils.ts | 8 ++------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/react/types.ts b/src/react/types.ts index f6f4b84..4135cdd 100644 --- a/src/react/types.ts +++ b/src/react/types.ts @@ -17,8 +17,6 @@ export interface RouteRaw { [key: string]: any } -export interface AugmentedRoute extends RouteRaw {} - export interface PropsProvider extends FunctionComponent<{ from?: RouteRaw diff --git a/src/react/utils.ts b/src/react/utils.ts index 606b16a..4bd9465 100644 --- a/src/react/utils.ts +++ b/src/react/utils.ts @@ -2,11 +2,7 @@ import React from 'react' import { useLocation, useParams } from 'react-router-dom' import { createUrl, getFullPath } from '../utils/route' import type { Base, Meta, PagePropsOptions, State } from '../utils/types' -import type { - AugmentedRoute, - PropsProvider as PropsProviderType, - RouteRaw, -} from './types' +import type { PropsProvider as PropsProviderType, RouteRaw } from './types' type RouterOptions = { base?: Base @@ -31,7 +27,7 @@ export function createRouter({ state: null, } - const augmentedRoute: AugmentedRoute = { + const augmentedRoute: RouteRaw = { ...originalRoute, meta, component: (props: Record) => {