mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-03 01:18:43 +02:00
Fix/strategy constraints (#289)
* fix: only update editable strategies if index is less than 0 * fix: add wdyr * fix: set tracking to false as default * chore: update readme
This commit is contained in:
parent
24cd9cb2c3
commit
ad09c4039a
@ -2,16 +2,34 @@
|
||||
|
||||
# Developing
|
||||
|
||||
### Why did you render
|
||||
|
||||
This application is set up with [WDYR](https://github.com/welldone-software/why-did-you-render) and [craco](https://github.com/gsoft-inc/craco) in order to find, debug and remove uneccesary re-renders. This configuration can be found in /src/wdyr.ts.
|
||||
|
||||
In order to turn it on, change the configuration accordingly:
|
||||
|
||||
```
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const whyDidYouRender = require('@welldone-software/why-did-you-render');
|
||||
whyDidYouRender(React, {
|
||||
trackAllPureComponents: true,
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Now you should be able to review rendering information in the console. If you do utilise this functionality, please remember to set the configuration back to spare other developers the noise in the console.
|
||||
|
||||
### Run with together with local unleash-api:
|
||||
|
||||
You need to first start the unleash-api on port 4242
|
||||
before you can start working on unleash-frontend.
|
||||
You need to first start the unleash-api on port 4242
|
||||
before you can start working on unleash-frontend.
|
||||
|
||||
Start webpack-dev-server with hot-reload:
|
||||
|
||||
```bash
|
||||
cd ~/unleash-frontend
|
||||
npm install
|
||||
npm run start
|
||||
npm run start
|
||||
```
|
||||
|
||||
### Run with heroku hosted unleash-api:
|
||||
@ -23,6 +41,7 @@ npm run start:heroku
|
||||
```
|
||||
|
||||
## UI Framework
|
||||
|
||||
We are using [material-ui](http://material-ui.com/).
|
||||
|
||||
Happy coding!
|
||||
|
37
frontend/craco.config.js
Normal file
37
frontend/craco.config.js
Normal file
@ -0,0 +1,37 @@
|
||||
const presetReact = require('@babel/preset-react').default;
|
||||
const presetCRA = require('babel-preset-react-app');
|
||||
|
||||
module.exports = {
|
||||
babel: {
|
||||
loaderOptions: (babelLoaderOptions, { env, paths }) => {
|
||||
const origBabelPresetReactAppIndex = babelLoaderOptions.presets.findIndex(
|
||||
preset => {
|
||||
return preset[0].includes('babel-preset-react-app');
|
||||
}
|
||||
);
|
||||
|
||||
if (origBabelPresetReactAppIndex === -1) {
|
||||
return babelLoaderOptions;
|
||||
}
|
||||
|
||||
const overridenBabelPresetReactApp = (...args) => {
|
||||
const babelPresetReactAppResult = presetCRA(...args);
|
||||
const origPresetReact = babelPresetReactAppResult.presets.find(
|
||||
preset => {
|
||||
return preset[0] === presetReact;
|
||||
}
|
||||
);
|
||||
Object.assign(origPresetReact[1], {
|
||||
importSource: '@welldone-software/why-did-you-render',
|
||||
});
|
||||
return babelPresetReactAppResult;
|
||||
};
|
||||
|
||||
babelLoaderOptions.presets[
|
||||
origBabelPresetReactAppIndex
|
||||
] = overridenBabelPresetReactApp;
|
||||
|
||||
return babelLoaderOptions;
|
||||
},
|
||||
},
|
||||
};
|
@ -45,8 +45,10 @@
|
||||
"@types/react": "^17.0.0",
|
||||
"@types/react-dom": "^17.0.0",
|
||||
"@types/react-router-dom": "^5.1.7",
|
||||
"@welldone-software/why-did-you-render": "^6.1.1",
|
||||
"array-move": "^3.0.1",
|
||||
"classnames": "^2.3.1",
|
||||
"craco": "^0.0.3",
|
||||
"css-loader": "^5.2.0",
|
||||
"date-fns": "^2.19.0",
|
||||
"debounce": "^1.2.1",
|
||||
|
@ -5,9 +5,9 @@
|
||||
html {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
@ -88,7 +88,6 @@ const App = ({ location, user, fetchUiBootstrap }: IAppProps) => {
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
// Set state to any for now, to avoid typing up entire state object while converting to tsx.
|
||||
const mapStateToProps = (state: any) => ({
|
||||
user: state.user.toJS(),
|
||||
|
@ -109,4 +109,5 @@ export const modalStyles = {
|
||||
},
|
||||
};
|
||||
|
||||
export const updateIndexInArray = (array, index, newValue) => array.map((v, i) => (i === index ? newValue : v));
|
||||
export const updateIndexInArray = (array, index, newValue) =>
|
||||
array.map((v, i) => (i === index ? newValue : v));
|
||||
|
@ -1,6 +1,12 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Button, Dialog, DialogContent, DialogTitle, DialogActions } from '@material-ui/core';
|
||||
import {
|
||||
Button,
|
||||
Dialog,
|
||||
DialogContent,
|
||||
DialogTitle,
|
||||
DialogActions,
|
||||
} from '@material-ui/core';
|
||||
|
||||
import FlexibleStrategy from './FlexibleStrategy';
|
||||
import DefaultStrategy from './default-strategy';
|
||||
@ -10,7 +16,13 @@ import StrategyConstraints from '../StrategyConstraint/StrategyConstraintInput';
|
||||
|
||||
import { getHumanReadbleStrategyName } from '../../../../utils/strategy-names';
|
||||
|
||||
const EditStrategyModal = ({ onCancel, strategy, saveStrategy, updateStrategy, strategyDefinition }) => {
|
||||
const EditStrategyModal = ({
|
||||
onCancel,
|
||||
strategy,
|
||||
saveStrategy,
|
||||
updateStrategy,
|
||||
strategyDefinition,
|
||||
}) => {
|
||||
const updateParameters = parameters => {
|
||||
const updatedStrategy = { ...strategy, parameters };
|
||||
updateStrategy(updatedStrategy);
|
||||
@ -45,7 +57,12 @@ const EditStrategyModal = ({ onCancel, strategy, saveStrategy, updateStrategy, s
|
||||
const { parameters } = strategy;
|
||||
|
||||
return (
|
||||
<Dialog open={!!strategy} aria-labelledby="form-dialog-title" fullWidth maxWidth="md">
|
||||
<Dialog
|
||||
open={!!strategy}
|
||||
aria-labelledby="form-dialog-title"
|
||||
fullWidth
|
||||
maxWidth="md"
|
||||
>
|
||||
<DialogTitle id="form-dialog-title">
|
||||
Configure {getHumanReadbleStrategyName(strategy.name)} strategy
|
||||
</DialogTitle>
|
||||
@ -70,7 +87,11 @@ const EditStrategyModal = ({ onCancel, strategy, saveStrategy, updateStrategy, s
|
||||
<Button onClick={onCancel} color="secondary">
|
||||
Cancel
|
||||
</Button>
|
||||
<Button onClick={saveStrategy} color="primary" variant="contained">
|
||||
<Button
|
||||
onClick={saveStrategy}
|
||||
color="primary"
|
||||
variant="contained"
|
||||
>
|
||||
Save
|
||||
</Button>
|
||||
</DialogActions>
|
||||
|
@ -32,7 +32,8 @@ const StrategiesList = props => {
|
||||
const [editStrategyIndex, setEditStrategyIndex] = useState();
|
||||
|
||||
useEffect(() => {
|
||||
if (!editStrategyIndex) {
|
||||
const notEditing = editStrategyIndex < 0;
|
||||
if (notEditing) {
|
||||
updateEditableStrategies(cloneDeep(props.configuredStrategies));
|
||||
}
|
||||
/* eslint-disable-next-line */
|
||||
@ -147,7 +148,6 @@ const StrategiesList = props => {
|
||||
featureToggleName={featureToggleName}
|
||||
addStrategy={addStrategy}
|
||||
/>
|
||||
|
||||
{editingStrategy ? (
|
||||
<EditStrategyModal
|
||||
strategy={editingStrategy}
|
||||
|
@ -3,3 +3,4 @@ export const OK = 200;
|
||||
export const NOT_FOUND = 404;
|
||||
export const FORBIDDEN = 403;
|
||||
export const UNAUTHORIZED = 401;
|
||||
export const NOT_MODIFIED = 304;
|
||||
|
@ -1,3 +1,4 @@
|
||||
import './wdyr';
|
||||
import 'whatwg-fetch';
|
||||
|
||||
import './app.css';
|
||||
|
@ -2,7 +2,7 @@ import api from './api';
|
||||
|
||||
export const START_FETCH_FEATURE_METRICS = 'START_FETCH_FEATURE_METRICS';
|
||||
export const RECEIVE_FEATURE_METRICS = 'RECEIVE_FEATURE_METRICS';
|
||||
export const ERROR_FETCH_FEATURE_TOGGLES = 'ERROR_FETCH_FEATURE_TOGGLES';
|
||||
export const ERROR_FETCH_FEATURE_METRICS = 'ERROR_FETCH_FEATURE_METRICS';
|
||||
|
||||
export const START_FETCH_SEEN_APP = 'START_FETCH_SEEN_APP';
|
||||
export const RECEIVE_SEEN_APPS = 'RECEIVE_SEEN_APPS';
|
||||
@ -33,22 +33,22 @@ function dispatchAndThrow(dispatch, type) {
|
||||
|
||||
export function fetchFeatureMetrics() {
|
||||
return dispatch => {
|
||||
dispatch({ type: START_FETCH_SEEN_APP });
|
||||
dispatch({ type: START_FETCH_FEATURE_METRICS });
|
||||
|
||||
return api
|
||||
.fetchFeatureMetrics()
|
||||
.then(json => dispatch(receiveFeatureMetrics(json)))
|
||||
.catch(dispatchAndThrow(dispatch, ERROR_FETCH_SEEN_APP));
|
||||
.catch(dispatchAndThrow(dispatch, ERROR_FETCH_FEATURE_METRICS));
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchSeenApps() {
|
||||
return dispatch => {
|
||||
dispatch({ type: START_FETCH_FEATURE_METRICS });
|
||||
dispatch({ type: START_FETCH_SEEN_APP });
|
||||
|
||||
return api
|
||||
.fetchSeenApps()
|
||||
.then(json => dispatch(receiveSeenApps(json)))
|
||||
.catch(dispatchAndThrow(dispatch, ERROR_FETCH_FEATURE_TOGGLES));
|
||||
.catch(dispatchAndThrow(dispatch, ERROR_FETCH_SEEN_APP));
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,10 @@ import { Map as $Map, fromJS } from 'immutable';
|
||||
|
||||
import { RECEIVE_FEATURE_METRICS, RECEIVE_SEEN_APPS } from './actions';
|
||||
|
||||
const metrics = (state = fromJS({ lastHour: {}, lastMinute: {}, seenApps: {} }), action) => {
|
||||
const metrics = (
|
||||
state = fromJS({ lastHour: {}, lastMinute: {}, seenApps: {} }),
|
||||
action
|
||||
) => {
|
||||
switch (action.type) {
|
||||
case RECEIVE_SEEN_APPS:
|
||||
return state.set('seenApps', new $Map(action.value));
|
||||
|
10
frontend/src/wdyr.ts
Normal file
10
frontend/src/wdyr.ts
Normal file
@ -0,0 +1,10 @@
|
||||
/// <reference types="@welldone-software/why-did-you-render" />
|
||||
|
||||
import React from 'react';
|
||||
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const whyDidYouRender = require('@welldone-software/why-did-you-render');
|
||||
whyDidYouRender(React, {
|
||||
trackAllPureComponents: false,
|
||||
});
|
||||
}
|
@ -28,6 +28,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1"
|
||||
integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==
|
||||
|
||||
"@babel/compat-data@^7.13.15":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919"
|
||||
integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==
|
||||
|
||||
"@babel/core@7.12.3":
|
||||
version "7.12.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8"
|
||||
@ -71,6 +76,27 @@
|
||||
semver "^6.3.0"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/core@^7.6.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz#47299ff3ec8d111b493f1a9d04bf88c04e728d88"
|
||||
integrity sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@babel/generator" "^7.14.0"
|
||||
"@babel/helper-compilation-targets" "^7.13.16"
|
||||
"@babel/helper-module-transforms" "^7.14.0"
|
||||
"@babel/helpers" "^7.14.0"
|
||||
"@babel/parser" "^7.14.0"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.14.0"
|
||||
"@babel/types" "^7.14.0"
|
||||
convert-source-map "^1.7.0"
|
||||
debug "^4.1.0"
|
||||
gensync "^1.0.0-beta.2"
|
||||
json5 "^2.1.2"
|
||||
semver "^6.3.0"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.12.1", "@babel/generator@^7.13.9":
|
||||
version "7.13.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
|
||||
@ -80,6 +106,15 @@
|
||||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.14.0":
|
||||
version "7.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93"
|
||||
integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==
|
||||
dependencies:
|
||||
"@babel/types" "^7.14.1"
|
||||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
|
||||
@ -105,6 +140,16 @@
|
||||
browserslist "^4.14.5"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/helper-compilation-targets@^7.13.16":
|
||||
version "7.13.16"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
|
||||
integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.13.15"
|
||||
"@babel/helper-validator-option" "^7.12.17"
|
||||
browserslist "^4.14.5"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.13.0":
|
||||
version "7.13.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6"
|
||||
@ -197,6 +242,20 @@
|
||||
"@babel/traverse" "^7.13.13"
|
||||
"@babel/types" "^7.13.14"
|
||||
|
||||
"@babel/helper-module-transforms@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz#8fcf78be220156f22633ee204ea81f73f826a8ad"
|
||||
integrity sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.13.12"
|
||||
"@babel/helper-replace-supers" "^7.13.12"
|
||||
"@babel/helper-simple-access" "^7.13.12"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.14.0"
|
||||
"@babel/types" "^7.14.0"
|
||||
|
||||
"@babel/helper-optimise-call-expression@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
|
||||
@ -254,6 +313,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
|
||||
integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
|
||||
|
||||
"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.17":
|
||||
version "7.12.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
||||
@ -278,6 +342,15 @@
|
||||
"@babel/traverse" "^7.13.0"
|
||||
"@babel/types" "^7.13.0"
|
||||
|
||||
"@babel/helpers@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
|
||||
integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
|
||||
dependencies:
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.14.0"
|
||||
"@babel/types" "^7.14.0"
|
||||
|
||||
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
|
||||
version "7.13.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
|
||||
@ -292,6 +365,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
|
||||
integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
|
||||
|
||||
"@babel/parser@^7.14.0":
|
||||
version "7.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz#1bd644b5db3f5797c4479d89ec1817fe02b84c47"
|
||||
integrity sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==
|
||||
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
|
||||
@ -1150,6 +1228,20 @@
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/traverse@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef"
|
||||
integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@babel/generator" "^7.14.0"
|
||||
"@babel/helper-function-name" "^7.12.13"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/parser" "^7.14.0"
|
||||
"@babel/types" "^7.14.0"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
|
||||
version "7.13.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d"
|
||||
@ -1159,6 +1251,14 @@
|
||||
lodash "^4.17.19"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@babel/types@^7.14.0", "@babel/types@^7.14.1":
|
||||
version "7.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz#095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db"
|
||||
integrity sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@bcoe/v8-coverage@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||
@ -1172,6 +1272,15 @@
|
||||
exec-sh "^0.3.2"
|
||||
minimist "^1.2.0"
|
||||
|
||||
"@craco/craco@^5.5.0":
|
||||
version "5.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@craco/craco/-/craco-5.9.0.tgz#dcd34330b558596a4841374743071b7fa041dce9"
|
||||
integrity sha512-2Q8gIB4W0/nPiUxr9iAKUhGsFlXYN0/wngUdK1VWtfV2NtBv+yllNn2AjieaLbttgpQinuOYmDU65vocC0NMDg==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.0"
|
||||
lodash "^4.17.15"
|
||||
webpack-merge "^4.2.2"
|
||||
|
||||
"@csstools/convert-colors@^1.4.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
|
||||
@ -1765,7 +1874,7 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b"
|
||||
integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==
|
||||
|
||||
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
|
||||
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.3", "@types/babel__core@^7.1.7":
|
||||
version "7.1.14"
|
||||
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
|
||||
integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==
|
||||
@ -2053,6 +2162,18 @@
|
||||
"@types/source-list-map" "*"
|
||||
source-map "^0.7.3"
|
||||
|
||||
"@types/webpack@^4.39.2":
|
||||
version "4.41.28"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz#0069a2159b7ad4d83d0b5801942c17d54133897b"
|
||||
integrity sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ==
|
||||
dependencies:
|
||||
"@types/anymatch" "*"
|
||||
"@types/node" "*"
|
||||
"@types/tapable" "^1"
|
||||
"@types/uglify-js" "*"
|
||||
"@types/webpack-sources" "*"
|
||||
source-map "^0.6.0"
|
||||
|
||||
"@types/webpack@^4.41.8":
|
||||
version "4.41.27"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc"
|
||||
@ -2329,6 +2450,13 @@
|
||||
"@webassemblyjs/wast-parser" "1.9.0"
|
||||
"@xtuc/long" "4.2.2"
|
||||
|
||||
"@welldone-software/why-did-you-render@^6.1.1":
|
||||
version "6.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@welldone-software/why-did-you-render/-/why-did-you-render-6.1.1.tgz#3dcf66620fcafbf79e5260bd6ace5e51254055ac"
|
||||
integrity sha512-BMFp33T4MC27qvCWsI1SqwZCxIlxoQXsPQFdGLDsPSg7sgoWX4Gzj0+hlKVrWrCBiIxi7gP2JcS9IK6CZzk8mg==
|
||||
dependencies:
|
||||
lodash "^4"
|
||||
|
||||
"@xtuc/ieee754@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
|
||||
@ -3846,6 +3974,17 @@ cosmiconfig@^7.0.0:
|
||||
path-type "^4.0.0"
|
||||
yaml "^1.10.0"
|
||||
|
||||
craco@^0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/craco/-/craco-0.0.3.tgz#1e464b0ae5d9176570382d3a3fcdbf3599577012"
|
||||
integrity sha512-eeibbwJm1CTf/j3xvNgNmsRS7abegp4Cfm5qtn5nE9/0JjZRas+FHj8IlT8FMFWR0XOyZFGcWZgzaTU19DNGoQ==
|
||||
dependencies:
|
||||
"@babel/core" "^7.6.0"
|
||||
"@craco/craco" "^5.5.0"
|
||||
"@types/babel__core" "^7.1.3"
|
||||
"@types/webpack" "^4.39.2"
|
||||
webpack "^4.41.0"
|
||||
|
||||
create-ecdh@^4.0.0:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
|
||||
@ -4686,7 +4825,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
||||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
enhanced-resolve@^4.3.0:
|
||||
enhanced-resolve@^4.3.0, enhanced-resolve@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
|
||||
integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
|
||||
@ -7669,7 +7808,7 @@ lodash.uniq@^4.5.0:
|
||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
||||
|
||||
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
|
||||
"lodash@>=3.5 <5", lodash@^4, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
@ -12114,6 +12253,13 @@ webpack-manifest-plugin@2.2.0:
|
||||
object.entries "^1.1.0"
|
||||
tapable "^1.0.0"
|
||||
|
||||
webpack-merge@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
|
||||
integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
|
||||
dependencies:
|
||||
lodash "^4.17.15"
|
||||
|
||||
webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
|
||||
@ -12151,6 +12297,35 @@ webpack@4.44.2:
|
||||
watchpack "^1.7.4"
|
||||
webpack-sources "^1.4.1"
|
||||
|
||||
webpack@^4.41.0:
|
||||
version "4.46.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
|
||||
integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.9.0"
|
||||
"@webassemblyjs/helper-module-context" "1.9.0"
|
||||
"@webassemblyjs/wasm-edit" "1.9.0"
|
||||
"@webassemblyjs/wasm-parser" "1.9.0"
|
||||
acorn "^6.4.1"
|
||||
ajv "^6.10.2"
|
||||
ajv-keywords "^3.4.1"
|
||||
chrome-trace-event "^1.0.2"
|
||||
enhanced-resolve "^4.5.0"
|
||||
eslint-scope "^4.0.3"
|
||||
json-parse-better-errors "^1.0.2"
|
||||
loader-runner "^2.4.0"
|
||||
loader-utils "^1.2.3"
|
||||
memory-fs "^0.4.1"
|
||||
micromatch "^3.1.10"
|
||||
mkdirp "^0.5.3"
|
||||
neo-async "^2.6.1"
|
||||
node-libs-browser "^2.2.1"
|
||||
schema-utils "^1.0.0"
|
||||
tapable "^1.1.3"
|
||||
terser-webpack-plugin "^1.4.3"
|
||||
watchpack "^1.7.4"
|
||||
webpack-sources "^1.4.1"
|
||||
|
||||
websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
|
||||
version "0.7.4"
|
||||
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
|
||||
|
Loading…
Reference in New Issue
Block a user