diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..8a67279 --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +# Change the IP address to that of your ESP device to enable local development of the UI. +# Remember to also enable CORS in platformio.ini before uploading the code to the device. +# REACT_APP_ENDPOINT_ROOT=http://192.168.0.20/rest/ diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..f3f6c0d --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +REACT_APP_ENDPOINT_ROOT=/rest/ +GENERATE_SOURCEMAP=true diff --git a/.gitignore b/.gitignore index a67eba2..2893ada 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,6 @@ typings/ # dotenv environment variables file .env + +# local build settings +local.settings \ No newline at end of file diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..ac871d8 --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,36 @@ +const ManifestPlugin = require('webpack-manifest-plugin'); +const WorkboxWebpackPlugin = require('workbox-webpack-plugin'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const CompressionPlugin = require('compression-webpack-plugin'); +// const ProgmemGenerator = require('./progmem-generator.js'); + +const path = require('path'); +const fs = require('fs'); + +module.exports = function override(config, env) { + if (env === "production") { + // rename the ouput file, we need it's path to be short, for SPIFFS + config.output.filename = 'js/[id].[chunkhash:4].js'; + config.output.chunkFilename = 'js/[id].[chunkhash:4].js'; + // shorten css filenames + const miniCssExtractPlugin = config.plugins.find((plugin) => plugin instanceof MiniCssExtractPlugin); + miniCssExtractPlugin.options.filename = "css/[id].[contenthash:4].css"; + miniCssExtractPlugin.options.chunkFilename = "css/[id].[contenthash:4].c.css"; + + // take out the manifest and service worker plugins + config.plugins = config.plugins.filter(plugin => !(plugin instanceof ManifestPlugin)); + config.plugins = config.plugins.filter(plugin => !(plugin instanceof WorkboxWebpackPlugin.GenerateSW)); + + // build progmem data files + // config.plugins.push(new ProgmemGenerator({ outputPath: "../lib/framework/WWWData.h", bytesPerLine: 20 })); + + // add compression plugin, compress javascript + config.plugins.push(new CompressionPlugin({ + filename: "[path].gz[query]", + algorithm: "gzip", + test: /\.(css|js|html|woff2|json|map)$/, + deleteOriginalAssets: true + })); + } + return config; +} diff --git a/local.default.settings b/local.default.settings new file mode 100644 index 0000000..ce5aab9 --- /dev/null +++ b/local.default.settings @@ -0,0 +1,2 @@ +REACT_APP_ENDPOINT_ROOT=http://192.168.1.5/rest/ +SERVER_BUILD_PATH=/build \ No newline at end of file diff --git a/package.json b/package.json index 40ed2c8..65ad576 100644 --- a/package.json +++ b/package.json @@ -4,24 +4,27 @@ "private": true, "dependencies": { "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.3.2", - "@testing-library/user-event": "^7.1.2", + "@testing-library/react": "^9.4.0", + "@testing-library/user-event": "^8.0.3", + "compression-webpack-plugin": "^3.1.0", "react": "^16.12.0", "react-dom": "^16.12.0", "react-router-dom": "^5.1.2", - "react-router-hash-link": "^1.2.2", "react-scripts": "3.3.0", - "uikit": "^3.2.4" + "uikit": "^3.2.7" }, "devDependencies": { "node-sass": "^4.13.0", - "http-serve": "^1.0.1" + "http-serve": "^1.0.1", + "react-app-rewired": "^2.1.5" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" + "start": "react-app-rewired start", + "build": "react-app-rewired build && yarn postinstall", + "test": "react-app-rewired test --env=jsdom", + "eject": "react-scripts eject", + "serve": "http-serve ./build --gzip", + "postinstall": "cp -r ./build/* $INIT_CWD/../platformio/EspJsonWs/data" }, "eslintConfig": { "extends": "react-app" diff --git a/src/style/index.scss b/src/style/index.scss index e911d4e..0ad1e76 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -20,4 +20,6 @@ $global-link-color: #DA7D02; @import "../../node_modules/uikit/src/scss/components/padding.scss"; @import "../../node_modules/uikit/src/scss/components/nav.scss"; @import "../../node_modules/uikit/src/scss/components/button.scss"; -@import "../../node_modules/uikit/src/scss/components/form.scss"; \ No newline at end of file +@import "../../node_modules/uikit/src/scss/components/form.scss"; +@import "../../node_modules/uikit/src/scss/components/icon.scss"; +@import "../../node_modules/uikit/src/scss/components/table.scss"; \ No newline at end of file diff --git a/src/views/home/home.constants.js b/src/views/home/home.constants.js new file mode 100644 index 0000000..0aaa106 --- /dev/null +++ b/src/views/home/home.constants.js @@ -0,0 +1,30 @@ +export const AP_LIST_POPULATION_ERROR = 'Access Point list cannot be populated!' +export const AP_LIST_RETRY_ERROR = 'Polling will retry in ' +export const POLL_TIMEOUT = 300 +// From ESP32 documentation: +// https://github.com/espressif/arduino-esp32/blob/master/tools/sdk/include/esp32/esp_wifi_types.h +export const WIFI_AUTH_OPEN = 0 +export const WIFI_AUTH_WEP = 1 +export const WIFI_AUTH_WPA_PSK = 2 +export const WIFI_AUTH_WPA2_PSK = 3 +export const WIFI_AUTH_WPA_WPA2_PSK = 4 +export const WIFI_AUTH_WPA2_ENTERPRISE = 5 +// Translate to readable strings +export const getEncryptionType = encryptionType => { + switch (encryptionType) { + case (WIFI_AUTH_OPEN): + return "Open" + case (WIFI_AUTH_WEP): + return "WEP" + case (WIFI_AUTH_WPA_PSK): + return "WPA_PSK" + case (WIFI_AUTH_WPA2_PSK): + return "WPA2_PSK" + case (WIFI_AUTH_WPA_WPA2_PSK): + return "WPA_WPA2_PSK" + case (WIFI_AUTH_WPA2_ENTERPRISE): + return "WPA2_ENTERPRISE" + default: + return "Undefined" + } +} \ No newline at end of file diff --git a/src/views/home/home.js b/src/views/home/home.js index aed8bf3..0a1c31b 100644 --- a/src/views/home/home.js +++ b/src/views/home/home.js @@ -1,40 +1,237 @@ -import React from 'react' +import React, { Component } from 'react' import './home.scss' -import { HashLink } from 'react-router-hash-link' - -function Home() { - return ( -
-
-
-

