diff --git a/README.md b/README.md index 8eba69b..eb3b78c 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,8 @@ This is the fastest way to start. You must be using MacOS or Linux (WSL2 is ok!) - Setup `.env` using [`.env.example`][envexample] as a template and guide. - When setting up your Discord Application, be sure to set `http://localhost:6609/login-callback` as the OAuth2 callback URL. - Run: `yarn install` -- Run both: `yarn ui` and `yarn worker` - - This starts the UI and API servers in hot-reload dev/emulation mode. All changes to TS/TSX files should be properly captured and reloaded for you! +- Run both: `yarn start` + - This starts the Web UI, Storybook, and API servers in hot-reload dev/emulation mode. All changes to TS/TSX files should be properly captured and reloaded for you! - Develop you a Roleypoly! #### Option 3 🐄🤠: Wrangler (No emulation) @@ -80,8 +80,8 @@ This is probably extremely painful and requires you to have a Cloudflare account - Setup `.env` using [`.env.example`][envexample] as a template and guide. - Run `yarn install` -- Run both `wrangler dev -e dev` and `yarn ui` - - This starts the UI and API servers in hot-reload dev mode. All changes to TS/TSX files should be properly captured and reloaded for you! +- Run both `wrangler dev -e dev` and `yarn start:web` + - This starts the Web UI and API servers in hot-reload dev mode. All changes to TS/TSX files should be properly captured and reloaded for you! - Develop you a Roleypoly - And get a beer or heated plant because oh no. @@ -92,7 +92,7 @@ For working with the [Roleypoly Design System](https://ui.roleypoly.com), use th Run: - `yarn` to install deps -- `yarn storybook` to open storybook +- `yarn start:design-system` to open storybook - `yarn test` to test ### Developing Web UI @@ -102,7 +102,7 @@ For working with the Next.js frontend components, use the below steps as referen Run: - `yarn` to install deps -- `yarn ui` to run Next.js dev server +- `yarn start:web` to run Next.js dev server - `yarn test` to test ### Developing API Components @@ -112,7 +112,7 @@ For working with the API, use the below steps as reference. Code lives in `src/b Run: - `yarn` to install deps -- `yarn worker` to start an emulated worker +- `yarn start:api` to start an emulated worker - `yarn test` to test [envexample]: .env.example diff --git a/docker-compose.yaml b/docker-compose.yaml index 3b032a7..2385ad6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,20 +2,13 @@ version: '3.8' services: - worker: + dev: image: node:14 volumes: - '.:/src' ports: - 6609:6609 - working_dir: /src - command: yarn worker - - ui: - image: node:14 - volumes: - - '.:/src' - ports: - 6601:6601 + - 6006:6006 working_dir: /src - command: yarn ui + command: yarn start diff --git a/package.json b/package.json index ab7e6e6..7ca0a52 100644 --- a/package.json +++ b/package.json @@ -27,15 +27,12 @@ "lint:stylelint": "cross-env stylelint '**/*.{ts,tsx}'", "lint:terraform": "terraform fmt -recursive -check ./terraform", "lint:types": "tsc --noEmit", - "now-build": "run-s storybook:build", "postinstall": "is-ci || husky install", - "storybook": "start-storybook -p 6006", - "storybook:build": "build-storybook", - "test": "jest", - "ui": "next dev -p 6601", - "ui:build": "next build", - "ui:prod": "cross-env next start -p ${PORT:-3000}", - "worker": "node src/backend-emulator/main.js" + "start": "run-p -c start:*", + "start:design-system": "yarn workspace @roleypoly/design-system start", + "start:web": "yarn workspace @roleypoly/web start", + "start:worker": "yarn workspace @roleypoly/api start", + "test": "jest" }, "devDependencies": { "@types/enzyme": "^3.10.8", diff --git a/src/backend-worker/.gitignore b/packages/api/.gitignore similarity index 100% rename from src/backend-worker/.gitignore rename to packages/api/.gitignore diff --git a/src/backend-worker/bindings.d.ts b/packages/api/bindings.d.ts similarity index 100% rename from src/backend-worker/bindings.d.ts rename to packages/api/bindings.d.ts diff --git a/src/backend-worker/handlers/bot-join.ts b/packages/api/handlers/bot-join.ts similarity index 100% rename from src/backend-worker/handlers/bot-join.ts rename to packages/api/handlers/bot-join.ts diff --git a/src/backend-worker/handlers/create-roleypoly-data.ts b/packages/api/handlers/create-roleypoly-data.ts similarity index 96% rename from src/backend-worker/handlers/create-roleypoly-data.ts rename to packages/api/handlers/create-roleypoly-data.ts index 1d32409..8ea89df 100644 --- a/src/backend-worker/handlers/create-roleypoly-data.ts +++ b/packages/api/handlers/create-roleypoly-data.ts @@ -1,5 +1,9 @@ import KSUID from 'ksuid'; -import { CategoryType, Features, GuildData as GuildDataT } from 'roleypoly/common/types'; +import { + CategoryType, + Features, + GuildData as GuildDataT, +} from '../../../src/common/types'; import { onlyRootUsers, respond } from '../utils/api-tools'; import { GuildData } from '../utils/kv'; diff --git a/src/backend-worker/handlers/get-picker-data.ts b/packages/api/handlers/get-picker-data.ts similarity index 98% rename from src/backend-worker/handlers/get-picker-data.ts rename to packages/api/handlers/get-picker-data.ts index 469d27e..29101cc 100644 --- a/src/backend-worker/handlers/get-picker-data.ts +++ b/packages/api/handlers/get-picker-data.ts @@ -3,7 +3,7 @@ import { GuildSlug, PresentableGuild, SessionData, -} from 'roleypoly/common/types'; +} from '../../../src/common/types'; import { respond, withSession } from '../utils/api-tools'; import { getGuild, getGuildData, getGuildMemberRoles } from '../utils/guild'; diff --git a/src/backend-worker/handlers/get-session.ts b/packages/api/handlers/get-session.ts similarity index 83% rename from src/backend-worker/handlers/get-session.ts rename to packages/api/handlers/get-session.ts index c7af7c3..abe99c9 100644 --- a/src/backend-worker/handlers/get-session.ts +++ b/packages/api/handlers/get-session.ts @@ -1,4 +1,4 @@ -import { SessionData } from 'roleypoly/common/types'; +import { SessionData } from '../../../src/common/types'; import { respond, withSession } from '../utils/api-tools'; export const GetSession = withSession((session?: SessionData) => (): Response => { diff --git a/src/backend-worker/handlers/get-slug.ts b/packages/api/handlers/get-slug.ts similarity index 94% rename from src/backend-worker/handlers/get-slug.ts rename to packages/api/handlers/get-slug.ts index 1a44c56..4cd6244 100644 --- a/src/backend-worker/handlers/get-slug.ts +++ b/packages/api/handlers/get-slug.ts @@ -1,4 +1,4 @@ -import { GuildSlug } from 'roleypoly/common/types'; +import { GuildSlug } from '../../../src/common/types'; import { respond } from '../utils/api-tools'; import { getGuild } from '../utils/guild'; diff --git a/src/backend-worker/handlers/login-bounce.ts b/packages/api/handlers/login-bounce.ts similarity index 100% rename from src/backend-worker/handlers/login-bounce.ts rename to packages/api/handlers/login-bounce.ts diff --git a/src/backend-worker/handlers/login-callback.ts b/packages/api/handlers/login-callback.ts similarity index 99% rename from src/backend-worker/handlers/login-callback.ts rename to packages/api/handlers/login-callback.ts index 75abe7d..58194d8 100644 --- a/src/backend-worker/handlers/login-callback.ts +++ b/packages/api/handlers/login-callback.ts @@ -4,7 +4,7 @@ import { DiscordUser, GuildSlug, SessionData, -} from '../../common/types'; +} from '../../../src/common/types'; import { AuthType, discordFetch, diff --git a/src/backend-worker/handlers/revoke-session.ts b/packages/api/handlers/revoke-session.ts similarity index 93% rename from src/backend-worker/handlers/revoke-session.ts rename to packages/api/handlers/revoke-session.ts index 4e8504b..60a8418 100644 --- a/src/backend-worker/handlers/revoke-session.ts +++ b/packages/api/handlers/revoke-session.ts @@ -1,4 +1,4 @@ -import { SessionData } from 'roleypoly/common/types'; +import { SessionData } from '../../../src/common/types'; import { formData, respond, userAgent, withSession } from '../utils/api-tools'; import { botClientID, botClientSecret } from '../utils/config'; import { Sessions } from '../utils/kv'; diff --git a/src/backend-worker/handlers/update-roles.ts b/packages/api/handlers/update-roles.ts similarity index 99% rename from src/backend-worker/handlers/update-roles.ts rename to packages/api/handlers/update-roles.ts index 9a9c94b..ae84d42 100644 --- a/src/backend-worker/handlers/update-roles.ts +++ b/packages/api/handlers/update-roles.ts @@ -8,7 +8,7 @@ import { RoleUpdate, SessionData, TransactionType, -} from 'roleypoly/common/types'; +} from '../../../src/common/types'; import { AuthType, discordFetch, respond, withSession } from '../utils/api-tools'; import { botToken } from '../utils/config'; import { diff --git a/src/backend-worker/index.ts b/packages/api/index.ts similarity index 100% rename from src/backend-worker/index.ts rename to packages/api/index.ts diff --git a/packages/api/package.json b/packages/api/package.json new file mode 100644 index 0000000..8c07826 --- /dev/null +++ b/packages/api/package.json @@ -0,0 +1,15 @@ +{ + "name": "@roleypoly/api", + "version": "0.1.0", + "scripts": { + "build": "yarn workspace @roleypoly/worker-emulator build --basePath `pwd`", + "start": "yarn workspace @roleypoly/worker-emulator start --basePath `pwd`" + }, + "devDependencies": { + "@roleypoly/worker-emulator": "*", + "ksuid": "^2.0.0", + "lodash": "^4.17.21", + "ts-loader": "^8.0.18", + "tsconfig-paths-webpack-plugin": "^3.3.0" + } +} diff --git a/src/backend-worker/router.ts b/packages/api/router.ts similarity index 100% rename from src/backend-worker/router.ts rename to packages/api/router.ts diff --git a/src/backend-worker/tsconfig.json b/packages/api/tsconfig.json similarity index 100% rename from src/backend-worker/tsconfig.json rename to packages/api/tsconfig.json diff --git a/src/backend-worker/utils/api-tools.ts b/packages/api/utils/api-tools.ts similarity index 97% rename from src/backend-worker/utils/api-tools.ts rename to packages/api/utils/api-tools.ts index d87d398..8387e58 100644 --- a/src/backend-worker/utils/api-tools.ts +++ b/packages/api/utils/api-tools.ts @@ -1,8 +1,8 @@ -import { SessionData, UserGuildPermissions } from '../../common/types'; +import { SessionData, UserGuildPermissions } from '../../../src/common/types'; import { evaluatePermission, permissions as Permissions, -} from '../../common/utils/hasPermission'; +} from '../../../src/common/utils/hasPermission'; import { Handler } from '../router'; import { rootUsers, uiPublicURI } from './config'; import { Sessions, WrappedKVNamespace } from './kv'; diff --git a/src/backend-worker/utils/bounce.ts b/packages/api/utils/bounce.ts similarity index 100% rename from src/backend-worker/utils/bounce.ts rename to packages/api/utils/bounce.ts diff --git a/src/backend-worker/utils/config.ts b/packages/api/utils/config.ts similarity index 100% rename from src/backend-worker/utils/config.ts rename to packages/api/utils/config.ts diff --git a/src/backend-worker/utils/guild.ts b/packages/api/utils/guild.ts similarity index 96% rename from src/backend-worker/utils/guild.ts rename to packages/api/utils/guild.ts index 70f57bb..921fb53 100644 --- a/src/backend-worker/utils/guild.ts +++ b/packages/api/utils/guild.ts @@ -5,8 +5,8 @@ import { OwnRoleInfo, Role, RoleSafety, -} from 'roleypoly/common/types'; -import { evaluatePermission, permissions } from 'roleypoly/common/utils/hasPermission'; +} from '../../../src/common/types'; +import { evaluatePermission, permissions } from '../../../src/common/utils/hasPermission'; import { AuthType, cacheLayer, discordFetch } from './api-tools'; import { botClientID, botToken } from './config'; import { GuildData, Guilds } from './kv'; diff --git a/src/backend-worker/utils/kv.ts b/packages/api/utils/kv.ts similarity index 100% rename from src/backend-worker/utils/kv.ts rename to packages/api/utils/kv.ts diff --git a/src/backend-worker/webpack.config.js b/packages/api/webpack.config.js similarity index 100% rename from src/backend-worker/webpack.config.js rename to packages/api/webpack.config.js diff --git a/src/backend-worker/roleypoly.config.js b/packages/api/worker.config.js similarity index 100% rename from src/backend-worker/roleypoly.config.js rename to packages/api/worker.config.js diff --git a/src/backend-emulator/kv.js b/packages/backend-emulator/kv.js similarity index 100% rename from src/backend-emulator/kv.js rename to packages/backend-emulator/kv.js diff --git a/src/backend-emulator/main.js b/packages/backend-emulator/main.js similarity index 89% rename from src/backend-emulator/main.js rename to packages/backend-emulator/main.js index 360f4f4..8bb7777 100644 --- a/src/backend-emulator/main.js +++ b/packages/backend-emulator/main.js @@ -1,22 +1,29 @@ -require('dotenv').config(); +const path = require('path'); +require('dotenv').config({ path: path.resolve(__dirname, '../../.env') }); const vm = require('vm'); const http = require('http'); const fs = require('fs'); -const path = require('path'); const chokidar = require('chokidar'); const webpack = require('webpack'); const { Crypto } = require('@peculiar/webcrypto'); -const roleypolyConfig = require('../backend-worker/roleypoly.config'); const { KVShim } = require('./kv'); const crypto = new Crypto(); const fetch = require('node-fetch'); +const args = require('minimist')(process.argv.slice(2)); + +const basePath = args.basePath; +if (!basePath) { + throw new Error('--basePath is not set.'); +} + +const workerConfig = require(`${basePath}/worker.config.js`); const getKVs = (namespaces = []) => namespaces.reduce((acc, ns) => ({ ...acc, [ns]: new KVShim(ns) }), {}); const workerShims = { - ...roleypolyConfig.environment, - ...getKVs(roleypolyConfig.kv), + ...workerConfig.environment, + ...getKVs(workerConfig.kv), }; let listeners = []; @@ -133,7 +140,7 @@ const reload = () => { // Fork and re-run fork(async () => vm.runInContext( - fs.readFileSync(path.resolve(__dirname, '../backend-worker/dist/worker.js')), + fs.readFileSync(path.resolve(__dirname, `${basePath}/dist/worker.js`)), context(), { displayErrors: true, @@ -145,7 +152,7 @@ const reload = () => { const rebuild = () => new Promise((resolve, reject) => { - const webpackConfig = require('../backend-worker/webpack.config.js'); + const webpackConfig = require(`${basePath}/webpack.config.js`); webpackConfig.output.filename = 'worker.js'; webpack(webpackConfig).run((err, stats) => { if (err) { @@ -163,7 +170,7 @@ const rebuild = () => }); }); -const watcher = chokidar.watch(path.resolve(__dirname, '../backend-worker'), { +const watcher = chokidar.watch(path.resolve(__dirname, basePath), { ignoreInitial: true, ignore: '**/dist', }); diff --git a/packages/backend-emulator/package.json b/packages/backend-emulator/package.json new file mode 100644 index 0000000..3d5b6bc --- /dev/null +++ b/packages/backend-emulator/package.json @@ -0,0 +1,17 @@ +{ + "name": "@roleypoly/worker-emulator", + "version": "0.1.0", + "scripts": { + "build": "node main.js --build", + "start": "node main.js" + }, + "devDependencies": { + "@peculiar/webcrypto": "^1.1.6", + "chokidar": "^3.5.1", + "dotenv": "^8.2.0", + "level": "^6.0.1", + "minimist": "^1.2.5", + "node-fetch": "^2.6.1", + "webpack": "^4.x" + } +} diff --git a/packages/design-system/atoms/fonts/fonts.tsx b/packages/design-system/atoms/fonts/fonts.tsx index 31966ed..fe15b8d 100644 --- a/packages/design-system/atoms/fonts/fonts.tsx +++ b/packages/design-system/atoms/fonts/fonts.tsx @@ -1,23 +1,5 @@ -import * as React from 'react'; import styled, { css } from 'styled-components'; -export const InjectTypekitFont = () => { - React.useEffect(() => { - (window as any).Typekit.load(); - }, []); - return ( - <> - - diff --git a/packages/web/src/App.css b/packages/web/src/App.css deleted file mode 100644 index 78b8850..0000000 --- a/packages/web/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx deleted file mode 100644 index b52c446..0000000 --- a/packages/web/src/App.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; - -function App() { - return ( -
-
-

