diff --git a/examples/react-typescript/package.json b/examples/react-typescript/package.json index 50413a7c..c4d45298 100644 --- a/examples/react-typescript/package.json +++ b/examples/react-typescript/package.json @@ -3,23 +3,19 @@ "version": "0.4.0", "private": true, "scripts": { - "start": "webpack-spa start", - "prod": "webpack-spa build" + "start": "webpack-react start", + "build": "webpack-react build" }, "dependencies": { - "react": "16.7.0", - "react-dom": "16.7.0" + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "@types/node": "11.13.2", - "@types/react": "16.8.13", - "@types/react-dom": "16.8.3", - "@zero-scripts/extension.webpack-babel.react": "^0.4.0", - "@zero-scripts/extension.webpack-css": "^0.4.0", - "@zero-scripts/extension.webpack-eslint.react": "^0.4.0", - "@zero-scripts/extension.webpack-pwa": "^0.4.0", - "@zero-scripts/preset.webpack-spa": "^0.4.0", - "fork-ts-checker-webpack-plugin": "1.0.0-alpha.10", - "typescript": "3.4.2" + "@types/node": "12.0.0", + "@types/react": "16.8.16", + "@types/react-dom": "16.8.4", + "@zero-scripts/preset.webpack-spa.react": "^0.4.0", + "fork-ts-checker-webpack-plugin": "1.3.0", + "typescript": "3.4.5" } } diff --git a/examples/react/package.json b/examples/react/package.json index be58079a..e4daec76 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -3,18 +3,14 @@ "version": "0.4.0", "private": true, "scripts": { - "start": "webpack-spa start", - "build": "webpack-spa build" + "start": "webpack-react start", + "build": "webpack-react build" }, "dependencies": { "react": "16.8.6", "react-dom": "16.8.6" }, "devDependencies": { - "@zero-scripts/extension.webpack-babel.react": "^0.4.0", - "@zero-scripts/extension.webpack-css": "^0.4.0", - "@zero-scripts/extension.webpack-eslint.react": "^0.4.0", - "@zero-scripts/extension.webpack-pwa": "^0.4.0", - "@zero-scripts/preset.webpack-spa": "^0.4.0" + "@zero-scripts/preset.webpack-spa.react": "^0.4.0" } } diff --git a/package.json b/package.json index e95db22b..81091386 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "@types/get-port": "4.2.0", "@types/jest": "24.0.15", "@types/node": "12.6.2", - "@typescript-eslint/parser": "1.12.0", "@typescript-eslint/eslint-plugin": "1.12.0", + "@typescript-eslint/parser": "1.12.0", "babel-eslint": "10.0.2", "eslint": "6.0.1", "eslint-config-prettier": "6.0.0", diff --git a/packages/config.webpack/src/WebpackConfigOptions.ts b/packages/config.webpack/src/WebpackConfigOptions.ts index 48782775..4a877066 100644 --- a/packages/config.webpack/src/WebpackConfigOptions.ts +++ b/packages/config.webpack/src/WebpackConfigOptions.ts @@ -42,7 +42,7 @@ export class WebpackConfigOptions extends AbstractOptionsContainer { ], ['useTypescript'] ) - public readonly moduleFileExtensions: string[] = ['.json', '.js']; + public readonly moduleFileExtensions: string[] = ['.json', '.js', '.mjs']; @Option( ({ externalValue, defaultValue, dependencies: { useTypescript } }) => [ @@ -52,7 +52,7 @@ export class WebpackConfigOptions extends AbstractOptionsContainer { ], ['useTypescript'] ) - public readonly jsFileExtensions: string[] = ['js']; + public readonly jsFileExtensions: string[] = ['js', 'mjs']; @Option() public isDev: boolean = false; diff --git a/packages/core/src/AbstractPreset.ts b/packages/core/src/AbstractPreset.ts index fb55f3b7..92d7853e 100644 --- a/packages/core/src/AbstractPreset.ts +++ b/packages/core/src/AbstractPreset.ts @@ -12,8 +12,8 @@ export abstract class AbstractPreset { protected constructor(protected readonly standardExtensions: string[] = []) { Object.keys(readPackageJson(data => data.devDependencies) as object) - .concat(standardExtensions) .filter(packageIsExtension) + .concat(standardExtensions) .map((packageName: string) => { const ExtensionClass = (require(packageName) as { default: ExtensionConstructor; @@ -26,6 +26,7 @@ export abstract class AbstractPreset { if (newBaseClass) { const conflictExtension = this.extensions.find(ext => { const iterableBaseClass = getBaseClass(ext.constructor, 1); + return ( ext.constructor.name === extension.constructor.name || (iterableBaseClass !== undefined && diff --git a/packages/extension.webpack-babel/package.json b/packages/extension.webpack-babel/package.json index ddf6abda..ebd84971 100644 --- a/packages/extension.webpack-babel/package.json +++ b/packages/extension.webpack-babel/package.json @@ -31,7 +31,8 @@ "@babel/runtime": "7.5.4", "@zero-scripts/config.webpack": "^0.4.0", "@zero-scripts/core": "^0.4.0", - "babel-loader": "8.0.6" + "babel-loader": "8.0.6", + "core-js": "3.0.1" }, "devDependencies": { "@zero-scripts/ts-config": "^0.4.0" diff --git a/packages/extension.webpack-babel/src/WebpackBabelExtension.ts b/packages/extension.webpack-babel/src/WebpackBabelExtension.ts index be36d2f3..1ba83652 100644 --- a/packages/extension.webpack-babel/src/WebpackBabelExtension.ts +++ b/packages/extension.webpack-babel/src/WebpackBabelExtension.ts @@ -30,7 +30,16 @@ export class WebpackBabelExtension< babelrc: false, configFile: false, presets: [ - ['@babel/preset-env', { loose: true, modules: false, targets: { esmodules: true }, useBuiltIns: 'usage' }], + [ + '@babel/preset-env', + { + loose: true, + modules: false, + targets: { esmodules: true }, + useBuiltIns: 'usage', + corejs: '3' + } + ], useTypescript && '@babel/preset-typescript', ...presets ].filter(Boolean), diff --git a/packages/extension.webpack-eslint.react/package.json b/packages/extension.webpack-eslint.react/package.json index f645d180..2b44e6f1 100644 --- a/packages/extension.webpack-eslint.react/package.json +++ b/packages/extension.webpack-eslint.react/package.json @@ -22,10 +22,11 @@ "dependencies": { "@zero-scripts/core": "^0.4.0", "@zero-scripts/extension.webpack-eslint": "^0.4.0", - "eslint-config-react-app": "4.0.1", + "eslint-config-react-app-fresh": "4.0.2", "eslint-plugin-flowtype": "3.11.1", "eslint-plugin-jsx-a11y": "6.2.3", - "eslint-plugin-react": "7.14.2" + "eslint-plugin-react": "7.14.2", + "eslint-plugin-react-hooks": "1.7.0-alpha.0" }, "devDependencies": { "@zero-scripts/ts-config": "^0.4.0" diff --git a/packages/extension.webpack-eslint.react/src/WebpackEslintReactExtension.ts b/packages/extension.webpack-eslint.react/src/WebpackEslintReactExtension.ts index 68953774..17dec7a7 100644 --- a/packages/extension.webpack-eslint.react/src/WebpackEslintReactExtension.ts +++ b/packages/extension.webpack-eslint.react/src/WebpackEslintReactExtension.ts @@ -11,7 +11,8 @@ export class WebpackEslintReactExtension extends WebpackEslintExtension< WebpackEslintReactExtensionOptions > { public activate(preset: AbstractPreset): void { - this.optionsContainer.extends.push('eslint-config-react-app'); + // TODO: we can back to eslint-config-react-app, when it's released + this.optionsContainer.extends.push('eslint-config-react-app-fresh'); this.optionsContainer.parserOptions = { ...this.optionsContainer.parserOptions, diff --git a/packages/extension.webpack-spa/package.json b/packages/extension.webpack-spa/package.json index 9983b3cc..664619c3 100644 --- a/packages/extension.webpack-spa/package.json +++ b/packages/extension.webpack-spa/package.json @@ -24,13 +24,14 @@ "clean-webpack-plugin": "3.0.0", "copy-webpack-plugin": "5.0.3", "html-webpack-plugin": "4.0.0-beta.7", - "@artemir/friendly-errors-webpack-plugin": "1.8.0" + "@artemir/friendly-errors-webpack-plugin": "1.8.0", + "script-ext-html-webpack-plugin": "2.1.4" }, "devDependencies": { "@zero-scripts/ts-config": "^0.4.0", "@types/clean-webpack-plugin": "0.1.3", "@types/copy-webpack-plugin": "5.0.0", - "@types/html-webpack-plugin": "3.2.1" + "@types/script-ext-html-webpack-plugin": "2.1.0" }, "publishConfig": { "access": "public" diff --git a/packages/extension.webpack-spa/src/WebpackSpaExtension.ts b/packages/extension.webpack-spa/src/WebpackSpaExtension.ts index 74d8c21e..ddc5bec8 100644 --- a/packages/extension.webpack-spa/src/WebpackSpaExtension.ts +++ b/packages/extension.webpack-spa/src/WebpackSpaExtension.ts @@ -2,6 +2,7 @@ import { CleanWebpackPlugin } from 'clean-webpack-plugin'; import CopyWebpackPlugin from 'copy-webpack-plugin'; import _HtmlWebpackPlugin from 'html-webpack-plugin'; import path from 'path'; +import ScriptExtHtmlWebpackPlugin from 'script-ext-html-webpack-plugin'; // eslint-disable-next-line @typescript-eslint/no-explicit-any const HtmlWebpackPlugin = _HtmlWebpackPlugin as any; @@ -84,6 +85,12 @@ export class WebpackSpaExtension< : false }), InsertPos.Start + ) + .insertPlugin( + () => + new ScriptExtHtmlWebpackPlugin({ + module: /.*.m?js/gm + }) ); } } diff --git a/packages/preset.webpack-spa.react/LICENSE b/packages/preset.webpack-spa.react/LICENSE new file mode 100644 index 00000000..767854dc --- /dev/null +++ b/packages/preset.webpack-spa.react/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Artem Batura + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preset.webpack-spa.react/README.md b/packages/preset.webpack-spa.react/README.md new file mode 100644 index 00000000..e3aade49 --- /dev/null +++ b/packages/preset.webpack-spa.react/README.md @@ -0,0 +1 @@ +# @zero-scripts/preset.webpack-spa.react diff --git a/packages/preset.webpack-spa.react/bin/cli.js b/packages/preset.webpack-spa.react/bin/cli.js new file mode 100644 index 00000000..c7dd7d7e --- /dev/null +++ b/packages/preset.webpack-spa.react/bin/cli.js @@ -0,0 +1,12 @@ +#!/usr/bin/env node + +const { runCLI } = require('@zero-scripts/core'); +const { + WebpackSpaReactPreset +} = require('@zero-scripts/preset.webpack-spa.react'); + +process.on('unhandledRejection', err => { + throw err; +}); + +runCLI(WebpackSpaReactPreset); diff --git a/packages/preset.webpack-spa.react/package.json b/packages/preset.webpack-spa.react/package.json new file mode 100644 index 00000000..239a7e4b --- /dev/null +++ b/packages/preset.webpack-spa.react/package.json @@ -0,0 +1,49 @@ +{ + "name": "@zero-scripts/preset.webpack-spa.react", + "version": "0.4.0", + "author": { + "name": "Artem Batura", + "email": "artemir.q@gmail.com" + }, + "repository": { + "type": "git", + "url": "https://github.com/artemirq/zero-scripts" + }, + "bugs": { + "url": "https://github.com/artemirq/zero-scripts/issues" + }, + "license": "MIT", + "main": "build/index.js", + "typings": "build/index.d.ts", + "files": [ + "bin", + "build" + ], + "bin": { + "webpack-react": "./bin/cli.js" + }, + "dependencies": { + "@zero-scripts/core": "^0.4.0", + "@zero-scripts/extension.webpack-babel.react": "^0.4.0", + "@zero-scripts/extension.webpack-css": "^0.4.0", + "@zero-scripts/extension.webpack-eslint.react": "^0.4.0", + "@zero-scripts/extension.webpack-pwa": "^0.4.0", + "@zero-scripts/preset.webpack-spa": "^0.4.0" + }, + "devDependencies": { + "@zero-scripts/ts-config": "^0.4.0" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "zero-scripts", + "webpack", + "preset", + "@zero-scripts/preset.webpack-spa.react", + "babel", + "eslint", + "pwa", + "css" + ] +} diff --git a/packages/preset.webpack-spa.react/src/WebpackSpaReactPreset.ts b/packages/preset.webpack-spa.react/src/WebpackSpaReactPreset.ts new file mode 100644 index 00000000..0878a84f --- /dev/null +++ b/packages/preset.webpack-spa.react/src/WebpackSpaReactPreset.ts @@ -0,0 +1,13 @@ +import { WebpackPresetSpa } from '@zero-scripts/preset.webpack-spa'; + +export class WebpackSpaReactPreset extends WebpackPresetSpa { + constructor(defaultExtensions: string[] = []) { + super([ + '@zero-scripts/extension.webpack-babel.react', + '@zero-scripts/extension.webpack-css', + '@zero-scripts/extension.webpack-eslint.react', + '@zero-scripts/extension.webpack-pwa', + ...defaultExtensions + ]); + } +} diff --git a/packages/preset.webpack-spa.react/src/index.ts b/packages/preset.webpack-spa.react/src/index.ts new file mode 100644 index 00000000..e7b5da1e --- /dev/null +++ b/packages/preset.webpack-spa.react/src/index.ts @@ -0,0 +1 @@ +export * from './WebpackSpaReactPreset'; diff --git a/packages/preset.webpack-spa.react/tsconfig.json b/packages/preset.webpack-spa.react/tsconfig.json new file mode 100644 index 00000000..03c8551c --- /dev/null +++ b/packages/preset.webpack-spa.react/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "@zero-scripts/ts-config", + "compilerOptions": { + "rootDir": "src", + "outDir": "build" + }, + "references": [ + { + "path": "../core" + }, + { + "path": "../preset.webpack-spa" + }, + { "path": "../extension.webpack-babel.react" }, + { + "path": "../extension.webpack-css" + }, + { "path": "../extension.webpack-eslint.react" }, + { + "path": "../extension.webpack-pwa" + } + ] +} diff --git a/packages/preset.webpack-spa/bin/cli.js b/packages/preset.webpack-spa/bin/cli.js index f6b51140..92927dd9 100644 --- a/packages/preset.webpack-spa/bin/cli.js +++ b/packages/preset.webpack-spa/bin/cli.js @@ -1,8 +1,7 @@ #!/usr/bin/env node const { runCLI } = require('@zero-scripts/core'); - -const { WebpackPresetSpa } = require('../build'); +const { WebpackPresetSpa } = require('@zero-scripts/preset.webpack-spa'); process.on('unhandledRejection', err => { throw err; diff --git a/packages/preset.webpack-spa/src/WebpackPresetSpa.ts b/packages/preset.webpack-spa/src/WebpackPresetSpa.ts index 50eb0cf7..edf970c5 100644 --- a/packages/preset.webpack-spa/src/WebpackPresetSpa.ts +++ b/packages/preset.webpack-spa/src/WebpackPresetSpa.ts @@ -8,8 +8,8 @@ import { WebpackConfig } from '@zero-scripts/config.webpack'; import { AbstractPreset } from '@zero-scripts/core'; export class WebpackPresetSpa extends AbstractPreset { - public constructor() { - super(['@zero-scripts/extension.webpack-spa']); + public constructor(defaultExtensions: string[] = []) { + super(['@zero-scripts/extension.webpack-spa', ...defaultExtensions]); this.scripts.set('start', async ({ options }) => { process.env.NODE_ENV = 'development'; diff --git a/packages/tsconfig.json b/packages/tsconfig.json index fd52e9ec..52061004 100644 --- a/packages/tsconfig.json +++ b/packages/tsconfig.json @@ -4,6 +4,7 @@ { "path": "core" }, { "path": "config.webpack" }, { "path": "preset.webpack-spa" }, + { "path": "preset.webpack-spa.react" }, { "path": "extension.webpack-babel" }, { "path": "extension.webpack-babel.react" }, { "path": "extension.webpack-css" }, diff --git a/yarn.lock b/yarn.lock index 738f1b30..ac0cdbaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1854,13 +1854,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/clean-css@*": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.1.tgz#cb0134241ec5e6ede1b5344bc829668fd9871a8d" - integrity sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ== - dependencies: - "@types/node" "*" - "@types/clean-webpack-plugin@0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@types/clean-webpack-plugin/-/clean-webpack-plugin-0.1.3.tgz#79ba075bfae7b041185a9a6c8e0843fa5c8ec471" @@ -1915,24 +1908,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/html-minifier@*": - version "3.5.3" - resolved "https://registry.yarnpkg.com/@types/html-minifier/-/html-minifier-3.5.3.tgz#5276845138db2cebc54c789e0aaf87621a21e84f" - integrity sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - -"@types/html-webpack-plugin@3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.1.tgz#d3401407261ec82cb0fc380df28e57c94e851e4d" - integrity sha512-H8Pj1/Urx6qlUednZpNsveDVUsO63gQdu5DLaAf9t7iG0iyK0OS4XKFG5v1PSG1Nek9S65BrPrKt8DfEib02ng== - dependencies: - "@types/html-minifier" "*" - "@types/tapable" "*" - "@types/webpack" "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -1997,10 +1972,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.2.tgz#a5ccec6abb6060d5f20d256fb03ed743e9774999" integrity sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ== -"@types/node@11.13.2": - version "11.13.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.2.tgz#dc85dde46aa8740bb4aed54b8104250f8f849503" - integrity sha512-HOtU5KqROKT7qX/itKHuTtt5fV0iXbheQvrgbLNXFJQBY/eh+VS5vmmTAVlo3qIGMsypm0G4N1t2AXjy1ZicaQ== +"@types/node@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + integrity sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg== "@types/normalize-package-data@2.4.0", "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2024,10 +1999,10 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/react-dom@16.8.3": - version "16.8.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.3.tgz#6131b7b6158bc7ed1925a3374b88b7c00481f0cb" - integrity sha512-HF5hD5YR3z9Mn6kXcW1VKe4AQ04ZlZj1EdLBae61hzQ3eEWWxMgNLUbIxeZp40BnSxqY1eAYLsH9QopQcxzScA== +"@types/react-dom@16.8.4": + version "16.8.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.4.tgz#7fb7ba368857c7aa0f4e4511c4710ca2c5a12a88" + integrity sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA== dependencies: "@types/react" "*" @@ -2039,18 +2014,20 @@ "@types/prop-types" "*" csstype "^2.2.0" -"@types/react@16.8.13": - version "16.8.13" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.13.tgz#a82b15aad9ab91c40edca0d6889b7745ae24f053" - integrity sha512-otJ4ntMuHGrvm67CdDJMAls4WqotmAmW0g3HmWi9LCjSWXrxoXY/nHXrtmMfvPEEmGFNm6NdgMsJmnfH820Qaw== +"@types/react@16.8.16": + version "16.8.16" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.16.tgz#2bf980b4fb29cceeb01b2c139b3e185e57d3e08e" + integrity sha512-A0+6kS6zwPtvubOLiCJmZ8li5bm3wKIkoKV0h3RdMDOnCj9cYkUnj3bWbE03/lcICdQmwBmUfoFiHeNhbFiyHQ== dependencies: "@types/prop-types" "*" csstype "^2.2.0" -"@types/relateurl@*": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= +"@types/script-ext-html-webpack-plugin@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/script-ext-html-webpack-plugin/-/script-ext-html-webpack-plugin-2.1.0.tgz#c63bfd4c971deec5ddefb7aacbaf81d85a4cc0de" + integrity sha512-g0LeDovKXBrgTF8vgHF92DE9XLPSxob3D2Sov8SgSqWYrtT5sxMIgVXynLHNH85QJfsd44Al3x+R5ZNYlG3nbw== + dependencies: + "@types/webpack" "*" "@types/set-value@2.0.0": version "2.0.0" @@ -2108,18 +2085,7 @@ "@types/connect" "*" "@types/webpack" "*" -"@types/webpack@*", "@types/webpack@^4.4.31": - version "4.4.34" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.34.tgz#e5f88b9a795da11683b4ec4a07d1c2b023b19810" - integrity sha512-GnEBgjHsfO1M7DIQ0dAupSofcmDItE3Zsu3reK8SQpl/6N0rtUQxUmQzVFAS5ou/FGjsYKjXAWfItLZ0kNFTfQ== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - source-map "^0.6.0" - -"@types/webpack@4.4.35": +"@types/webpack@*", "@types/webpack@4.4.35", "@types/webpack@^4.4.31": version "4.4.35" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.35.tgz#b7088eb2d471d5645e5503d272783cafa753583b" integrity sha512-kf+mn/+CB4HsFb+Rz0QBRlo8nNC9LFhwqeK5xxhd3FEPRWJv6MFVnljKV5ARac56+syO8vIhq+nGt860+3wx7A== @@ -3205,9 +3171,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981: - version "1.0.30000983" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000983.tgz#ab3c70061ca2a3467182a10ac75109b199b647f8" - integrity sha512-/llD1bZ6qwNkt41AsvjsmwNOoA4ZB+8iqmf5LVyeSXuBODT/hAMFNVOh84NdUzoiYiSKqo5vQ3ZzeYHSi/olDQ== + version "1.0.30000984" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000984.tgz#dc96c3c469e9bcfc6ad5bdd24c77ec918ea76fe0" + integrity sha512-n5tKOjMaZ1fksIpQbjERuqCyfgec/m9pferkFQbLmWtqLUdmt12hNhjSwsmPdqeiG2NkITOQhr1VYIwWSAceiA== capture-exit@^2.0.0: version "2.0.0" @@ -3694,6 +3660,11 @@ core-js-pure@3.1.4: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== +core-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738" + integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew== + core-js@^2.4.0: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" @@ -4519,10 +4490,10 @@ eslint-config-prettier@6.0.0: dependencies: get-stdin "^6.0.0" -eslint-config-react-app@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-4.0.1.tgz#23fd0fd7ea89442ef1e733f66a7207674b23c8db" - integrity sha512-ZsaoXUIGsK8FCi/x4lT2bZR5mMkL/Kgj+Lnw690rbvvUr/uiwgFiD8FcfAhkCycm7Xte6O5lYz4EqMx2vX7jgw== +eslint-config-react-app-fresh@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-react-app-fresh/-/eslint-config-react-app-fresh-4.0.2.tgz#91a72818ca11c65b8baf7d11cfd2232c24f2656a" + integrity sha512-2HE2dZEzSPcauwfGFEWhY6sK3Cs+twRDSr8gOpK7SVgXdJDQAEP8RroIy+6IFICYTSeucF+l9NfOIIbTo+ZnVw== dependencies: confusing-browser-globals "^1.0.7" @@ -4617,6 +4588,11 @@ eslint-plugin-prettier@3.1.0: dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-react-hooks@1.7.0-alpha.0: + version "1.7.0-alpha.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0-alpha.0.tgz#de845eec326a9ba4a67d5022d5fb259d0ae04dd5" + integrity sha512-xLrDXO1xGoxGIlohexYvj1aai8SDAF17aUQIiAIF7qWNoC1B5UwzqjLffRKteR9J3UTDktXa8JRGr4LPROxqAQ== + eslint-plugin-react@7.14.2: version "7.14.2" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz#94c193cc77a899ac0ecbb2766fbef88685b7ecc1" @@ -4633,9 +4609,9 @@ eslint-plugin-react@7.14.2: resolve "^1.10.1" eslint-rule-docs@^1.1.5: - version "1.1.145" - resolved "https://registry.yarnpkg.com/eslint-rule-docs/-/eslint-rule-docs-1.1.145.tgz#17923e49f90299f05ab9623f0cad2d29dcdd96e8" - integrity sha512-R7dUUEl5qPipmo1hn/jQ+MpPTa/2euDaN0WdP9UH6gVTjwBcmPyp8cbbvbQXpzpCT8v8VmrSAH3nK++jUewx4g== + version "1.1.146" + resolved "https://registry.yarnpkg.com/eslint-rule-docs/-/eslint-rule-docs-1.1.146.tgz#828f5f7d3d6627fb83beecfad8abb910c813ea1b" + integrity sha512-ou8qWX+TRbHWgp4EMKOBkmfopl89gPOpzeoGOP2jUvi/oxlAQzyYjGarqoxSbhruptAkQ5b0fT+/siHidpnXlA== eslint-scope@3.7.1: version "3.7.1" @@ -5160,10 +5136,10 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@1.0.0-alpha.10: - version "1.0.0-alpha.10" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.0-alpha.10.tgz#c59b8879b861e41404040b3488fe9a5944c2e2f5" - integrity sha512-YAt5ZoG/V8VtFbyx9yJTW4Fsp7PnnOJ6eRnvQwIhQIAuo0E4STzrDi62LML4uSRh0KQ45aSDlXfcF+eSpFrmGg== +fork-ts-checker-webpack-plugin@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.3.0.tgz#1f5540467c5e971d2da69f76103354b3e6665d13" + integrity sha512-38nL1h4nRLrU/0oCAvjQY7ZJw0JpcsOOwSMZQSaMdVi2d+vXNcyvVg/n6q4mRcvGmVW2z2EIlj5ufaITk0M5bA== dependencies: babel-code-frame "^6.22.0" chalk "^2.4.1" @@ -5172,6 +5148,7 @@ fork-ts-checker-webpack-plugin@1.0.0-alpha.10: minimatch "^3.0.4" semver "^5.6.0" tapable "^1.0.0" + worker-rpc "^0.1.0" fork-ts-checker-webpack-plugin@~1.4.0: version "1.4.0" @@ -9611,16 +9588,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@16.7.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.7.0.tgz#a17b2a7ca89ee7390bc1ed5eb81783c7461748b8" - integrity sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.12.0" - react-dom@16.8.6: version "16.8.6" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" @@ -9636,16 +9603,6 @@ react-is@^16.8.1, react-is@^16.8.4: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== -react@16.7.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.7.0.tgz#b674ec396b0a5715873b350446f7ea0802ab6381" - integrity sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.12.0" - react@16.8.6: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" @@ -10189,14 +10146,6 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.12.0.tgz#8ab17699939c0aedc5a196a657743c496538647b" - integrity sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" @@ -10214,6 +10163,13 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +script-ext-html-webpack-plugin@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/script-ext-html-webpack-plugin/-/script-ext-html-webpack-plugin-2.1.4.tgz#7c309354e310bf78523e1b84ca96fd374ceb9880" + integrity sha512-7MAv3paAMfh9y2Rg+yQKp9jEGC5cEcmdge4EomRqri10qoczmliYEVPVNz0/5e9QQ202e05qDll9B8zZlY9N1g== + dependencies: + debug "^4.1.1" + scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" @@ -11204,10 +11160,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.2.tgz#9ed4e6475d906f589200193be056f5913caed481" - integrity sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A== +typescript@3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== typescript@3.5.3: version "3.5.3"