Welcome!

-

I'm your new ESP8266 pal. I'm so happy to help you with the React implementation. - Also using Skeleton CSS boilerplate to look as awesome as you can see now.
- Happy coding! -

- Get started! -
-
-
-
-

WiFi Settings

-
-
- - -
-
- - -
-
- - +import { + AP_LIST_POPULATION_ERROR, + AP_LIST_RETRY_ERROR, + POLL_TIMEOUT, + getEncryptionType } from './home.constants' + +let polls = 0 +class Home extends Component { + constructor(props){ + super(props) + this.state = { + apList: { + data: null, + fetched: false, + requested: false, + }, + inputs: { + password: null, + ssid: null, + }, + scan: { + done: false, + requested: false, + }, + wifiSetup: { + fetched: false, + received: false, + requested: false, + status: null, + }, + } + + this.getStartedButton = React.createRef() + + this.callWifiScan = this.callWifiScan.bind(this) + this.callWifiList = this.callWifiList.bind(this) + this.callWifiSetup = this.callWifiSetup.bind(this) + } + + callWifiScan(event) { + event.preventDefault() + console.log("SCAN STARTED!") + this.setState(prevState => ({ + scan: { + ...prevState.scan, + requested: true, + done: false, + }, + })) + + fetch(`/api/v1/wifiscan`) + .then(() => { + console.log("SCAN OK!") + this.setState(prevState => ({ + scan: { + ...prevState.scan, + requested: true, + done: true, + }, + })) + this.callWifiList() + }) + } + + callWifiList() { + console.log("LIST STARTED!") + this.setState(prevState => ({ + apList: { + ...prevState.apList, + requested: true, + }, + })) + + fetch(`/api/v1/wifilist`) + .then(res => { + if(res.status == 202 && polls < 10) { + ++polls + setTimeout(this.callWifiList, POLL_TIMEOUT) + throw Error(AP_LIST_RETRY_ERROR + POLL_TIMEOUT) + } + else if (res.status == 200) { + return res.json() + } + else { + throw Error(AP_LIST_POPULATION_ERROR) + } + }) + .then(json => { + console.log("LIST OK!") + this.setState(prevState => ({ + apList: { + ...prevState.apList, + fetched: true, + data: json, + }, + })) + }) + } + + callWifiSetup(event) { + event.preventDefault() + this.setState(prevState => ({ + wifi: { + ...prevState.wifi, + fetched: false, + received: false, + sent: true, + status: null, + } + })) + + fetch('/api/v1/wifisetup', { + method: 'post', + headers: {'Content-Type':'application/json'}, + body: JSON.stringify({ + "password": this.state.inputs.password, + "ssid": this.state.inputs.ssid, + }), + }) + .then(res => res.text()) + .then(res => { + this.setState(prevState => ({ + wifi: { + ...prevState.wifi, + fetched: true, + received: true, + sent: false, + status: res, + }, + })) + }) + } + + getApTable() { + return( + + + + + + + + {this.state.apList.data.networks.map((item, index) => { + const {ssid, rssi, encryption_type} = item + return ( + + + + + + )} + )} + +
SSIDSignal QualitySecure
this.setSsid(item)}>{ssid}{rssi}%{getEncryptionType(encryption_type)}
+ ) + } + + getSaveStatus() { + return( + {this.state.wifi.status} + ) + } + + setPassword(e) { + e.persist() + let value = e.target.value + if(e.target.value) { + this.setState(prevState => ({ + inputs: { ...prevState.inputs, password: value } + })) + } + } + + setSsid(item) { + let value + if(!item.ssid) { + item.persist() + value = item.target.value + } + else { + value = item.ssid + } + + if(item.ssid || item.target.value) { + this.setState(prevState => ({ + inputs: { ...prevState.inputs, ssid: value } + })) + } + } + + render() { + return ( +
+
+
+

Welcome!

+

I'm your new ESP8266 pal. I'm so happy to help you with the React implementation. + Also using Skeleton CSS boilerplate to look as awesome as you can see now.
+ Happy coding! +

+ Get started!
-
-
-
-
-)} + +
+
+