- Edit src/App.tsx and save to reload. -

- - Learn React - -
-
- ); -} - -export default App; diff --git a/packages/web/src/app-router/AppRouter.tsx b/packages/web/src/app-router/AppRouter.tsx new file mode 100644 index 0000000..f79e6f1 --- /dev/null +++ b/packages/web/src/app-router/AppRouter.tsx @@ -0,0 +1,22 @@ +import { Router } from '@reach/router'; +import * as React from 'react'; + +const LandingPage = React.lazy(() => import('../pages/landing')); + +const RouteWrapper = (props: { + component: React.LazyExoticComponent>; + path?: string; + default?: boolean; +}) => ( + Loading...}> + + +); + +export const AppRouter = () => { + return ( + + + + ); +}; diff --git a/packages/web/src/app-router/index.ts b/packages/web/src/app-router/index.ts new file mode 100644 index 0000000..fda706f --- /dev/null +++ b/packages/web/src/app-router/index.ts @@ -0,0 +1 @@ +export * from './AppRouter'; diff --git a/packages/web/src/index.css b/packages/web/src/index.css deleted file mode 100644 index b723e92..0000000 --- a/packages/web/src/index.css +++ /dev/null @@ -1,11 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; -} diff --git a/packages/web/src/index.tsx b/packages/web/src/index.tsx index 0d99529..f506f86 100644 --- a/packages/web/src/index.tsx +++ b/packages/web/src/index.tsx @@ -1,17 +1,10 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import App from './App'; -import './index.css'; -import reportWebVitals from './reportWebVitals'; +import { AppRouter } from './app-router'; ReactDOM.render( - + , document.getElementById('root') ); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/packages/web/src/logo.svg b/packages/web/src/logo.svg deleted file mode 100644 index 9dfc1c0..0000000 --- a/packages/web/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/web/src/pages/landing.tsx b/packages/web/src/pages/landing.tsx new file mode 100644 index 0000000..659f5c6 --- /dev/null +++ b/packages/web/src/pages/landing.tsx @@ -0,0 +1,8 @@ +import { LandingTemplate } from '@roleypoly/design-system/templates/landing'; +import * as React from 'react'; + +const Landing = () => { + return ; +}; + +export default Landing; diff --git a/packages/web/src/reportWebVitals.ts b/packages/web/src/reportWebVitals.ts deleted file mode 100644 index d95c0a6..0000000 --- a/packages/web/src/reportWebVitals.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/yarn.lock b/yarn.lock index b421038..1192683 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1262,6 +1262,16 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@craco/craco@^6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@craco/craco/-/craco-6.1.1.tgz#0233b28d6896b6560379f64b608d3c888874e9fa" + integrity sha512-4irfOM8RgYNhFJzAXyIuM8CZLju2Jh9GdOem8uqM2/cI2xPulQSxZKU/9q3uiSbFUJfQLi3pomVKii6KzWLu3Q== + dependencies: + cross-spawn "^7.0.0" + lodash "^4.17.15" + semver "^7.3.2" + webpack-merge "^4.2.2" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -1780,6 +1790,34 @@ dependencies: mkdirp "^1.0.4" +"@peculiar/asn1-schema@^2.0.27": + version "2.0.27" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.27.tgz#1ee3b2b869ff3200bcc8ec60e6c87bd5a6f03fe0" + integrity sha512-1tIx7iL3Ma3HtnNS93nB7nhyI0soUJypElj9owd4tpMrRDmeJ8eZubsdq1sb0KSaCs5RqZNoABCP6m5WtnlVhQ== + dependencies: + "@types/asn1js" "^2.0.0" + asn1js "^2.0.26" + pvtsutils "^1.1.1" + tslib "^2.0.3" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.6.tgz#484bb58be07149e19e873861b585b0d5e4f83b7b" + integrity sha512-xcTjouis4Y117mcsJslWAGypwhxtXslkVdRp7e3tHwtuw0/xCp1te8RuMMv/ia5TsvxomcyX/T+qTbRZGLLvyA== + dependencies: + "@peculiar/asn1-schema" "^2.0.27" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.1.2" + tslib "^2.1.0" + webcrypto-core "^1.2.0" + "@pmmmwh/react-refresh-webpack-plugin@0.4.3", "@pmmmwh/react-refresh-webpack-plugin@^0.4.2": version "0.4.3" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" @@ -1797,7 +1835,7 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.4.tgz#de25b5da9f727985a3757fd59b5d028aba75841a" integrity sha512-ZpKr+WTb8zsajqgDkvCEWgp6d5eJT6Q63Ng2neTbzBO76Lbe91vX/iVIW9dikq+Fs3yEo+ls4cxeXABD2LtcbQ== -"@reach/router@^1.3.3": +"@reach/router@^1.3.3", "@reach/router@^1.3.4": version "1.3.4" resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== @@ -2570,6 +2608,11 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== +"@types/asn1js@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.0.tgz#10ca75692575744d0117098148a8dc84cbee6682" + integrity sha512-Jjzp5EqU0hNpADctc/UqhiFbY1y2MqIxBVa2S4dBlbnZHTLPMuggoL5q43X63LpsOIINRDirBjP56DUUKIUWIA== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.12" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" @@ -2865,6 +2908,13 @@ dependencies: "@types/react" "*" +"@types/react-helmet@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.0.tgz#af586ed685f4905e2adc7462d1d65ace52beee7a" + integrity sha512-PYRoU1XJFOzQ3BHvWL1T8iDNbRjdMDJMT5hFmZKGbsq09kbSqJy61uwEpTrbTNWDopVphUT34zUSVLK9pjsgYQ== + dependencies: + "@types/react" "*" + "@types/react-syntax-highlighter@11.0.4": version "11.0.4" resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz#d86d17697db62f98046874f62fdb3e53a0bbc4cd" @@ -3287,6 +3337,28 @@ abab@^2.0.0, abab@^2.0.3: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -3707,6 +3779,13 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" +asn1js@^2.0.26: + version "2.0.26" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.0.26.tgz#0a6d435000f556a96c6012969d9704d981b71251" + integrity sha512-yG89F0j9B4B0MKIcFyWWxnpZPLaNTjCj4tkE3fjbAoo0qmpGw0PYYqSbX/4ebnd9Icn8ZgK4K1fvDyEtW1JYtQ== + dependencies: + pvutils latest + assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -4303,7 +4382,7 @@ base-convert-int-array@^1.0.1: resolved "https://registry.yarnpkg.com/base-convert-int-array/-/base-convert-int-array-1.0.1.tgz#5b4ddbfa72d2d3b5f75dd86cd32fe3dc8e7e81fe" integrity sha512-NWqzaoXx8L/SS32R+WmKqnQkVXVYl2PwNJ68QV3RAlRRL1uV+yxJT66abXI1cAvqCXQTyXr7/9NN4Af90/zDVw== -base64-js@^1.0.2: +base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -4610,6 +4689,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -4914,7 +5001,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.0, chokidar@^3.4.1: +chokidar@^3.3.0, chokidar@^3.4.1, chokidar@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== @@ -5975,6 +6062,14 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== + dependencies: + abstract-leveldown "~6.2.1" + inherits "^2.0.3" + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -6316,7 +6411,7 @@ dotenv-webpack@^1.7.0: dependencies: dotenv-defaults "^1.0.2" -dotenv@8.2.0, dotenv@^8.0.0: +dotenv@8.2.0, dotenv@^8.0.0, dotenv@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== @@ -6450,6 +6545,16 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -6580,6 +6685,13 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +errno@~0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -8359,7 +8471,7 @@ identity-obj-proxy@3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -8384,6 +8496,11 @@ ignore@^5.1.4, ignore@^5.1.8: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +immediate@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + immer@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" @@ -10018,6 +10135,88 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== +level-codec@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== + dependencies: + buffer "^5.6.0" + +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== + +level-errors@^2.0.0, level-errors@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== + dependencies: + errno "~0.1.1" + +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-js@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" + integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== + dependencies: + abstract-leveldown "~6.2.3" + buffer "^5.5.0" + inherits "^2.0.3" + ltgt "^2.1.2" + +level-packager@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== + dependencies: + encoding-down "^6.3.0" + levelup "^4.3.2" + +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + dependencies: + xtend "^4.0.2" + +level@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" + integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== + dependencies: + level-js "^5.0.0" + level-packager "^5.1.0" + leveldown "^5.4.0" + +leveldown@^5.4.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + dependencies: + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -10348,6 +10547,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +ltgt@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" @@ -10631,7 +10835,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: +micromatch@^4.0.0, micromatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== @@ -10881,6 +11085,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + native-url@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" @@ -10953,6 +11162,11 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-gyp-build@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" + integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -12759,6 +12973,18 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pvtsutils@^1.1.1, pvtsutils@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.1.2.tgz#483d72f4baa5e354466e68ff783ce8a9e2810030" + integrity sha512-Yfm9Dsk1zfEpOWCaJaHfqtNXAFWNNHMFSCLN6jTnhuCCBCC2nqge4sAgo7UrkRBoAAYIL8TN/6LlLoNfZD/b5A== + dependencies: + tslib "^2.1.0" + +pvutils@latest: + version "1.0.17" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" + integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -13034,7 +13260,7 @@ react-error-overlay@^6.0.7, react-error-overlay@^6.0.9: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1, react-fast-compare@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== @@ -13050,6 +13276,16 @@ react-helmet-async@^1.0.2: react-fast-compare "^3.2.0" shallowequal "^1.1.0" +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + react-hotkeys@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-2.0.0.tgz#a7719c7340cbba888b0e9184f806a9ec0ac2c53f" @@ -13182,6 +13418,11 @@ react-shallow-renderer@^16.13.1: object-assign "^4.1.1" react-is "^16.12.0 || ^17.0.0" +react-side-effect@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" + integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + react-sizeme@^2.6.7: version "2.6.12" resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.6.12.tgz#ed207be5476f4a85bf364e92042520499455453e" @@ -13330,7 +13571,7 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -14022,7 +14263,7 @@ semver@7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@7.x, semver@^7.2.1, semver@^7.3.2: +semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -15337,6 +15578,17 @@ ts-jest@^26.5.3: semver "7.x" yargs-parser "20.x" +ts-loader@^8.0.18: + version "8.0.18" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.18.tgz#b2385cbe81c34ad9f997915129cdde3ad92a61ea" + integrity sha512-hRZzkydPX30XkLaQwJTDcWDoxZHK6IrEMDQpNd7tgcakFruFkeUp/aY+9hBb7BUGb+ZWKI0jiOGMo0MckwzdDQ== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^4.0.0" + loader-utils "^2.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + ts-pnp@1.2.0, ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -15371,6 +15623,11 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== +tslib@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tslint@^6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" @@ -15964,6 +16221,17 @@ web-vitals@^1.1.0: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.0.tgz#7f410d9a1f7a1cd5d952806b45776204b47dc274" integrity sha512-1cx54eRxY/+M0KNKdNpNnuXAXG+vJEvwScV4DiV9rOYDguHoeDIzm09ghBohOPtkqPO5OtPC14FWkNva3SDisg== +webcrypto-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.2.0.tgz#44fda3f9315ed6effe9a1e47466e0935327733b5" + integrity sha512-p76Z/YLuE4CHCRdc49FB/ETaM4bzM3roqWNJeGs+QNY1fOTzKTOVnhmudW1fuO+5EZg6/4LG9NJ6gaAyxTk9XQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.27" + "@peculiar/json-schema" "^1.1.12" + asn1js "^2.0.26" + pvtsutils "^1.1.2" + tslib "^2.1.0" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -16072,6 +16340,13 @@ webpack-manifest-plugin@2.2.0: object.entries "^1.1.0" tapable "^1.0.0" +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" @@ -16116,7 +16391,7 @@ webpack@4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^4.44.2: +webpack@^4.44.2, webpack@^4.x: version "4.46.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== @@ -16490,7 +16765,7 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==