From 9d4f3a3df5a0ad4bdbab0d7d78bf8c8305b8b77c Mon Sep 17 00:00:00 2001 From: Jelle van Snik Date: Sun, 6 Feb 2022 20:56:48 +0100 Subject: [PATCH] clear up project to start from scratch --- .vscode/settings.json | 5 + craco.config.js | 11 + package.json | 16 +- src/App.tsx | 9 + src/index.css | 53 ---- src/{index.js => index.tsx} | 0 src/react-app-env.d.ts | 1 + src/scrapers/README.md | 3 + src/scrapers/index.ts | 6 + src/scrapers/list/theflix/index.ts | 15 ++ src/scrapers/scrapers.ts | 26 ++ {src => src2}/App.js | 0 {src => src2}/assets/down-arrow.svg | 0 {src => src2}/components/Arrow.css | 0 {src => src2}/components/Arrow.js | 0 {src => src2}/components/Card.css | 0 {src => src2}/components/Card.js | 0 {src => src2}/components/EpisodeSelector.css | 0 {src => src2}/components/EpisodeSelector.js | 0 {src => src2}/components/ErrorBanner.css | 0 {src => src2}/components/ErrorBanner.js | 0 {src => src2}/components/InputBox.css | 0 {src => src2}/components/InputBox.js | 0 {src => src2}/components/MovieRow.css | 0 {src => src2}/components/MovieRow.js | 0 {src => src2}/components/NumberSelector.css | 0 {src => src2}/components/NumberSelector.js | 0 .../components/PercentageOverlay.css | 0 {src => src2}/components/PercentageOverlay.js | 0 {src => src2}/components/Progress.css | 0 {src => src2}/components/Progress.js | 0 {src => src2}/components/SelectBox.css | 0 {src => src2}/components/SelectBox.js | 0 {src => src2}/components/Title.css | 0 {src => src2}/components/Title.js | 0 {src => src2}/components/TypeSelector.css | 0 {src => src2}/components/TypeSelector.js | 0 {src => src2}/components/VideoElement.css | 0 {src => src2}/components/VideoElement.js | 0 {src => src2}/components/VideoPlaceholder.css | 0 {src => src2}/components/VideoPlaceholder.js | 0 {src => src2}/hooks/useMovie.js | 0 {src => src2}/hooks/useWindowSize.js | 0 src2/index.css | 70 ++++++ src2/index.js | 14 ++ {src => src2}/lib/index.js | 0 .../lib/scraper/gdriveplayer.js.disabled | 0 .../lib/scraper/gomostream.js.disabled | 0 {src => src2}/lib/scraper/lookmovie.js | 0 {src => src2}/lib/scraper/theflix.js | 0 {src => src2}/lib/scraper/vidzstore.js | 0 {src => src2}/lib/scraper/vmovee.js.disabled | 0 {src => src2}/lib/scraper/xemovie.js | 0 {src => src2}/lib/storage/VideoProgress.js | 0 {src => src2}/lib/storage/base.js | 0 {src => src2}/lib/util/unpacker.js | 0 {src => src2}/views/Movie.css | 0 {src => src2}/views/Movie.js | 0 {src => src2}/views/Search.css | 0 {src => src2}/views/Search.js | 0 tsconfig.json | 26 ++ yarn.lock | 230 +++++++++++++++++- 62 files changed, 427 insertions(+), 58 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 craco.config.js create mode 100644 src/App.tsx rename src/{index.js => index.tsx} (100%) create mode 100644 src/react-app-env.d.ts create mode 100644 src/scrapers/README.md create mode 100644 src/scrapers/index.ts create mode 100644 src/scrapers/list/theflix/index.ts create mode 100644 src/scrapers/scrapers.ts rename {src => src2}/App.js (100%) rename {src => src2}/assets/down-arrow.svg (100%) rename {src => src2}/components/Arrow.css (100%) rename {src => src2}/components/Arrow.js (100%) rename {src => src2}/components/Card.css (100%) rename {src => src2}/components/Card.js (100%) rename {src => src2}/components/EpisodeSelector.css (100%) rename {src => src2}/components/EpisodeSelector.js (100%) rename {src => src2}/components/ErrorBanner.css (100%) rename {src => src2}/components/ErrorBanner.js (100%) rename {src => src2}/components/InputBox.css (100%) rename {src => src2}/components/InputBox.js (100%) rename {src => src2}/components/MovieRow.css (100%) rename {src => src2}/components/MovieRow.js (100%) rename {src => src2}/components/NumberSelector.css (100%) rename {src => src2}/components/NumberSelector.js (100%) rename {src => src2}/components/PercentageOverlay.css (100%) rename {src => src2}/components/PercentageOverlay.js (100%) rename {src => src2}/components/Progress.css (100%) rename {src => src2}/components/Progress.js (100%) rename {src => src2}/components/SelectBox.css (100%) rename {src => src2}/components/SelectBox.js (100%) rename {src => src2}/components/Title.css (100%) rename {src => src2}/components/Title.js (100%) rename {src => src2}/components/TypeSelector.css (100%) rename {src => src2}/components/TypeSelector.js (100%) rename {src => src2}/components/VideoElement.css (100%) rename {src => src2}/components/VideoElement.js (100%) rename {src => src2}/components/VideoPlaceholder.css (100%) rename {src => src2}/components/VideoPlaceholder.js (100%) rename {src => src2}/hooks/useMovie.js (100%) rename {src => src2}/hooks/useWindowSize.js (100%) create mode 100644 src2/index.css create mode 100644 src2/index.js rename {src => src2}/lib/index.js (100%) rename {src => src2}/lib/scraper/gdriveplayer.js.disabled (100%) rename {src => src2}/lib/scraper/gomostream.js.disabled (100%) rename {src => src2}/lib/scraper/lookmovie.js (100%) rename {src => src2}/lib/scraper/theflix.js (100%) rename {src => src2}/lib/scraper/vidzstore.js (100%) rename {src => src2}/lib/scraper/vmovee.js.disabled (100%) rename {src => src2}/lib/scraper/xemovie.js (100%) rename {src => src2}/lib/storage/VideoProgress.js (100%) rename {src => src2}/lib/storage/base.js (100%) rename {src => src2}/lib/util/unpacker.js (100%) rename {src => src2}/views/Movie.css (100%) rename {src => src2}/views/Movie.js (100%) rename {src => src2}/views/Search.css (100%) rename {src => src2}/views/Search.js (100%) create mode 100644 tsconfig.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..8e700e4d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.eol": "\n", + "editor.detectIndentation": false, + "editor.formatOnSave": true +} \ No newline at end of file diff --git a/craco.config.js b/craco.config.js new file mode 100644 index 00000000..c9520063 --- /dev/null +++ b/craco.config.js @@ -0,0 +1,11 @@ +const path = require(`path`); + +module.exports = { + webpack: { + alias: { + "@": path.resolve(__dirname, "src/"), + "@components": path.resolve(__dirname, "src/components"), + "@scrapers": path.resolve(__dirname, "src/scrapers"), + }, + }, +}; diff --git a/package.json b/package.json index 3571c61e..5554eecf 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "homepage": "https://movie.squeezebox.dev", "dependencies": { + "@craco/craco": "^6.4.3", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", @@ -19,10 +20,9 @@ "web-vitals": "^1.0.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" + "start": "craco start", + "build": "craco build", + "test": "craco test" }, "eslintConfig": { "extends": [ @@ -41,5 +41,13 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@types/jest": "^27.4.0", + "@types/node": "^17.0.15", + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.11", + "@types/react-router-dom": "^5.3.3", + "typescript": "^4.5.5" } } diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 00000000..a0a14ac1 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,9 @@ +import './index.css'; + +function App() { + return ( +