WiFi Settings

+
+ +
+ {this.state.scan.requested ? this.state.apList.fetched ? this.getApTable() : "Scanning..." : ""} +
+
+ + +
+
+ (?) + +
+
+ + +
+
+ {this.state.wifiSetup.requested ? Saving... : this.state.wifiSetup.fetched ? this.getSaveStatus() : ""} +
+
+
+
+ + ) + } +} export default Home \ No newline at end of file diff --git a/src/views/home/home.scss b/src/views/home/home.scss index 63fc029..0db3266 100644 --- a/src/views/home/home.scss +++ b/src/views/home/home.scss @@ -5,4 +5,8 @@ $cover-button-color-clicked: #00253F; .uk-cover-container { background-color: $cover-bgcolor; +} + +td u { + cursor: pointer; } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c28c7fc..7cbf787 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1291,7 +1291,7 @@ pretty-format "^24.0.0" redent "^3.0.0" -"@testing-library/react@^9.3.2": +"@testing-library/react@^9.4.0": version "9.4.0" resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-9.4.0.tgz#b021ac8cb987c8dc54c6841875f745bf9b2e88e5" integrity sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg== @@ -1300,10 +1300,10 @@ "@testing-library/dom" "^6.11.0" "@types/testing-library__react" "^9.1.2" -"@testing-library/user-event@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-7.1.2.tgz#3a71bb8a45a1e08b71a54c9efcee9927f3895e80" - integrity sha512-lDyCVxxgX5lrgCa75ELCfWcdEDyfisjqoDIM3YsghQ+lyViIac/qT67qabQ/HmoVxyikFKovjKwWdn3b/oKhZA== +"@testing-library/user-event@^8.0.3": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-8.0.3.tgz#c3e304d2692b797ff0e3ced53c0597d341bb868b" + integrity sha512-ALoIj6GzxN0UzFiudSwENy2yTD1xHDW+KtuOch5xuqRgQr0AxGB8z+EQBxT6zlWgAoLGN8hmYxTTGRoQSOZtlg== "@types/babel__core@^7.1.0": version "7.1.3" @@ -1338,11 +1338,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -1817,14 +1812,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" - integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1881,16 +1868,6 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" - integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== - array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -2654,14 +2631,6 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -2779,15 +2748,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - clone-deep@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" @@ -2842,19 +2802,12 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -2887,35 +2840,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -command-line-args@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" - integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== - dependencies: - array-back "^3.0.1" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-plugin@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/command-line-plugin/-/command-line-plugin-0.2.0.tgz#298e48e03c885ab7a9cc7375b02b2ac16e22e176" - integrity sha512-5tBsN832CF9wbQzyOfT4e9wk7bYJi1LVH99E3mcM5XwcbHsX6/3CzIhpfbtiedOw91eiQC2wwn0o/Rnws337vg== - dependencies: - array-back "^3.1.0" - load-module "^2.0.0" - reduce-flatten "^2.0.0" - -command-line-usage@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6" - integrity sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw== - dependencies: - array-back "^4.0.0" - chalk "^2.4.2" - table-layout "^1.0.0" - typical "^5.2.0" - commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -2960,6 +2884,18 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.40.0 < 2" +compression-webpack-plugin@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" + integrity sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.0.0" + neo-async "^2.5.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" + webpack-sources "^1.0.1" + compression@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" @@ -3497,7 +3433,7 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0, deep-extend@~0.6.0: +deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== @@ -4325,11 +4261,6 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-diff@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - fast-glob@^2.0.2: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -4462,13 +4393,6 @@ find-cache-dir@^3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== - dependencies: - array-back "^3.0.1" - find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4491,7 +4415,7 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4772,7 +4696,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@^7.1.6, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4784,7 +4708,7 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0, global-modules@^2.0.0: +global-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== @@ -4914,11 +4838,6 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" @@ -6482,13 +6401,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -load-module@^2.0.0, load-module@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/load-module/-/load-module-2.0.2.tgz#aa5c42404513c614246b9d7500fcbbb7d214bb89" - integrity sha512-RHboqi6iajIZVSmW6yz/gCW0rj3xgyrlUfB/qIjVpZ92TkjqsLiAA6rSATVbshw8sRKUfMDrepl3M1TVxS4+Aw== - dependencies: - array-back "^4.0.0" - loader-fs-cache@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" @@ -6539,11 +6451,6 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -7198,13 +7105,6 @@ node-sass@^4.13.0: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" -node-version-matches@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-version-matches/-/node-version-matches-1.0.1.tgz#16f30d5dddb32914151af77f45d6378f59070268" - integrity sha512-L1GRq9vkwvJkOdJynEph63N1gNdKRsThm6CkLn+8X9mFzmDv63iEMkZETVkcWVJowpqK72lNVuMZmeenhDoRhw== - dependencies: - semver "^5.6.0" - "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -8635,11 +8535,6 @@ pretty-format@^24.0.0, pretty-format@^24.3.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -printj@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.2.2.tgz#620eb0f07509394545fe82f97fe73baa8ad86992" - integrity sha512-dx9nIry0Z12s5oebhenDCFQjj/IMVotLMbvFP6OJ+C3v+EV30mtYoj6QtaulFo+DbWCbpEeaqcLYMh6CRuVjsA== - private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -8680,7 +8575,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.3" -prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -8866,6 +8761,13 @@ react-app-polyfill@^1.0.5: regenerator-runtime "^0.13.3" whatwg-fetch "^3.0.0" +react-app-rewired@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/react-app-rewired/-/react-app-rewired-2.1.5.tgz#592ec2eae5c3c5cd96c80930b5dc3f6c34da1dc6" + integrity sha512-Gr8KfCeL9/PTQs8Vvxc7v8wQ9vCFMnYPhcAkrMlzkLiMFXS+BgSwm11MoERjZm7dpA2WjTi+Pvbu/w7rujAV+A== + dependencies: + semver "^5.6.0" + react-dev-utils@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.0.0.tgz#bd2d16426c7e4cbfed1b46fb9e2ac98ec06fcdfa" @@ -8929,13 +8831,6 @@ react-router-dom@^5.1.2: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router-hash-link@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-router-hash-link/-/react-router-hash-link-1.2.2.tgz#7a0ad5e925d49596d19554de8bc6c554ce4f8099" - integrity sha512-LBthLVHdqPeKDVt3+cFRhy15Z7veikOvdKRZRfyBR2vjqIE7rxn+tKLjb6DOmLm6JpoQVemVDnxQ35RVnEHdQA== - dependencies: - prop-types "^15.6.0" - react-router@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" @@ -9133,21 +9028,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - -reduce-flatten@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-3.0.0.tgz#da477d68453fd9510f9a5fbef86e0fa04b4fd315" - integrity sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg== - -reduce-unique@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/reduce-unique/-/reduce-unique-2.0.1.tgz#fb34b90e89297c1e08d75dcf17e9a6443ea71081" - integrity sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA== - regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" @@ -9241,27 +9121,6 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renamer@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/renamer/-/renamer-1.1.4.tgz#c54ec6b24d9a9d200f7121dc6893ecb167ff451b" - integrity sha512-PN9lXmy/d76O4998vLX5lXopnWQ9khxRvUiOiuCgd3aBo6R3QowYEcpFNA/6w2PYRTx3XqzXyTLkTz4QyayTPA== - dependencies: - array-back "^4.0.0" - chalk "^2.4.2" - command-line-args "^5.1.1" - command-line-plugin "^0.2.0" - command-line-usage "^6.0.2" - fast-diff "^1.2.0" - glob "^7.1.5" - global-modules "^2.0.0" - load-module "^2.0.2" - node-version-matches "^1.0.1" - printj "^1.2.2" - reduce-flatten "^3.0.0" - reduce-unique "^2.0.1" - stream-read-all "^2.0.0" - typical "^5.2.0" - renderkid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" @@ -9290,15 +9149,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-in-file@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/replace-in-file/-/replace-in-file-5.0.2.tgz#bd26203b66dfb5b8112ae36a2d2cf928ea4cfe12" - integrity sha512-1Vc7Sbr/rTuHgU1PZuBb7tGsFx3D4NKdhV4BpEF2MuN/6+SoXcFtx+dZ1Zz+5Dq4k5x9js87Y+gXQYPTQ9ppkA== - dependencies: - chalk "^3.0.0" - glob "^7.1.6" - yargs "^15.0.2" - request-promise-core@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" @@ -9612,7 +9462,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0, schema-utils@^2.2.0, schema-utils@^2.5.0: +schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0, schema-utils@^2.2.0, schema-utils@^2.5.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== @@ -10076,11 +9926,6 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-read-all@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-read-all/-/stream-read-all-2.0.0.tgz#1c881392b717dff4bd884b9cf1a8c496a25beddf" - integrity sha512-M4kMuu/EmTTaO/Btsw4DTx6wEyTr+NcX8MIUuiTCzoUBc3twa/RA6OgpnSISjdvSOW5KBVStVggtMYnBzGn+CQ== - stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" @@ -10133,7 +9978,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -10294,13 +10139,6 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - svg-parser@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.2.tgz#d134cc396fa2681dc64f518330784e98bd801ec8" @@ -10330,16 +10168,6 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table-layout@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.0.tgz#fbca8a8c0e07e9de97591643f2d25a7e32008d25" - integrity sha512-o8V8u943KXX9gLNK/Ss1n6Nn4YhpyY/RRnp3hKv/zTA+SXYiQnzJQlR8CZQf1RqYqgkiWMJ54Mv+Vq9Kfzxz1A== - dependencies: - array-back "^3.1.0" - deep-extend "~0.6.0" - typical "^5.0.0" - wordwrapjs "^4.0.0" - table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -10631,16 +10459,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.0.0, typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - uglify-js@3.4.x: version "3.4.10" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" @@ -10657,10 +10475,10 @@ uglify-js@^3.1.4: commander "~2.20.3" source-map "~0.6.1" -uikit@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/uikit/-/uikit-3.2.4.tgz#d2f92eb75606486e562a0a125633ce0e0575e63f" - integrity sha512-vEQZHQ6+Z6MDFKWQqaybREnkm99ULZZONOTazbmzY7CkdSmuK6a7mtipa84/IbCfiJJ4o/pIL2tj/YY6cdNj4Q== +uikit@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/uikit/-/uikit-3.2.7.tgz#857837c818f3287733b1295d8572a67d848f2c55" + integrity sha512-/EGCJd7qGGwJsidyOxr+13DZwJtmkknbQhc+fk6LHOpNazG3nm0pPw++3/Bx3exL8gbwmFyS9alwLdKmoiourQ== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -11007,7 +10825,7 @@ webpack-manifest-plugin@2.2.0: object.entries "^1.1.0" tapable "^1.0.0" -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.0.1, webpack-sources@^1.1.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" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -11127,14 +10945,6 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -wordwrapjs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" - integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== - dependencies: - reduce-flatten "^2.0.0" - typical "^5.0.0" - workbox-background-sync@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" @@ -11301,15 +11111,6 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11408,14 +11209,6 @@ yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" @@ -11457,23 +11250,6 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" -yargs@^15.0.2: - version "15.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.0.2.tgz#4248bf218ef050385c4f7e14ebdf425653d13bd3" - integrity sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^16.1.0" - yargs@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"