Hello world

+ ); +} + +export default App; diff --git a/src/index.css b/src/index.css index 53c6a1a5..d98d4f33 100644 --- a/src/index.css +++ b/src/index.css @@ -1,58 +1,5 @@ -:root { - --theme-color: #E880C5; - --theme-color-text: var(--theme-color); - - --failed: #d85b66; - - --body: #16171D; - --card: #22232A; - - --text: white; - --text-secondary: #BCBECB; - --text-tertiary: #585A67; - - --content: #36363e; - --content-hover: #3C3D44; - - --button: #A73B83; - --button-hover: #9C3179; - --button-active: #8b286a; - --button-text: var(--text); - - --choice: #2E2F37; - --choice-hover: #45464D; - --choice-active: #45464D; - - --source-headings: #5b5c63; -} -/* @media (prefers-color-scheme: light) { - :root { - --theme-color: #457461; - - --body: white; - --card: #f8f9fa; - - --content: #eee; - --content-hover: #e7e7e7; - - --text: #333; - --text-secondary: #616161; - --text-tertiary: #aaa; - - --button: #457461; - --button-hover: #4e836e; - --button-active: #437a64; - --button-text: white; - - --choice: var(--content); - --choice-hover: var(--content-hover); - --choice-active: var(--content-hover); - } -} */ - body, html { margin: 0; - background-color: var(--body); min-height: 100vh; } diff --git a/src/index.js b/src/index.tsx similarity index 100% rename from src/index.js rename to src/index.tsx diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts new file mode 100644 index 00000000..ece12df6 --- /dev/null +++ b/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/scrapers/README.md b/src/scrapers/README.md new file mode 100644 index 00000000..0684eef4 --- /dev/null +++ b/src/scrapers/README.md @@ -0,0 +1,3 @@ +# about scrapers + +TODO - put stuff here later diff --git a/src/scrapers/index.ts b/src/scrapers/index.ts new file mode 100644 index 00000000..d458898b --- /dev/null +++ b/src/scrapers/index.ts @@ -0,0 +1,6 @@ +import { theFlixScraper } from "./list/theflix"; +import { MWMediaProvider } from "./scrapers"; + +export const mediaProviders: MWMediaProvider[] = [ + theFlixScraper +] diff --git a/src/scrapers/list/theflix/index.ts b/src/scrapers/list/theflix/index.ts new file mode 100644 index 00000000..c903bfd8 --- /dev/null +++ b/src/scrapers/list/theflix/index.ts @@ -0,0 +1,15 @@ +import { MWMedia, MWMediaProvider, MWMediaType, MWPortableMedia, MWQuery } from "../../scrapers"; + +export const theFlixScraper: MWMediaProvider = { + id: "theflix", + type: MWMediaType.MOVIE, + getMediaFromPortable(media: MWPortableMedia): MWMedia { + return { + ...media, + title: "title here" + } + }, + searchForMedia(query: MWQuery): MWMedia[] { + return []; + }, +} diff --git a/src/scrapers/scrapers.ts b/src/scrapers/scrapers.ts new file mode 100644 index 00000000..533e865b --- /dev/null +++ b/src/scrapers/scrapers.ts @@ -0,0 +1,26 @@ +export enum MWMediaType { + MOVIE = "movie", + SERIES = "series", +} + +export interface MWPortableMedia { + mediaId: string, + providerId: string, +} + +export interface MWMedia extends MWPortableMedia { + title: string, +} + +export interface MWQuery { + searchQuery: string, + type: MWMediaType, +} + +export interface MWMediaProvider { + id: string, // id of provider, must be unique + type: MWMediaType, + + getMediaFromPortable(media: MWPortableMedia): MWMedia, + searchForMedia(query: MWQuery): MWMedia[], +} diff --git a/src/App.js b/src2/App.js similarity index 100% rename from src/App.js rename to src2/App.js diff --git a/src/assets/down-arrow.svg b/src2/assets/down-arrow.svg similarity index 100% rename from src/assets/down-arrow.svg rename to src2/assets/down-arrow.svg diff --git a/src/components/Arrow.css b/src2/components/Arrow.css similarity index 100% rename from src/components/Arrow.css rename to src2/components/Arrow.css diff --git a/src/components/Arrow.js b/src2/components/Arrow.js similarity index 100% rename from src/components/Arrow.js rename to src2/components/Arrow.js diff --git a/src/components/Card.css b/src2/components/Card.css similarity index 100% rename from src/components/Card.css rename to src2/components/Card.css diff --git a/src/components/Card.js b/src2/components/Card.js similarity index 100% rename from src/components/Card.js rename to src2/components/Card.js diff --git a/src/components/EpisodeSelector.css b/src2/components/EpisodeSelector.css similarity index 100% rename from src/components/EpisodeSelector.css rename to src2/components/EpisodeSelector.css diff --git a/src/components/EpisodeSelector.js b/src2/components/EpisodeSelector.js similarity index 100% rename from src/components/EpisodeSelector.js rename to src2/components/EpisodeSelector.js diff --git a/src/components/ErrorBanner.css b/src2/components/ErrorBanner.css similarity index 100% rename from src/components/ErrorBanner.css rename to src2/components/ErrorBanner.css diff --git a/src/components/ErrorBanner.js b/src2/components/ErrorBanner.js similarity index 100% rename from src/components/ErrorBanner.js rename to src2/components/ErrorBanner.js diff --git a/src/components/InputBox.css b/src2/components/InputBox.css similarity index 100% rename from src/components/InputBox.css rename to src2/components/InputBox.css diff --git a/src/components/InputBox.js b/src2/components/InputBox.js similarity index 100% rename from src/components/InputBox.js rename to src2/components/InputBox.js diff --git a/src/components/MovieRow.css b/src2/components/MovieRow.css similarity index 100% rename from src/components/MovieRow.css rename to src2/components/MovieRow.css diff --git a/src/components/MovieRow.js b/src2/components/MovieRow.js similarity index 100% rename from src/components/MovieRow.js rename to src2/components/MovieRow.js diff --git a/src/components/NumberSelector.css b/src2/components/NumberSelector.css similarity index 100% rename from src/components/NumberSelector.css rename to src2/components/NumberSelector.css diff --git a/src/components/NumberSelector.js b/src2/components/NumberSelector.js similarity index 100% rename from src/components/NumberSelector.js rename to src2/components/NumberSelector.js diff --git a/src/components/PercentageOverlay.css b/src2/components/PercentageOverlay.css similarity index 100% rename from src/components/PercentageOverlay.css rename to src2/components/PercentageOverlay.css diff --git a/src/components/PercentageOverlay.js b/src2/components/PercentageOverlay.js similarity index 100% rename from src/components/PercentageOverlay.js rename to src2/components/PercentageOverlay.js diff --git a/src/components/Progress.css b/src2/components/Progress.css similarity index 100% rename from src/components/Progress.css rename to src2/components/Progress.css diff --git a/src/components/Progress.js b/src2/components/Progress.js similarity index 100% rename from src/components/Progress.js rename to src2/components/Progress.js diff --git a/src/components/SelectBox.css b/src2/components/SelectBox.css similarity index 100% rename from src/components/SelectBox.css rename to src2/components/SelectBox.css diff --git a/src/components/SelectBox.js b/src2/components/SelectBox.js similarity index 100% rename from src/components/SelectBox.js rename to src2/components/SelectBox.js diff --git a/src/components/Title.css b/src2/components/Title.css similarity index 100% rename from src/components/Title.css rename to src2/components/Title.css diff --git a/src/components/Title.js b/src2/components/Title.js similarity index 100% rename from src/components/Title.js rename to src2/components/Title.js diff --git a/src/components/TypeSelector.css b/src2/components/TypeSelector.css similarity index 100% rename from src/components/TypeSelector.css rename to src2/components/TypeSelector.css diff --git a/src/components/TypeSelector.js b/src2/components/TypeSelector.js similarity index 100% rename from src/components/TypeSelector.js rename to src2/components/TypeSelector.js diff --git a/src/components/VideoElement.css b/src2/components/VideoElement.css similarity index 100% rename from src/components/VideoElement.css rename to src2/components/VideoElement.css diff --git a/src/components/VideoElement.js b/src2/components/VideoElement.js similarity index 100% rename from src/components/VideoElement.js rename to src2/components/VideoElement.js diff --git a/src/components/VideoPlaceholder.css b/src2/components/VideoPlaceholder.css similarity index 100% rename from src/components/VideoPlaceholder.css rename to src2/components/VideoPlaceholder.css diff --git a/src/components/VideoPlaceholder.js b/src2/components/VideoPlaceholder.js similarity index 100% rename from src/components/VideoPlaceholder.js rename to src2/components/VideoPlaceholder.js diff --git a/src/hooks/useMovie.js b/src2/hooks/useMovie.js similarity index 100% rename from src/hooks/useMovie.js rename to src2/hooks/useMovie.js diff --git a/src/hooks/useWindowSize.js b/src2/hooks/useWindowSize.js similarity index 100% rename from src/hooks/useWindowSize.js rename to src2/hooks/useWindowSize.js diff --git a/src2/index.css b/src2/index.css new file mode 100644 index 00000000..53c6a1a5 --- /dev/null +++ b/src2/index.css @@ -0,0 +1,70 @@ +:root { + --theme-color: #E880C5; + --theme-color-text: var(--theme-color); + + --failed: #d85b66; + + --body: #16171D; + --card: #22232A; + + --text: white; + --text-secondary: #BCBECB; + --text-tertiary: #585A67; + + --content: #36363e; + --content-hover: #3C3D44; + + --button: #A73B83; + --button-hover: #9C3179; + --button-active: #8b286a; + --button-text: var(--text); + + --choice: #2E2F37; + --choice-hover: #45464D; + --choice-active: #45464D; + + --source-headings: #5b5c63; +} +/* @media (prefers-color-scheme: light) { + :root { + --theme-color: #457461; + + --body: white; + --card: #f8f9fa; + + --content: #eee; + --content-hover: #e7e7e7; + + --text: #333; + --text-secondary: #616161; + --text-tertiary: #aaa; + + --button: #457461; + --button-hover: #4e836e; + --button-active: #437a64; + --button-text: white; + + --choice: var(--content); + --choice-hover: var(--content-hover); + --choice-active: var(--content-hover); + } +} */ + +body, html { + margin: 0; + background-color: var(--body); + min-height: 100vh; +} + +body, html, input, button { + font-family: 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 1rem; +} + +*:focus { + outline: none; +} \ No newline at end of file diff --git a/src2/index.js b/src2/index.js new file mode 100644 index 00000000..ef47def1 --- /dev/null +++ b/src2/index.js @@ -0,0 +1,14 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { HashRouter } from 'react-router-dom'; +import './index.css'; +import App from './App'; + +ReactDOM.render( + + + + + , + document.getElementById('root') +); diff --git a/src/lib/index.js b/src2/lib/index.js similarity index 100% rename from src/lib/index.js rename to src2/lib/index.js diff --git a/src/lib/scraper/gdriveplayer.js.disabled b/src2/lib/scraper/gdriveplayer.js.disabled similarity index 100% rename from src/lib/scraper/gdriveplayer.js.disabled rename to src2/lib/scraper/gdriveplayer.js.disabled diff --git a/src/lib/scraper/gomostream.js.disabled b/src2/lib/scraper/gomostream.js.disabled similarity index 100% rename from src/lib/scraper/gomostream.js.disabled rename to src2/lib/scraper/gomostream.js.disabled diff --git a/src/lib/scraper/lookmovie.js b/src2/lib/scraper/lookmovie.js similarity index 100% rename from src/lib/scraper/lookmovie.js rename to src2/lib/scraper/lookmovie.js diff --git a/src/lib/scraper/theflix.js b/src2/lib/scraper/theflix.js similarity index 100% rename from src/lib/scraper/theflix.js rename to src2/lib/scraper/theflix.js diff --git a/src/lib/scraper/vidzstore.js b/src2/lib/scraper/vidzstore.js similarity index 100% rename from src/lib/scraper/vidzstore.js rename to src2/lib/scraper/vidzstore.js diff --git a/src/lib/scraper/vmovee.js.disabled b/src2/lib/scraper/vmovee.js.disabled similarity index 100% rename from src/lib/scraper/vmovee.js.disabled rename to src2/lib/scraper/vmovee.js.disabled diff --git a/src/lib/scraper/xemovie.js b/src2/lib/scraper/xemovie.js similarity index 100% rename from src/lib/scraper/xemovie.js rename to src2/lib/scraper/xemovie.js diff --git a/src/lib/storage/VideoProgress.js b/src2/lib/storage/VideoProgress.js similarity index 100% rename from src/lib/storage/VideoProgress.js rename to src2/lib/storage/VideoProgress.js diff --git a/src/lib/storage/base.js b/src2/lib/storage/base.js similarity index 100% rename from src/lib/storage/base.js rename to src2/lib/storage/base.js diff --git a/src/lib/util/unpacker.js b/src2/lib/util/unpacker.js similarity index 100% rename from src/lib/util/unpacker.js rename to src2/lib/util/unpacker.js diff --git a/src/views/Movie.css b/src2/views/Movie.css similarity index 100% rename from src/views/Movie.css rename to src2/views/Movie.css diff --git a/src/views/Movie.js b/src2/views/Movie.js similarity index 100% rename from src/views/Movie.js rename to src2/views/Movie.js diff --git a/src/views/Search.css b/src2/views/Search.css similarity index 100% rename from src/views/Search.css rename to src2/views/Search.css diff --git a/src/views/Search.js b/src2/views/Search.js similarity index 100% rename from src/views/Search.js rename to src2/views/Search.js diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..16fff78a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": [ + "src" + ] +} diff --git a/yarn.lock b/yarn.lock index 791579d6..41cc8719 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1216,6 +1216,30 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@craco/craco@^6.4.3": + version "6.4.3" + resolved "https://registry.yarnpkg.com/@craco/craco/-/craco-6.4.3.tgz#784395b6ebab764056550a2860494d24c3abd44e" + integrity sha512-RzkXYmNzRCGUyG7mM+IUMM+nvrpSfA34352sPSGQN76UivAmCAht3sI4v5JKgzO05oUK9Zwi6abCKD7iKXI8hQ== + dependencies: + cosmiconfig "^7.0.1" + cosmiconfig-typescript-loader "^1.0.0" + cross-spawn "^7.0.0" + lodash "^4.17.15" + semver "^7.3.2" + webpack-merge "^4.2.2" + +"@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" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" @@ -1717,6 +1741,26 @@ resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + +"@tsconfig/node14@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + "@types/aria-query@^4.2.0": version "4.2.2" resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz" @@ -1788,6 +1832,11 @@ dependencies: "@types/node" "*" +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + "@types/html-minifier-terser@^5.0.0": version "5.1.2" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz" @@ -1820,6 +1869,14 @@ jest-diff "^26.0.0" pretty-format "^26.0.0" +"@types/jest@^27.4.0": + version "27.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" + integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== + dependencies: + jest-diff "^27.0.0" + pretty-format "^27.0.0" + "@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7": version "7.0.8" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz" @@ -1835,6 +1892,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz" integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== +"@types/node@^17.0.15": + version "17.0.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.15.tgz#97779282c09c09577120a2162e71d8380003590a" + integrity sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" @@ -1850,11 +1912,49 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz" integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== +"@types/prop-types@*": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + "@types/q@^1.5.1": version "1.5.5" resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/react-dom@^17.0.11": + version "17.0.11" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" + integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.18" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" + integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.39": + version "17.0.39" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.39.tgz#d0f4cde092502a6db00a1cded6e6bf2abb7633ce" + integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz" @@ -1862,6 +1962,11 @@ dependencies: "@types/node" "*" +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz" @@ -2216,6 +2321,11 @@ acorn-walk@^7.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^6.4.1: version "6.4.2" resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" @@ -2231,6 +2341,11 @@ acorn@^8.2.4: resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.4.1: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz" @@ -2326,7 +2441,7 @@ ansi-regex@^4.1.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: +ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -2345,6 +2460,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" @@ -2366,6 +2486,11 @@ aproba@^1.1.1: resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" @@ -3561,6 +3686,14 @@ core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cosmiconfig-typescript-loader@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.4.tgz#2903d53aec07c8079c5ff4aa1b10bd5d2fbdff81" + integrity sha512-ulv2dvwurP/MZAIthXm69bO7EzzIUThZ6RJ1qXhdlXM6to3F+IKBL/17EnhYSG52A5N1KcAUu66vSG/3/77KrA== + dependencies: + cosmiconfig "^7" + ts-node "^10.4.0" + cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" @@ -3582,6 +3715,17 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" +cosmiconfig@^7, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + 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" + cosmiconfig@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" @@ -3624,6 +3768,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -3907,6 +4056,11 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +csstype@^3.0.2: + version "3.0.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" @@ -4093,6 +4247,16 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.5.0: + version "27.5.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.0.tgz#a8ac0cb742b17d6f30a6c43e233893a2402c0729" + integrity sha512-ZsOBWnhXiH+Zn0DcBNX/tiQsqrREHs/6oQsEVy2VJJjrTblykPima11pyHMSA/7PGmD+fwclTnKVKL/qtNREDQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" @@ -6305,6 +6469,16 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" +jest-diff@^27.0.0: + version "27.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.0.tgz#34dc608a3b9159df178dd480b6d835b5e6b92082" + integrity sha512-zztvHDCq/QcAVv+o6rts0reupSOxyrX+KLQEOMWCW2trZgcBFgp/oTK7hJCGpXvEIqKrQzyQlaPKn9W04+IMQg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.0" + jest-get-type "^27.5.0" + pretty-format "^27.5.0" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz" @@ -6353,6 +6527,11 @@ jest-get-type@^26.3.0: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== +jest-get-type@^27.5.0: + version "27.5.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.0.tgz#861c24aa1b176be83c902292cb9618d580cac8a7" + integrity sha512-Vp6O8a52M/dahXRG/E0EJuWQROps2mDQ0sJYPgO8HskhdLwj9ajgngy2OAqZgV6e/RcU67WUHq6TgfvJb8flbA== + jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz" @@ -7040,6 +7219,11 @@ make-dir@^3.0.0, make-dir@^3.0.2: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + makeerror@1.0.x: version "1.0.11" resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" @@ -8772,6 +8956,15 @@ pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" +pretty-format@^27.0.0, pretty-format@^27.5.0: + version "27.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.0.tgz#71e1af7a4b587d259fa4668dcd3e94af077767cb" + integrity sha512-xEi6BRPZ+J1AIS4BAtFC/+rh5jXlXObGZjx5+OSpM95vR/PGla78bFVHMy5GdZjP9wk3AHAMHROXq/r69zXltw== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" @@ -10587,6 +10780,24 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-node@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" + integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + yn "3.1.1" + ts-pnp@1.2.0, ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" @@ -10697,6 +10908,11 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^4.5.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" @@ -11064,6 +11280,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.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" @@ -11472,6 +11695,11 @@ yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"