From 9f797dbd6f3cf2e79c219fdbd53f439fc7aabcf3 Mon Sep 17 00:00:00 2001 From: aoelen Date: Sun, 8 Dec 2019 13:34:48 -0800 Subject: [PATCH 01/60] feat(FormField): make form field error accessible (#3822) * feat(FormField): make form field error accessible * Change type of id on FormField * Add alert role on error labels and include error example --- .../Shorthand/FormExampleFieldControlId.js | 10 +++++++ .../collections/Form/Shorthand/index.js | 2 +- .../Form/States/FormExampleFieldErrorLabel.js | 1 + src/collections/Form/FormField.d.ts | 3 ++ src/collections/Form/FormField.js | 28 +++++++++++++++---- test/specs/collections/Form/FormField-test.js | 28 ++++++++++++++++--- 6 files changed, 61 insertions(+), 11 deletions(-) diff --git a/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js b/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js index 7fca98f026..1c3fff0378 100644 --- a/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js +++ b/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js @@ -37,6 +37,16 @@ const FormExampleFieldControlId = () => ( label='Opinion' placeholder='Opinion' /> + ( diff --git a/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js b/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js index 103e0aa0dc..ac4bc6f384 100644 --- a/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js +++ b/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js @@ -8,6 +8,7 @@ const FormExampleFieldErrorLabel = () => ( fluid label='First name' placeholder='First name' + id='form-input-first-name' /> + /** The id of the control */ + id?: number | string + /** A field can have its label next to instead of above it. */ inline?: boolean diff --git a/src/collections/Form/FormField.js b/src/collections/Form/FormField.js index b5da5144f9..0ee340a428 100644 --- a/src/collections/Form/FormField.js +++ b/src/collections/Form/FormField.js @@ -41,6 +41,7 @@ function FormField(props) { required, type, width, + id, } = props const classes = cx( @@ -58,7 +59,13 @@ function FormField(props) { const errorPointing = _.get(error, 'pointing', 'above') const errorLabel = Label.create(error, { autoGenerateKey: false, - defaultProps: { prompt: true, pointing: errorPointing }, + defaultProps: { + prompt: true, + pointing: errorPointing, + id: id ? `${id}-error-message` : undefined, + role: 'alert', + 'aria-atomic': true, + }, }) const errorLabelBefore = (errorPointing === 'below' || errorPointing === 'right') && errorLabel @@ -89,7 +96,13 @@ function FormField(props) { // ---------------------------------------- // Checkbox/Radio Control // ---------------------------------------- - const controlProps = { ...rest, content, children, disabled, required, type } + + const ariaDescribedBy = id && error ? `${id}-error-message` : null + const ariaAttrs = { + 'aria-describedby': ariaDescribedBy, + 'aria-invalid': error !== undefined ? true : undefined, + } + const controlProps = { ...rest, content, children, disabled, required, type, id } // wrap HTML checkboxes/radios in the label if (control === 'input' && (type === 'checkbox' || type === 'radio')) { @@ -97,7 +110,7 @@ function FormField(props) { @@ -109,7 +122,7 @@ function FormField(props) { return ( {errorLabelBefore} - {createElement(control, { ...controlProps, label })} + {createElement(control, { ...ariaAttrs, ...controlProps, label })} {errorLabelAfter} ) @@ -122,11 +135,11 @@ function FormField(props) { return ( {createHTMLLabel(label, { - defaultProps: { htmlFor: _.get(controlProps, 'id') }, + defaultProps: { htmlFor: id }, autoGenerateKey: false, })} {errorLabelBefore} - {createElement(control, controlProps)} + {createElement(control, { ...ariaAttrs, ...controlProps })} {errorLabelAfter} ) @@ -161,6 +174,9 @@ FormField.propTypes = { /** Individual fields may display an error state along with a message. */ error: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]), + /** The id of the control */ + id: PropTypes.string, + /** A field can have its label next to instead of above it. */ inline: PropTypes.bool, diff --git a/test/specs/collections/Form/FormField-test.js b/test/specs/collections/Form/FormField-test.js index 8d434761c8..c7411e65f4 100644 --- a/test/specs/collections/Form/FormField-test.js +++ b/test/specs/collections/Form/FormField-test.js @@ -41,25 +41,45 @@ describe('FormField', () => { autoGenerateKey: false, propKey: 'error', requiredProps: { label: faker.lorem.word() }, - shorthandDefaultProps: { prompt: true, pointing: 'above' }, + shorthandDefaultProps: { + prompt: true, + pointing: 'above', + role: 'alert', + 'aria-atomic': true, + }, }) common.implementsLabelProp(FormField, { autoGenerateKey: false, propKey: 'error', requiredProps: { control: 'radio' }, - shorthandDefaultProps: { prompt: true, pointing: 'above' }, + shorthandDefaultProps: { + prompt: true, + pointing: 'above', + role: 'alert', + 'aria-atomic': true, + }, }) common.implementsLabelProp(FormField, { autoGenerateKey: false, propKey: 'error', requiredProps: { control: Checkbox }, - shorthandDefaultProps: { prompt: true, pointing: 'above' }, + shorthandDefaultProps: { + prompt: true, + pointing: 'above', + role: 'alert', + 'aria-atomic': true, + }, }) common.implementsLabelProp(FormField, { autoGenerateKey: false, propKey: 'error', requiredProps: { control: 'input' }, - shorthandDefaultProps: { prompt: true, pointing: 'above' }, + shorthandDefaultProps: { + prompt: true, + pointing: 'above', + role: 'alert', + 'aria-atomic': true, + }, }) it('positioned in DOM according to passed "pointing" prop', () => { From 8b46b2df434b65511fa0e440d60ab3be33767699 Mon Sep 17 00:00:00 2001 From: Unbug Lee Date: Mon, 9 Dec 2019 05:39:03 +0800 Subject: [PATCH 02/60] fix(Search): use result.id for SearchResult key (#3848) * Fixed key value for SearchResult Component * Remove result.key --- src/modules/Search/Search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js index 42099710b1..d4d9f85ccd 100644 --- a/src/modules/Search/Search.js +++ b/src/modules/Search/Search.js @@ -559,7 +559,7 @@ export default class Search extends Component { return ( Date: Sun, 8 Dec 2019 13:39:53 -0800 Subject: [PATCH 03/60] feat(TextArea): export StrictTextAreaProps typing (#3846) --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index fb413f6366..e7f6988eab 100644 --- a/index.d.ts +++ b/index.d.ts @@ -38,7 +38,7 @@ export { StrictResponsiveProps, } from './dist/commonjs/addons/Responsive' export { default as Select, SelectProps } from './dist/commonjs/addons/Select' -export { default as TextArea, TextAreaProps } from './dist/commonjs/addons/TextArea' +export { default as TextArea, TextAreaProps, StrictTextAreaProps } from './dist/commonjs/addons/TextArea' export { default as TransitionablePortal, TransitionablePortalProps, From d1001741b5a3a77e3e83af94a2d7a88bcf3633fd Mon Sep 17 00:00:00 2001 From: Yu <39558084+yuuyu00@users.noreply.github.com> Date: Mon, 9 Dec 2019 06:41:10 +0900 Subject: [PATCH 04/60] docs(misc): fix typos (#3837) * docs(CONTRIBUTING): Fix typo * docs(ComponentExample): Fix typo * docs(Types/index.js): Fix typo --- .github/CONTRIBUTING.md | 2 +- .../ComponentDoc/ComponentExample/ComponentExample.js | 2 +- docs/src/examples/modules/Transition/Types/index.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 148685fcc0..49eb3b1b2d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -516,7 +516,7 @@ Label.propTypes = { ### Examples ->This section is lacking in instruction as the the docs are set to be overhauled (PRs welcome!). +>This section is lacking in instruction as the docs are set to be overhauled (PRs welcome!). Usage examples for a component live in `docs/src/examples`. The examples follow the SUI doc site examples. diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js index 7589bfa03a..a0cddce957 100644 --- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js +++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js @@ -50,7 +50,7 @@ const knobComponents = { /** * Renders a `component` and the raw `code` that produced it. - * Allows toggling the the raw `code` code block. + * Allows toggling the raw `code` code block. */ class ComponentExample extends Component { static propTypes = { diff --git a/docs/src/examples/modules/Transition/Types/index.js b/docs/src/examples/modules/Transition/Types/index.js index 7a5f5b3979..b8ef457ca7 100644 --- a/docs/src/examples/modules/Transition/Types/index.js +++ b/docs/src/examples/modules/Transition/Types/index.js @@ -8,7 +8,7 @@ const TransitionTypesExamples = () => ( From 32df9e84f840bc0d854e5c037eafeaabe4cc6ee0 Mon Sep 17 00:00:00 2001 From: Anupam Asok Date: Mon, 9 Dec 2019 03:41:17 +0530 Subject: [PATCH 05/60] docs: fix minor grammar and punctuation errors (#3818) --- docs/src/pages/Augmentation.mdx | 2 +- docs/src/pages/ShorthandProps.mdx | 14 +++++++------- docs/src/pages/Theming.mdx | 8 ++++---- docs/src/pages/Usage.mdx | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/src/pages/Augmentation.mdx b/docs/src/pages/Augmentation.mdx index 666e2f0944..1401804670 100644 --- a/docs/src/pages/Augmentation.mdx +++ b/docs/src/pages/Augmentation.mdx @@ -8,7 +8,7 @@ export const meta = { ## `as` prop -Semantic UI React provides a way to compose React components through the `as` prop. It allows to compose component features and props without adding extra nested components. +Semantic UI React provides a way to compose React components through the `as` prop. It allows composing component features and props without adding extra nested components. ```jsx <> diff --git a/docs/src/pages/ShorthandProps.mdx b/docs/src/pages/ShorthandProps.mdx index 2a42d32321..a00e678cc8 100644 --- a/docs/src/pages/ShorthandProps.mdx +++ b/docs/src/pages/ShorthandProps.mdx @@ -16,7 +16,7 @@ There are several forms of shorthand values that can be provided, but all of the ## Object as value -Each component's shorthand has associated default element type. For example, by default there is `` element rendered for `Button`'s icon shorthand. It is possible to customize props of this default element by providing props object as shorthand value: +Each component's shorthand has an associated default element type. For example, by default, there is `` element rendered for `Button`'s icon shorthand. It is possible to customize props of this default element by providing props object as shorthand value: ```jsx // 💡 'color' and 'name' will be used as element's props @@ -57,7 +57,7 @@ It is also possible to pass falsy values (`false`, `null` or `undefined`) - in t ## React Element as value -There are cases where it might be necessary to customize element tree that will be rendered as a shorthand's value. Returning to `Button` example, we might want to render `` instead of default `` element. In that case necessary element might be directly provided as shorthand value: +There are cases where it might be necessary to customize the element tree that will be rendered as a shorthand's value. Returning to `Button` example, we might want to render `` instead of default `` element. In that case, the necessary element might be directly provided as shorthand value: ```jsx - - - - - -
All Direction Animations
- - - - -
Vertical-Only Animations
+ - - {vertical ? ( - - ) : null} - {vertical ? null : ( - - )} +
All Direction Animations
+ + + - - -
Application Content
- -
-
-
- - ) - } +
Vertical-Only Animations
+ + + + + + {vertical && ( + + )} + {!vertical && ( + + )} + + + +
Application Content
+ +
+
+
+ + ) } + +export default SidebarExampleTransitions From 7889c7a735a45f4b1de1466b6d37f36146957b41 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Mon, 27 Jul 2020 17:30:21 +0530 Subject: [PATCH 39/60] docs(README): correct webpack example link (#3898) * fix: webpack example link in README.md * Update README.md Co-authored-by: Oleksandr Fediashov --- README.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 3a6f7090b8..bc867155bd 100644 --- a/README.md +++ b/README.md @@ -85,13 +85,7 @@ This is a listing of example projects and guides that will help you integrate Se
Show projects - - ### [webpack][28] - See our webpack 3 example project [here][28] (includes theming). - - ### [SUIcrux][102] - Advanced universal starter with Semantic-UI-React. React/Redux/Lazy-loading/SSR/PWA. - + ### [semantic-ui-react-todos][100] Semantic UI React implementation of [react-redux Todo List][101].
@@ -106,7 +100,8 @@ This is a listing of example projects and guides that will help you integrate Se
How do I setup CSS? - There are several options. Refer to our doc on [CSS Usage][23]. +There are several options. Refer to our doc on [CSS Usage][23]. +
@@ -126,7 +121,7 @@ Here are some helpful links: ### [Voice Your Opinion][19] -Help shape this library by weighing in on our [RFC (request for comments)][19] issues. +Help shape this library by weighing in on our [RFC (request for comments)][19] issues. ### [Contribute][1] @@ -134,11 +129,11 @@ Our [CONTRIBUTING.md][1] is a step-by-step setup and development guide. ### [Good First Issue][21] -Issues labeled [`good first issue`][21] are a great way to ease into development on this project. +Issues labeled [`good first issue`][21] are a great way to ease into development on this project. ### [Missing Components][17] -We're seeking component parity with Semantic UI, plus some addons. There is an issue for every missing component, labeled [`new component`][17]. Just comment on the issue you'd like to take. +We're seeking component parity with Semantic UI, plus some addons. There is an issue for every missing component, labeled [`new component`][17]. Just comment on the issue you'd like to take. ### [Help Wanted Label][4] @@ -186,12 +181,11 @@ Made possible only by [@jlukic][32] authoring [Semantic UI][5]. [25]: http://learnsemantic.com/themes/creating.html [26]: https://github.com/levithomason [27]: https://github.com/layershifter -[28]: https://github.com/Semantic-Org/Semantic-UI-React/tree/master/examples [30]: https://github.com/Semantic-Org/Semantic-UI-Meteor [31]: https://github.com/Netflix/flamescope [32]: https://github.com/jlukic + [100]: https://github.com/wyc/semantic-ui-react-todos [101]: https://github.com/reactjs/redux/tree/master/examples/todos -[102]: https://github.com/Metnew/react-semantic.ui-starter From 2ac8009014978c9e7625e02871c9c8b5ed0150c0 Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Mon, 27 Jul 2020 15:39:34 +0200 Subject: [PATCH 40/60] fix(Portal): throw an error if React.Fragment passed as `trigger` (#3998) --- src/addons/Portal/Portal.js | 22 ++++++++++++------- src/addons/Portal/utils/validateTrigger.js | 15 +++++++++++++ src/modules/Popup/Popup.js | 4 +++- test/specs/addons/Portal/Portal-test.js | 4 ++-- .../Portal/utils/validateTrigger-test.js | 13 +++++++++++ 5 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 src/addons/Portal/utils/validateTrigger.js create mode 100644 test/specs/addons/Portal/utils/validateTrigger-test.js diff --git a/src/addons/Portal/Portal.js b/src/addons/Portal/Portal.js index 644644bba1..2199318ea1 100644 --- a/src/addons/Portal/Portal.js +++ b/src/addons/Portal/Portal.js @@ -3,7 +3,7 @@ import { handleRef, Ref } from '@stardust-ui/react-component-ref' import keyboardKey from 'keyboard-key' import _ from 'lodash' import PropTypes from 'prop-types' -import React, { cloneElement, createRef, Fragment } from 'react' +import React from 'react' import { ModernAutoControlledComponent as Component, @@ -11,6 +11,7 @@ import { doesNodeContainClick, makeDebugger, } from '../../lib' +import validateTrigger from './utils/validateTrigger' import PortalInner from './PortalInner' const debug = makeDebugger('portal') @@ -126,8 +127,8 @@ class Portal extends Component { static Inner = PortalInner - contentRef = createRef() - triggerRef = createRef() + contentRef = React.createRef() + triggerRef = React.createRef() latestDocumentMouseDownEvent = null componentWillUnmount() { @@ -335,10 +336,15 @@ class Portal extends Component { const { children, eventPool, mountNode, trigger } = this.props const { open } = this.state + /* istanbul ignore else */ + if (process.env.NODE_ENV !== 'production') { + validateTrigger(trigger) + } + return ( - + <> {open && ( - + <> - + )} {trigger && ( - {cloneElement(trigger, { + {React.cloneElement(trigger, { onBlur: this.handleTriggerBlur, onClick: this.handleTriggerClick, onFocus: this.handleTriggerFocus, @@ -376,7 +382,7 @@ class Portal extends Component { })} )} - + ) } } diff --git a/src/addons/Portal/utils/validateTrigger.js b/src/addons/Portal/utils/validateTrigger.js new file mode 100644 index 0000000000..52ed7ab5c5 --- /dev/null +++ b/src/addons/Portal/utils/validateTrigger.js @@ -0,0 +1,15 @@ +import React from 'react' +import * as ReactIs from 'react-is' + +/** + * Asserts that a passed element can be used cloned a props will be applied properly. + */ +export default function validateTrigger(element) { + if (element) { + React.Children.only(element) + + if (ReactIs.isFragment(element)) { + throw new Error('An "React.Fragment" cannot be used as a `trigger`.') + } + } +} diff --git a/src/modules/Popup/Popup.js b/src/modules/Popup/Popup.js index f5bf692d7d..11ddaf6e08 100644 --- a/src/modules/Popup/Popup.js +++ b/src/modules/Popup/Popup.js @@ -341,7 +341,9 @@ export default class Popup extends Component { } = this.props const { closed, portalRestProps } = this.state - if (closed || disabled) return trigger + if (closed || disabled) { + return trigger + } const modifiers = _.merge( { diff --git a/test/specs/addons/Portal/Portal-test.js b/test/specs/addons/Portal/Portal-test.js index 5fc08f1fb1..d8f95462d5 100644 --- a/test/specs/addons/Portal/Portal-test.js +++ b/test/specs/addons/Portal/Portal-test.js @@ -1,6 +1,6 @@ import _ from 'lodash' import PropTypes from 'prop-types' -import React, { Component } from 'react' +import React from 'react' import * as common from 'test/specs/commonTests' import { domEvent, sandbox } from 'test/utils' @@ -10,7 +10,7 @@ import PortalInner from 'src/addons/Portal/PortalInner' let wrapper const createHandlingComponent = (eventName) => - class HandlingComponent extends Component { + class HandlingComponent extends React.Component { static propTypes = { handler: PropTypes.func, } diff --git a/test/specs/addons/Portal/utils/validateTrigger-test.js b/test/specs/addons/Portal/utils/validateTrigger-test.js new file mode 100644 index 0000000000..2f08df52e5 --- /dev/null +++ b/test/specs/addons/Portal/utils/validateTrigger-test.js @@ -0,0 +1,13 @@ +import React from 'react' + +import validateTrigger from 'src/addons/Portal/utils/validateTrigger' + +describe('validateTrigger', () => { + it('throws on multiple elements passed', () => { + expect(() => validateTrigger([ +} + +ReactDOM.render(, document.querySelector('#root')) diff --git a/bundle-size/fixtures/Icon.size.js b/bundle-size/fixtures/Icon.size.js new file mode 100644 index 0000000000..fdc60043c9 --- /dev/null +++ b/bundle-size/fixtures/Icon.size.js @@ -0,0 +1,9 @@ +import { Icon } from 'semantic-ui-react' +import React from 'react' +import ReactDOM from 'react-dom' + +function App() { + return +} + +ReactDOM.render(, document.querySelector('#root')) diff --git a/bundle-size/fixtures/Image.size.js b/bundle-size/fixtures/Image.size.js new file mode 100644 index 0000000000..74fb88ce60 --- /dev/null +++ b/bundle-size/fixtures/Image.size.js @@ -0,0 +1,9 @@ +import { Image } from 'semantic-ui-react' +import React from 'react' +import ReactDOM from 'react-dom' + +function App() { + return +} + +ReactDOM.render(, document.querySelector('#root')) diff --git a/bundle-size/fixtures/Portal.size.js b/bundle-size/fixtures/Portal.size.js new file mode 100644 index 0000000000..c9d1221490 --- /dev/null +++ b/bundle-size/fixtures/Portal.size.js @@ -0,0 +1,9 @@ +import { Portal } from 'semantic-ui-react' +import React from 'react' +import ReactDOM from 'react-dom' + +function App() { + return }>Some content +} + +ReactDOM.render(, document.querySelector('#root')) diff --git a/package.json b/package.json index 6222d8f82a..da67d3126f 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,9 @@ "build:changelog": "github_changelog_generator --user Semantic-Org --project Semantic-UI-React --no-issues --no-unreleased --release-branch master --since-tag $(git describe --abbrev=0 --tags $(git rev-parse HEAD~250))", "build:docs": "cross-env NODE_ENV=production gulp build:docs", "build:docs:staging": "cross-env STAGING=true yarn build:docs && yarn serve docs/dist", - "build:dist": "gulp --series build:dist", + "build:dist": "gulp build:dist", + "prebuild:size": "gulp build:dist:es", + "build:size": "node bundle-size/bundle.js", "ci": "yarn tsd:lint && yarn tsd:test && yarn lint && yarn test", "predeploy:docs": "cross-env NODE_ENV=production yarn build:docs && gulp build:docs:cname", "deploy:changelog": "git add CHANGELOG.md && git commit -m \"docs(changelog): update changelog [ci skip]\" && git push", @@ -103,6 +105,7 @@ "@babel/register": "^7.4.4", "@babel/standalone": "^7.4.5", "@mdx-js/loader": "^0.20.3", + "@size-limit/file": "^4.5.5", "@stardust-ui/docs-components": "^0.34.1", "@types/react": "^16.8.25", "anchor-js": "^4.2.0", @@ -171,7 +174,9 @@ "simulant": "^0.2.2", "sinon": "^7.2.7", "sinon-chai": "^3.3.0", + "size-limit": "^4.5.5", "ta-scripts": "^2.5.2", + "terser-webpack-plugin": "^3.0.7", "terser-webpack-plugin-legacy": "^1.2.3", "through2": "^3.0.1", "tslint": "^5.14.0", @@ -179,6 +184,7 @@ "typescript": "^3.3.3333", "vinyl": "^2.2.0", "webpack": "^4.28.4", + "webpack-bundle-analyzer": "^3.8.0", "webpack-cli": "^3.2.1", "webpack-dev-middleware": "^3.5.0" }, diff --git a/yarn.lock b/yarn.lock index 3a0f06044d..590793476b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -937,6 +937,34 @@ resolved "https://registry.yarnpkg.com/@mdx-js/tag/-/tag-0.20.3.tgz#9e2306040b6469248c45a5f5baf44d0014db0493" integrity sha512-Co3gUFmNDv9z2LjuvLTpTj2NaOSHFxuoZjohcG0YK/KfECO+Ns9idzThMYjfEDe1vAf4c824rqlBYseedJdFNw== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" @@ -980,6 +1008,13 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@size-limit/file@^4.5.5": + version "4.5.5" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.5.5.tgz#98a435f68f598d71c6f6e9684a45af10ec9bf37d" + integrity sha512-VabOMoIllRc36/HthwY7xctwyqzQ/Piy1EEIb/SOHjB2S7IVRKRtXDNULRRD+gaY0gMyHZaK1u81M3xJkVKBAg== + dependencies: + semver "7.3.2" + "@stardust-ui/docs-components@^0.34.1": version "0.34.1" resolved "https://registry.yarnpkg.com/@stardust-ui/docs-components/-/docs-components-0.34.1.tgz#d7cf5f67f32beb3c29dbf3ce5f3c41d9592ee7fb" @@ -1026,14 +1061,34 @@ traverse "^0.6.6" unified "^6.1.6" +"@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/history@*": version "4.6.2" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.6.2.tgz#12cfaba693ba20f114ed5765467ff25fdf67ddb0" +"@types/json-schema@^7.0.4": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + "@types/node@*": version "8.0.53" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8" +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/prop-types@*": version "15.5.6" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz#9c03d3fed70a8d517c191b7734da2879b50ca26c" @@ -1089,158 +1144,160 @@ "@types/unist" "*" "@types/vfile-message" "*" -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" - integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== - dependencies: - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - -"@webassemblyjs/floating-point-hex-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" - integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== - dependencies: - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" - integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== - -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" - integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - -"@webassemblyjs/ieee754@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" - integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" - integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== - dependencies: - "@xtuc/long" "4.2.1" - -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" - integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== - -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" - integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/helper-wasm-section" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-opt" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/wasm-gen@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" - integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wasm-opt@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" - integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - -"@webassemblyjs/wasm-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" - integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wast-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" - integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/floating-point-hex-parser" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-code-frame" "1.7.11" - "@webassemblyjs/helper-fsm" "1.7.11" - "@xtuc/long" "4.2.1" - -"@webassemblyjs/wast-printer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" - integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - "@xtuc/long" "4.2.1" +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== -"@xtuc/long@4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" - integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abbrev@1: version "1.1.1" @@ -1250,12 +1307,13 @@ abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" +accepts@~1.3.4, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + mime-types "~2.1.24" + negotiator "0.6.2" acorn-dynamic-import@^2.0.0: version "2.0.2" @@ -1263,13 +1321,6 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== - dependencies: - acorn "^5.0.0" - acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -1281,6 +1332,11 @@ acorn-jsx@^5.0.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -1289,15 +1345,20 @@ acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.6.2: +acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.7: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" - integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== +acorn@^6.0.7, acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== address@1.0.3, address@^1.0.1: version "1.0.3" @@ -1313,6 +1374,14 @@ agent-base@^4.1.0: dependencies: es6-promisify "^5.0.0" +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + airbnb-prop-types@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168" @@ -1338,9 +1407,10 @@ ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" -ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@4.11.2: version "4.11.2" @@ -1358,12 +1428,12 @@ ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.9.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" - integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.9.1: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -1444,6 +1514,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1454,6 +1529,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" @@ -1480,6 +1563,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" @@ -1642,6 +1733,11 @@ array-union@^1.0.1: dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -2644,10 +2740,6 @@ base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" - base64-js@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" @@ -2696,14 +2788,34 @@ bfj-node4@^5.2.0: check-types "^7.3.0" tryer "^1.0.0" +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -2719,29 +2831,30 @@ bluebird@3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" -bluebird@^3.3.0, bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== +bluebird@^3.3.0, bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@1.18.2, body-parser@^1.16.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" +body-parser@1.19.0, body-parser@^1.16.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: - bytes "3.0.0" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" bonjour@^3.5.0: version "3.5.0" @@ -2808,6 +2921,13 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -2890,13 +3010,14 @@ browserslist@^3.2.6: electron-to-chromium "^1.3.47" browserslist@^4.6.0, browserslist@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05" - integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ== + version "4.13.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== dependencies: - caniuse-lite "^1.0.30000975" - electron-to-chromium "^1.3.164" - node-releases "^1.1.23" + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" buffer-alloc-unsafe@^1.1.0: version "1.1.0" @@ -2933,14 +3054,6 @@ buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" -buffer@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" - dependencies: - base64-js "0.0.8" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" @@ -2949,7 +3062,15 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +buffer@^5.2.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -2961,6 +3082,11 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +bytes@3.1.0, bytes@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cacache@^11.0.2: version "11.3.2" resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" @@ -2981,6 +3107,50 @@ cacache@^11.0.2: unique-filename "^1.1.1" y18n "^4.0.0" +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -3047,7 +3217,7 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase@5.0.0, camelcase@^5.0.0: +camelcase@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" @@ -3067,6 +3237,11 @@ camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -3080,10 +3255,10 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000856" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000856.tgz#fbebb99abe15a5654fc7747ebb5315bdfde3358f" -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000975: - version "1.0.30000976" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000976.tgz#d30fe12662cb2a21e130d307db9907513ca830a2" - integrity sha512-tleNB1IwPRqZiod6nUNum63xQCMN96BUO2JTeiwuRM7p9d616EHsMBjBWJMudX39qCaPuWY8KEWzMZq7A9XQMQ== +caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093: + version "1.0.30001107" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz#809360df7a5b3458f627aa46b0f6ed6d5239da9a" + integrity sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ== capture-stack-trace@^1.0.0: version "1.0.0" @@ -3175,6 +3350,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.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" + change-case@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" @@ -3228,6 +3411,11 @@ check-types@^7.3.0: version "7.4.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + cheerio@^1.0.0-rc.2: version "1.0.0-rc.2" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" @@ -3254,10 +3442,10 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.0.4: - version "2.1.6" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== +chokidar@^2.0.0, chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -3273,15 +3461,35 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.0.4: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: tslib "^1.9.0" @@ -3294,6 +3502,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-job-number@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" + integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3334,6 +3547,11 @@ clean-css@4.1.x: dependencies: source-map "0.5.x" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -3344,6 +3562,18 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -3469,19 +3699,28 @@ collection-visit@^1.0.0: object-visit "^1.0.0" color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - color-name "1.1.1" + color-name "1.1.3" -color-name@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" +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.0.0: +color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-string@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" @@ -3500,6 +3739,11 @@ color@^0.11.0: color-convert "^1.3.0" color-string "^0.3.0" +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + colormin@^1.0.5: version "1.1.2" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" @@ -3534,10 +3778,10 @@ commander@2.11.x, commander@~2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.8.1, commander@^2.9.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, commander@^2.9.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@~2.8.1: version "2.8.1" @@ -3648,9 +3892,12 @@ contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" content-type@1.0.4, content-type@~1.0.4: version "1.0.4" @@ -3668,6 +3915,11 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -3749,16 +4001,26 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: require-from-string "^1.1.0" cosmiconfig@^5.0.2, cosmiconfig@^5.0.7: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" - integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.9.0" - lodash.get "^4.4.2" + js-yaml "^3.13.1" parse-json "^4.0.0" +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + create-ecdh@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" @@ -4132,6 +4394,13 @@ default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -4202,7 +4471,7 @@ depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -4285,6 +4554,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + dirty-chai@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/dirty-chai/-/dirty-chai-2.0.1.tgz#6b2162ef17f7943589da840abc96e75bda01aff3" @@ -4413,8 +4689,9 @@ domutils@1.5.1: domelementtype "1" domutils@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" @@ -4490,14 +4767,15 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -ejs@^2.5.7: - version "2.6.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" +ejs@^2.5.7, ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.164, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47: - version "1.3.169" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.169.tgz#f9722d3f6a18a19c1fc1216bf9e1654daafab539" - integrity sha512-CxKt4ONON7m0ekVaFzvTZakHgGQsLMRH0J8W6h4lhyBNgskj3CIJz4bj+bh5+G26ztAe6dZjmYUeEW4u/VSnLQ== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488: + version "1.3.509" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz#830fcb89cd66dc2984d18d794973b99e3f00584c" + integrity sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug== elegant-spinner@^1.0.1: version "1.0.1" @@ -4533,6 +4811,11 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -4544,8 +4827,9 @@ encoding@^0.1.11: iconv-lite "~0.4.13" end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -4595,13 +4879,13 @@ enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" -enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== +enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" - memory-fs "^0.4.0" + memory-fs "^0.5.0" tapable "^1.0.0" ent@~2.2.0: @@ -4678,22 +4962,27 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== +es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.5.0, es-abstract@^1.7.0: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: - es-to-primitive "^1.2.0" + es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -4761,6 +5050,11 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.1" es6-symbol "^3.1.1" +escalade@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4919,7 +5213,7 @@ eslint-scope@3.7.1, eslint-scope@^3.7.1, eslint-scope@~3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^4.0.0, eslint-scope@^4.0.3: +eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -5090,9 +5384,10 @@ eventemitter3@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== eventsource@0.1.6: version "0.1.6" @@ -5184,38 +5479,39 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -express@^4.16.2: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" +express@^4.16.2, express@^4.16.3: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: - accepts "~1.3.5" + accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.3.1" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.1" + finalhandler "~1.1.2" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.2" + parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -5326,9 +5622,22 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-stable-stringify@^2.0.0: version "2.0.0" @@ -5342,6 +5651,13 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + fault@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz#c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa" @@ -5478,7 +5794,7 @@ filesize@3.5.11: version "3.5.11" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" -filesize@3.6.1, filesize@^3.5.11: +filesize@3.6.1, filesize@^3.5.11, filesize@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" @@ -5501,6 +5817,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + finalhandler@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" @@ -5513,16 +5836,17 @@ finalhandler@1.0.6: statuses "~1.3.1" unpipe "~1.0.0" -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" find-cache-dir@^1.0.0: @@ -5533,15 +5857,24 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" -find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" - integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" - make-dir "^1.0.0" + make-dir "^2.0.0" pkg-dir "^3.0.0" +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" @@ -5565,6 +5898,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@2.0.0, findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" @@ -5762,6 +6103,13 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" @@ -5804,6 +6152,11 @@ fsevents@^1.0.0, fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -5948,6 +6301,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" @@ -5972,7 +6332,7 @@ glob-watcher@^5.0.0: just-debounce "^1.0.0" object.defaults "^1.1.0" -glob@7.1.3, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: +glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== @@ -5994,6 +6354,18 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -6055,6 +6427,18 @@ globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -6208,6 +6592,14 @@ gzip-size@^4.1.0: duplexer "^0.1.1" pify "^3.0.0" +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + halcyon@^0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/halcyon/-/halcyon-0.19.1.tgz#f3a68dec3c9dc8a27c3ade696e897e1b149f08a7" @@ -6254,6 +6646,11 @@ has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +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-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" @@ -6264,9 +6661,10 @@ has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" +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" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-to-string-tag-x@^1.2.0: version "1.4.1" @@ -6454,6 +6852,11 @@ homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" @@ -6550,6 +6953,28 @@ http-errors@1.6.2, http-errors@~1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + http-parser-js@>=0.4.0: version "0.4.13" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" @@ -6610,7 +7035,7 @@ iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" -iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -6651,6 +7076,11 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + immutability-helper@^2.1.2: version "2.7.1" resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.7.1.tgz#5636dbb593e3deb5e572766d42249ea06bae7640" @@ -6665,10 +7095,10 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -6714,6 +7144,11 @@ indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -6722,6 +7157,11 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -6729,14 +7169,19 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -6844,9 +7289,10 @@ ip@1.1.5, ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" @@ -6899,6 +7345,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" @@ -6912,15 +7365,10 @@ is-buffer@^2.0.0, is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== is-ci@^1.0.10: version "1.1.0" @@ -7031,9 +7479,10 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" @@ -7048,6 +7497,11 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-lower-case@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" @@ -7086,6 +7540,11 @@ is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -7148,11 +7607,12 @@ is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" +is-regex@^1.0.4, is-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== dependencies: - has "^1.0.1" + has-symbols "^1.0.1" is-regexp@^1.0.0: version "1.0.0" @@ -7344,6 +7804,14 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" +jest-worker@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d" + integrity sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + jquery@x.*: version "3.2.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" @@ -7371,10 +7839,10 @@ js-yaml@3.12.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: - version "3.12.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc" - integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q== +js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7432,13 +7900,20 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" +json5@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -7662,6 +8137,11 @@ lightercollective@^0.1.0: resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz#70df102c530dcb8d0ccabfe6175a8d00d5f61300" integrity sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ== +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + lint-staged@^8.1.5: version "8.1.5" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79" @@ -7764,9 +8244,10 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" +loader-runner@^2.3.0, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@^0.2.16: version "0.2.17" @@ -7777,13 +8258,14 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" locate-path@^2.0.0: version "2.0.0" @@ -7799,6 +8281,13 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" @@ -7936,6 +8425,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -8015,6 +8511,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" @@ -8026,6 +8529,21 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b" @@ -8150,6 +8668,14 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -8169,6 +8695,16 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -8225,6 +8761,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -8232,25 +8776,33 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.34.0 < 2": - version "1.34.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a" +mime-db@1.44.0, "mime-db@>= 1.34.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" -mime-types@2.1.18, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18: +mime-types@2.1.18: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: mime-db "~1.33.0" +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.4.1, mime@^1.5.0: +mime@1.6.0, mime@^1.4.1, mime@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -8262,6 +8814,11 @@ mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -8292,14 +8849,40 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" + integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ== + dependencies: + minipass "^3.0.0" + minipass@^2.2.1, minipass@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40" @@ -8307,12 +8890,27 @@ minipass@^2.2.1, minipass@^2.2.4: safe-buffer "^5.1.1" yallist "^3.0.0" +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" dependencies: minipass "^2.2.1" +minizlib@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" + integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -8336,12 +8934,24 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mocha@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.0.2.tgz#cdc1a6fdf66472c079b5605bac59d29807702d2c" @@ -8421,6 +9031,11 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + mz@^2.3.1: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -8478,14 +9093,15 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" @@ -8537,9 +9153,10 @@ node-forge@0.7.5: version "0.7.5" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" +node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -8548,10 +9165,10 @@ node-libs-browser@^2.0.0: constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" - events "^1.0.0" + events "^3.0.0" https-browserify "^1.0.0" os-browserify "^0.3.0" - path-browserify "0.0.0" + path-browserify "0.0.1" process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" @@ -8562,8 +9179,8 @@ node-libs-browser@^2.0.0: timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" + util "^0.11.0" + vm-browserify "^1.0.1" node-modules-regexp@^1.0.0: version "1.0.0" @@ -8585,12 +9202,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.23: - version "1.1.23" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.23.tgz#de7409f72de044a2fa59c097f436ba89c39997f0" - integrity sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w== - dependencies: - semver "^5.3.0" +node-releases@^1.1.58: + version "1.1.60" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== node-version@1.1.3: version "1.1.3" @@ -8616,12 +9231,13 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" @@ -8631,7 +9247,7 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -8703,8 +9319,9 @@ npmlog@^4.0.2: set-blocking "~2.0.0" nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" @@ -8740,18 +9357,19 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" +object-inspect@^1.6.0, object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" @@ -8798,11 +9416,12 @@ object.fromentries@^2.0.0: has "^1.0.1" object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" object.map@^1.0.0: version "1.0.1" @@ -8867,9 +9486,17 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opener@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.4.3, opener@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== openport@^0.0.4: version "0.0.4" @@ -8909,6 +9536,20 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" +ora@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.5.tgz#7410b5cc2d99fa637fd5099bbb9f02bfbb5a361e" + integrity sha512-jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" @@ -8997,9 +9638,17 @@ p-limit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" -p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== dependencies: p-try "^2.0.0" @@ -9015,6 +9664,13 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" @@ -9024,6 +9680,13 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-try@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" @@ -9114,6 +9777,16 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz#7cfe35c1ccd641bce3981467e6c2ece61b3b3878" + integrity sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -9141,9 +9814,10 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^2.0.0: version "2.0.1" @@ -9156,9 +9830,10 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-browserify@^1.0.0: version "1.0.0" @@ -9185,6 +9860,11 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -9242,6 +9922,11 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" @@ -9265,6 +9950,11 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9307,6 +9997,13 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" @@ -9590,8 +10287,9 @@ postcss-unique-selectors@^2.0.2: uniqs "^2.0.0" postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-zindex@^2.0.1: version "2.2.0" @@ -9702,8 +10400,9 @@ process@~0.5.1: resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" @@ -9750,12 +10449,13 @@ proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" -proxy-addr@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" - ipaddr.js "1.6.0" + ipaddr.js "1.9.1" proxy-from-env@^1.0.0: version "1.0.0" @@ -9841,9 +10541,10 @@ qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== query-string@^4.1.0: version "4.3.4" @@ -9893,9 +10594,10 @@ randomatic@^1.1.3: is-number "^3.0.0" kind-of "^4.0.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" @@ -9906,9 +10608,10 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== raw-body@2.3.2: version "2.3.2" @@ -9919,6 +10622,16 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-loader@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" @@ -10216,9 +10929,9 @@ react-universal-component@^2.8.1, react-universal-component@^3.0.3: prop-types "^15.5.10" react@^16, react@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" - integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -10248,6 +10961,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -10284,6 +11006,16 @@ read-pkg@^4.0.1: parse-json "^4.0.0" pify "^3.0.0" +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -10306,9 +11038,9 @@ readable-stream@1.0: string_decoder "~0.10.x" "readable-stream@2 || 3": - version "3.2.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d" - integrity sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -10332,6 +11064,13 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + recast@^0.17.3: version "0.17.3" resolved "https://registry.yarnpkg.com/recast/-/recast-0.17.3.tgz#f49a9c9a64c59b55f6c93b5a53e3cffd7a13354d" @@ -10718,10 +11457,10 @@ resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" @@ -10732,10 +11471,23 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rfdc@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349" @@ -10753,6 +11505,13 @@ rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -10778,6 +11537,11 @@ run-node@^1.0.0: resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -10806,7 +11570,7 @@ safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -10849,7 +11613,7 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" -schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5: +schema-utils@^0.4.0, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== @@ -10866,6 +11630,15 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" @@ -10914,10 +11687,15 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + semver@^6.0.0, semver@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" - integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== send@0.16.2: version "0.16.2" @@ -10937,6 +11715,25 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + sentence-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" @@ -10949,6 +11746,20 @@ serialize-javascript@^1.4.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + serve-index@^1.7.2: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -10961,14 +11772,15 @@ serve-index@^1.7.2: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" + parseurl "~1.3.3" + send "0.17.1" serve@^6.4.10: version "6.5.8" @@ -11027,9 +11839,10 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.9" @@ -11110,6 +11923,20 @@ sinon@^7.2.7: nise "^1.4.10" supports-color "^5.5.0" +size-limit@^4.5.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.5.5.tgz#ce89846dfa947d4fafaa0dd4baf6d7e8888ea5be" + integrity sha512-rh4HSU0UVbOjX0vrzJjPjeCvPz6l+xW6QiA+BCAoLv1WzfnklBUnOdHmboF3UzZIxuNa1TmvCUCCDKmIC5XDVw== + dependencies: + bytes "^3.1.0" + chokidar "^3.4.1" + ci-job-number "^1.2.2" + colorette "^1.2.1" + cosmiconfig "^6.0.0" + globby "^11.0.1" + ora "^4.0.4" + read-pkg-up "^7.0.1" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -11118,6 +11945,11 @@ slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" @@ -11257,10 +12089,10 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.9, source-map-support@~0.5.10: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== +source-map-support@^0.5.9, source-map-support@~0.5.10, source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -11363,6 +12195,13 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== + dependencies: + minipass "^3.1.1" + stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -11387,14 +12226,19 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +"statuses@>= 1.3.1 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -11479,6 +12323,22 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -11523,6 +12383,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -11620,6 +12487,13 @@ supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-co dependencies: has-flag "^3.0.0" +supports-color@^7.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" + sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" @@ -11695,10 +12569,10 @@ tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" -tapable@^1.0.0, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar-stream@^1.5.2: version "1.6.1" @@ -11724,6 +12598,18 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +tar@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" + integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.0" + mkdirp "^1.0.3" + yallist "^4.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -11744,21 +12630,37 @@ terser-webpack-plugin-legacy@^1.2.3: webpack-sources "^1.1.0" worker-farm "^1.5.2" -terser-webpack-plugin@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz#7545da9ae5f4f9ae6a0ac961eb46f5e7c845cc26" - integrity sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw== +terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== dependencies: - cacache "^11.0.2" - find-cache-dir "^2.0.0" + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.4.0" + serialize-javascript "^3.1.0" source-map "^0.6.1" - terser "^3.8.1" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.7.tgz#db23b946dcca8954da3ebda3675360bceebdc78e" + integrity sha512-5JqibUOctE6Ou4T00IVGYTQJBOhu24jz0PpqYeitQJJ3hlZY2ZKSwzzuqjmBH8MzbdWMgIefpmHwTkvwm6Q4CQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.1.0" + p-limit "^3.0.2" + schema-utils "^2.6.6" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.8.0" + webpack-sources "^1.4.3" -terser@^3.16.1, terser@^3.8.1: +terser@^3.16.1: version "3.17.0" resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== @@ -11767,6 +12669,15 @@ terser@^3.16.1, terser@^3.8.1: source-map "~0.6.1" source-map-support "~0.5.10" +terser@^4.1.2, terser@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -11814,7 +12725,7 @@ through2@^3.0.1: dependencies: readable-stream "2 || 3" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -11845,12 +12756,7 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-invariant@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.3.tgz#91efaaa0269ccb6271f0296aeedb05fc3e067b7a" - integrity sha512-ytQx8T4DL8PjlX53yYzcIC0WhIZbpR0p1qcYjw2pHu3w6UtgWwFJQ/02cnhOnBBhlFx/edUIfcagCaQSe3KMWg== - -tiny-invariant@^1.1.0: +tiny-invariant@^1.0.2, tiny-invariant@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== @@ -11913,6 +12819,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -11937,6 +12850,11 @@ toggle-selection@^1.0.6: resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + toposort@^1.0.0: version "1.0.6" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" @@ -11980,9 +12898,10 @@ trough@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.1.tgz#a9fd8b0394b0ae8fff82e0633a0a36ccad5b5f86" -tryer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7" +tryer@^1.0.0, tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== tryit@^1.0.1: version "1.0.3" @@ -12089,12 +13008,23 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-is@~1.6.15, type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" - mime-types "~2.1.18" + mime-types "~2.1.24" typed-styles@^0.0.7: version "0.0.7" @@ -12147,11 +13077,12 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" unbzip2-stream@^1.0.9: - version "1.2.5" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: - buffer "^3.0.1" - through "^2.3.6" + buffer "^5.2.1" + through "^2.3.8" unc-path-regex@^0.1.0, unc-path-regex@^0.1.2: version "0.1.2" @@ -12460,6 +13391,13 @@ util@0.10.3, util@^0.10.3: dependencies: inherits "2.0.1" +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + utila@~0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" @@ -12599,11 +13537,10 @@ vinyl@^2.0.0, vinyl@^2.2.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== void-elements@^2.0.0: version "2.0.1" @@ -12616,14 +13553,23 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack@^1.4.0, watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.4.0, watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.2: version "1.7.3" @@ -12631,6 +13577,13 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + web-namespaces@^1.0.0, web-namespaces@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4" @@ -12653,6 +13606,25 @@ webpack-bundle-analyzer@^2.9.0: opener "^1.4.3" ws "^4.0.0" +webpack-bundle-analyzer@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz#ce6b3f908daf069fd1f7266f692cbb3bded9ba16" + integrity sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + webpack-cli@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.1.tgz#779c696c82482491f0803907508db2e276ed3b61" @@ -12740,10 +13712,10 @@ webpack-node-externals@^1.6.0: version "1.7.2" resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" -webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== +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== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -12776,34 +13748,33 @@ webpack@^3.6.0: yargs "^8.0.2" webpack@^4.28.4: - version "4.28.4" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.4.tgz#1ddae6c89887d7efb752adf0c3cd32b9b07eacd0" - integrity sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/wasm-edit" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - acorn "^5.6.2" - acorn-dynamic-import "^3.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" + version "4.44.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802" + integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw== + 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.3.0" + eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^0.4.4" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" + 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: version "0.7.0" @@ -12872,10 +13843,10 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== +worker-farm@^1.5.2, worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" @@ -12932,6 +13903,13 @@ ws@^5.1.1: dependencies: async-limiter "~1.0.0" +ws@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -12977,6 +13955,16 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + yargs-parser@11.1.1, yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -13126,8 +14114,9 @@ yauzl@2.4.1: fd-slicer "~1.0.1" yauzl@^2.4.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.2.tgz#4fb1bc7ae1fc2f57037b54af6acc8fe1031c5b77" + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" From 33b5d5a860d3e27008d498841c282bb8880f8008 Mon Sep 17 00:00:00 2001 From: Malcolm Date: Tue, 28 Jul 2020 07:22:32 +1200 Subject: [PATCH 42/60] fix(Search): merge nested shorthand props for the element (#3785) * Add failing test * fix(Search): merge nested shorthand props for element * Update test/specs/modules/Search/Search-test.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update src/modules/Search/Search.js * Update test/specs/modules/Search/Search-test.js * restore a test Co-authored-by: Oleksandr Fediashov --- src/modules/Search/Search.js | 18 +++++++++++++++++- test/specs/modules/Search/Search-test.js | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js index 7a21ca7897..edabc2fced 100644 --- a/src/modules/Search/Search.js +++ b/src/modules/Search/Search.js @@ -27,6 +27,19 @@ import SearchResults from './SearchResults' const debug = makeDebugger('search') +const overrideSearchInputProps = (predefinedProps) => { + const { input } = predefinedProps + + if (_.isUndefined(input)) { + return { ...predefinedProps, input: { className: 'prompt' } } + } + if (_.isPlainObject(input)) { + return { ...predefinedProps, input: { ...input, className: cx(input.className, 'prompt') } } + } + + return predefinedProps +} + /** * A search module allows a user to query for results from a selection of data */ @@ -530,12 +543,15 @@ export default class Search extends Component { autoGenerateKey: false, defaultProps: { ...rest, + autoComplete: 'off', icon, - input: { className: 'prompt', tabIndex: '0', autoComplete: 'off' }, onChange: this.handleSearchChange, onClick: this.handleInputClick, + tabIndex: '0', value, }, + // Nested shorthand props need special treatment to survive the shallow merge + overrideProps: overrideSearchInputProps, }) } diff --git a/test/specs/modules/Search/Search-test.js b/test/specs/modules/Search/Search-test.js index feb9c20d4e..c05d30ffec 100644 --- a/test/specs/modules/Search/Search-test.js +++ b/test/specs/modules/Search/Search-test.js @@ -774,6 +774,25 @@ describe('Search', () => { }) }) + describe('input', () => { + it(`merges nested shorthand props for the `, () => { + wrapperMount() + const input = wrapper.find('input') + + input.should.have.prop('tabIndex', '-1') + input.should.have.className('foo') + input.should.have.className('prompt') + }) + + it(`will not merge for a function`, () => { + wrapperMount( }} />) + const input = wrapper.find('input') + + input.should.have.prop('autoComplete', 'off') + input.should.have.not.className('prompt') + }) + }) + describe('input props', () => { // Search handles some of html props const props = _.without(htmlInputAttrs, 'defaultValue', 'type') From 32365e4a4367ffa81b5a877b6307a9c7d19ad6e7 Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Tue, 28 Jul 2020 10:19:26 +0200 Subject: [PATCH 43/60] chore: bump dependencies (#4000) * chore: bump test devDependencies * wip * fix script * fix lint errors * fix UTs * fix size regression * use a proper version * fix TS error * fix lint errors * run prettier * fix lint error Co-authored-by: Malcolm --- .babel-preset.js | 3 + .circleci/config.yml | 5 +- .eslintignore | 1 + .eslintrc | 45 +- .prettierrc.json | 6 - bundle-size/fixtures/Portal.size.js | 2 +- config.js | 3 +- docs/src/App.js | 4 +- docs/src/components/CarbonAd/CarbonAd.js | 8 +- .../src/components/CarbonAd/CarbonAdNative.js | 11 +- docs/src/components/CodeEditor/CodeEditor.js | 22 +- .../ComponentControlsCodeSandbox.js | 10 +- .../ComponentControlsCopyLink.js | 10 +- .../components/ComponentDoc/ComponentDoc.js | 20 +- .../ComponentDoc/ComponentDocLinks.js | 14 +- .../ComponentExample/ComponentExample.js | 34 +- .../ComponentExample/ComponentExampleTitle.js | 12 +- .../ComponentDoc/ComponentExamples.js | 12 +- .../ComponentPropDefaultValue.js | 8 +- .../ComponentProp/ComponentPropDescription.js | 8 +- .../ComponentProp/ComponentPropName.js | 10 +- .../ComponentProps/ComponentProps.js | 14 +- .../ComponentSidebarSection.js | 26 +- .../ComponentTable/ComponentTableRow.js | 20 +- .../ExampleEditor/ExampleEditor.js | 4 +- .../ExampleEditor/ExampleEditorMenu.js | 18 +- docs/src/components/CopyToClipboard.js | 20 +- docs/src/components/DocsLayout.js | 20 +- .../DocumentationPageFooter.js | 6 +- docs/src/components/LayoutsLayout.js | 8 +- docs/src/components/Sidebar/Sidebar.js | 18 +- .../Variations/BreadcrumbExampleSize.js | 4 +- .../Menu/Content/MenuExampleHeaderVertical.js | 2 +- .../MenuExampleColoredInvertedMenus.js | 5 - .../Variations/MenuExampleColoredMenus.js | 5 - .../Types/DividerExampleHorizontalTable.js | 4 +- .../Variations/DividerExampleHidden.js | 4 +- .../Groups/IconExampleCornerGroupPositions.js | 4 +- .../Input/Usage/InputExampleDatalist.js | 6 +- .../Types/PlaceholderExampleCard.js | 10 +- .../Dropdown/Types/DropdownExampleFloating.js | 2 +- .../Usage/DropdownExampleCloseOnBlur.js | 4 +- .../Usage/DropdownExampleCloseOnChange.js | 4 +- .../Usage/DropdownExampleCloseOnEscape.js | 4 +- .../Usage/DropdownExampleOpenOnFocus.js | 4 +- .../modules/Popup/Types/PopupExampleHeader.js | 4 +- .../Popup/Usage/PopupExampleContext.js | 4 +- .../Usage/PopupExampleContextControlled.js | 8 +- .../Popup/Usage/PopupExampleControlled.js | 5 +- .../Popup/Usage/PopupExampleHideOnScroll.js | 4 +- .../modules/Popup/Usage/PopupExampleOffset.js | 4 +- .../Usage/PopupExamplePopperDependencies.js | 4 +- .../Popup/Variations/PopupExampleInverted.js | 4 +- .../Popup/Variations/PopupExampleSize.js | 4 +- .../Popup/Variations/PopupExampleWide.js | 4 +- docs/src/layouts/HomepageLayout.js | 2 + gulp/plugins/gulp-example-menu.js | 7 +- gulp/plugins/gulp-example-source.js | 5 +- gulp/tasks/docs.js | 5 +- index.d.ts | 12 +- karma.conf.babel.js | 7 +- package.json | 136 +- src/addons/Confirm/Confirm.js | 86 +- src/addons/MountNode/MountNode.d.ts | 2 +- src/addons/MountNode/MountNode.js | 16 +- src/addons/Pagination/Pagination.d.ts | 4 +- src/addons/Pagination/Pagination.js | 154 +- src/addons/Pagination/PaginationItem.d.ts | 2 +- src/addons/Pagination/PaginationItem.js | 68 +- src/addons/Portal/Portal.d.ts | 4 +- src/addons/Portal/Portal.js | 206 +- src/addons/Portal/PortalInner.d.ts | 2 +- src/addons/Portal/PortalInner.js | 54 +- src/addons/Responsive/Responsive.d.ts | 2 +- src/addons/Responsive/Responsive.js | 82 +- src/addons/TextArea/TextArea.d.ts | 2 +- src/addons/TextArea/TextArea.js | 60 +- .../TransitionablePortal.js | 100 +- src/behaviors/Visibility/Visibility.d.ts | 4 +- src/behaviors/Visibility/Visibility.js | 310 +- src/collections/Breadcrumb/Breadcrumb.d.ts | 2 +- .../Breadcrumb/BreadcrumbSection.js | 64 +- src/collections/Form/Form.js | 116 +- src/collections/Menu/Menu.d.ts | 2 +- src/collections/Menu/Menu.js | 176 +- src/collections/Menu/MenuItem.js | 106 +- src/collections/Message/Message.d.ts | 4 +- src/collections/Message/Message.js | 152 +- src/collections/Table/Table.d.ts | 2 +- src/elements/Button/Button.d.ts | 2 +- src/elements/Button/Button.js | 256 +- src/elements/Flag/Flag.d.ts | 4 +- src/elements/Flag/Flag.js | 30 +- src/elements/Icon/Icon.d.ts | 2 +- src/elements/Icon/Icon.js | 124 +- src/elements/Input/Input.d.ts | 4 +- src/elements/Input/Input.js | 148 +- src/elements/Label/Label.d.ts | 2 +- src/elements/Label/Label.js | 194 +- src/elements/List/List.d.ts | 2 +- src/elements/List/List.js | 142 +- src/elements/List/ListItem.js | 109 +- src/elements/Step/Step.d.ts | 4 +- src/elements/Step/Step.js | 110 +- src/generic.d.ts | 9 +- src/lib/customPropTypes.js | 12 +- src/modules/Accordion/Accordion.d.ts | 2 +- src/modules/Accordion/AccordionAccordion.js | 102 +- src/modules/Accordion/AccordionPanel.d.ts | 2 +- src/modules/Accordion/AccordionPanel.js | 50 +- src/modules/Accordion/AccordionTitle.js | 61 +- src/modules/Checkbox/Checkbox.js | 188 +- src/modules/Dimmer/Dimmer.js | 22 +- src/modules/Dimmer/DimmerInner.d.ts | 2 +- src/modules/Dimmer/DimmerInner.js | 98 +- src/modules/Dropdown/Dropdown.d.ts | 8 +- src/modules/Dropdown/Dropdown.js | 687 ++- src/modules/Dropdown/DropdownItem.js | 110 +- src/modules/Dropdown/DropdownSearchInput.js | 50 +- src/modules/Dropdown/index.d.ts | 7 +- src/modules/Embed/Embed.js | 138 +- src/modules/Modal/Modal.d.ts | 6 +- src/modules/Modal/Modal.js | 244 +- src/modules/Modal/ModalActions.js | 50 +- src/modules/Popup/Popup.d.ts | 12 +- src/modules/Popup/Popup.js | 266 +- src/modules/Progress/Progress.js | 150 +- src/modules/Rating/Rating.js | 100 +- src/modules/Rating/RatingIcon.js | 90 +- src/modules/Search/Search.d.ts | 6 +- src/modules/Search/Search.js | 338 +- src/modules/Search/SearchCategory.d.ts | 2 +- src/modules/Search/SearchResult.js | 98 +- src/modules/Sidebar/Sidebar.d.ts | 2 +- src/modules/Sidebar/Sidebar.js | 160 +- src/modules/Sticky/Sticky.d.ts | 6 +- src/modules/Sticky/Sticky.js | 142 +- src/modules/Tab/Tab.d.ts | 8 +- src/modules/Tab/Tab.js | 118 +- src/modules/Transition/Transition.js | 156 +- src/modules/Transition/TransitionGroup.js | 60 +- src/views/Card/Card.d.ts | 6 +- src/views/Card/Card.js | 124 +- src/views/Feed/Feed.d.ts | 2 +- src/views/Item/Item.d.ts | 10 +- test/.eslintrc | 11 +- .../addons/Pagination/Pagination-test.js | 10 +- test/specs/addons/Portal/Portal-test.js | 4 - .../behaviors/Visibility/Visibility-test.js | 67 +- test/specs/collections/Menu/Menu-test.js | 15 +- .../collections/Message/MessageList-test.js | 19 +- test/specs/collections/Table/Table-test.js | 39 +- test/specs/commonTests/tsHelpers.js | 2 +- test/specs/elements/Button/Button-test.js | 30 +- test/specs/elements/Input/Input-test.js | 5 +- test/specs/lib/factories-test.js | 20 +- test/specs/lib/isBrowser-test.js | 8 +- .../Accordion/AccordionAccordion-test.js | 40 +- test/specs/modules/Dimmer/DimmerInner-test.js | 5 +- test/specs/modules/Dropdown/Dropdown-test.js | 294 +- test/specs/modules/Popup/Popup-test.js | 5 +- test/specs/modules/Rating/Rating-test.js | 106 +- test/specs/modules/Search/Search-test.js | 70 +- test/specs/modules/Sticky/Sticky-test.js | 75 +- test/specs/modules/Tab/Tab-test.js | 174 +- .../Transition/TransitionGroup-test.js | 25 +- test/specs/views/Card/CardGroup-test.js | 10 +- test/specs/views/Item/ItemGroup-test.js | 10 +- test/typings.tsx | 12 +- test/utils/assertBodyClasses.js | 5 +- tslint.json | 17 - yarn.lock | 4990 +++++++++-------- 172 files changed, 6569 insertions(+), 6801 deletions(-) delete mode 100644 tslint.json diff --git a/.babel-preset.js b/.babel-preset.js index ec786a0795..fcb3b86ec4 100644 --- a/.babel-preset.js +++ b/.babel-preset.js @@ -24,6 +24,9 @@ const plugins = [ '@babel/plugin-transform-runtime', { regenerator: isDocsBuild, + useESModules: isESBuild, + // https://github.com/babel/babel/issues/10261 + version: require('@babel/runtime/package.json').version, }, ], // Plugins that allow to reduce the target bundle size diff --git a/.circleci/config.yml b/.circleci/config.yml index 372ca0cf21..302f79bb34 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -71,10 +71,7 @@ jobs: at: ~/project - *restore_node_modules - run: - name: Lint TypeScript - command: yarn tsd:lint - - run: - name: Lint JavaScript + name: Lint command: yarn lint workflows: diff --git a/.eslintignore b/.eslintignore index b501af3790..5053239b57 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ +bundle-size/dist/* coverage/* dist/* docs/dist/* diff --git a/.eslintrc b/.eslintrc index f83bbc8246..14d66ad96c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,4 +1,5 @@ { + "root": true, "parser": "babel-eslint", "extends": ["airbnb", "prettier"], "env": { @@ -15,11 +16,14 @@ "no-multi-spaces": ["error", { "ignoreEOLComments": true }], "no-return-assign": ["error", "except-parens"], "no-underscore-dangle": "off", - "padded-blocks": ["error", { - "blocks": "never", - "switches": "never", - "classes": "never" - }], + "padded-blocks": [ + "error", + { + "blocks": "never", + "switches": "never", + "classes": "never" + } + ], "prefer-destructuring": "off", "jsx-a11y/alt-text": "warn", "jsx-a11y/anchor-is-valid": "off", @@ -28,6 +32,8 @@ "jsx-a11y/label-has-associated-control": "warn", "jsx-a11y/no-static-element-interactions": "warn", "jsx-a11y/role-has-required-aria-props": "warn", + "import/named": "off", + "import/no-cycle": "off", "import/no-dynamic-require": "off", "import/no-extraneous-dependencies": "off", "import/no-unresolved": "off", @@ -36,11 +42,32 @@ "react/button-has-type": "off", "react/destructuring-assignment": "off", "react/forbid-prop-types": "off", - "react/jsx-one-expression-per-line": "off", - "react/jsx-filename-extension": [2, { "extensions": [".js"] }], + "react/jsx-curly-newline": "off", + "react/jsx-one-expression-per-line": "off", + "react/jsx-filename-extension": ["error", { "extensions": [".js", ".tsx"] }], + "react/jsx-props-no-spreading": "off", "react/jsx-wrap-multilines": "off", + "react/prefer-stateless-function": "off", "react/no-unused-prop-types": "off", "react/sort-comp": "off", - "react/require-default-props":"off" - } + "react/state-in-constructor": "off", + "react/require-default-props": "off" + }, + "overrides": [ + { + "files": ["**/*.ts", "**/*.tsx"], + "parser": "@typescript-eslint/parser", + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-interface": "off" + } + } + ] } diff --git a/.prettierrc.json b/.prettierrc.json index 14bedecbad..75c5a1bfc7 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -14,12 +14,6 @@ "parser": "json" } }, - { - "files": "*.{ts,tsx}", - "options": { - "semi": true - } - }, { "files": "docs/src/examples/**/*.js", "options": { diff --git a/bundle-size/fixtures/Portal.size.js b/bundle-size/fixtures/Portal.size.js index c9d1221490..1d225e4b40 100644 --- a/bundle-size/fixtures/Portal.size.js +++ b/bundle-size/fixtures/Portal.size.js @@ -3,7 +3,7 @@ import React from 'react' import ReactDOM from 'react-dom' function App() { - return }>Some content + return A button}>Some content } ReactDOM.render(, document.querySelector('#root')) diff --git a/config.js b/config.js index 320e7b93eb..4bf56aaaf0 100644 --- a/config.js +++ b/config.js @@ -61,7 +61,7 @@ const config = { hash: false, // the hash of the compilation version: false, // webpack version info timings: true, // timing info - assets: true, // assets info + assets: false, // assets info chunks: false, // chunk info colors: true, // with console colors chunkModules: false, // built modules info to chunk info @@ -74,6 +74,7 @@ const config = { modulesSort: '', // (string) sort the modules by that field chunksSort: '', // (string) sort the chunks by that field assetsSort: '', // (string) sort the assets by that field + warningsFilter: [/critical dependency:/i], }, } diff --git a/docs/src/App.js b/docs/src/App.js index 87b9a55902..7a84ff61b5 100644 --- a/docs/src/App.js +++ b/docs/src/App.js @@ -11,7 +11,7 @@ import { docTypes } from './utils' const App = ({ componentMenu, versions }) => (
- + <> {/* * We can't place inside of because it will be remounted on page @@ -33,7 +33,7 @@ const App = ({ componentMenu, versions }) => ( - +
) diff --git a/docs/src/components/CarbonAd/CarbonAd.js b/docs/src/components/CarbonAd/CarbonAd.js index b4cf5fdeed..67783fce68 100644 --- a/docs/src/components/CarbonAd/CarbonAd.js +++ b/docs/src/components/CarbonAd/CarbonAd.js @@ -30,10 +30,6 @@ const waitForLoad = () => { } class CarbonAd extends Component { - static propTypes = { - location: PropTypes.object.isRequired, - } - shouldComponentUpdate(nextProps) { return this.props.location.pathname !== nextProps.location.pathname } @@ -73,4 +69,8 @@ class CarbonAd extends Component { } } +CarbonAd.propTypes = { + location: PropTypes.object.isRequired, +} + export default withRouter(CarbonAd) diff --git a/docs/src/components/CarbonAd/CarbonAdNative.js b/docs/src/components/CarbonAd/CarbonAdNative.js index 2f747554cb..75cacfe963 100644 --- a/docs/src/components/CarbonAd/CarbonAdNative.js +++ b/docs/src/components/CarbonAd/CarbonAdNative.js @@ -9,10 +9,6 @@ const debug = makeDebugger('carbon-ad-native') const MAX_FAILED_ADS = 10 class CarbonAdNative extends PureComponent { - static propTypes = { - inverted: PropTypes.bool, - } - state = {} componentDidMount() { @@ -23,7 +19,8 @@ class CarbonAdNative extends PureComponent { this.getAd() } - componentWillUpdate() { + // eslint-disable-next-line camelcase + UNSAFE_componentWillUpdate() { const shouldGetAd = Date.now() - this.timeOfLastAd > 10000 debug('componentWillUpdate', { mounted: this.mounted, shouldGetAd }) if (shouldGetAd) { @@ -177,4 +174,8 @@ class CarbonAdNative extends PureComponent { } } +CarbonAdNative.propTypes = { + inverted: PropTypes.bool, +} + export default CarbonAdNative diff --git a/docs/src/components/CodeEditor/CodeEditor.js b/docs/src/components/CodeEditor/CodeEditor.js index 40a8e19d48..e0188ce109 100644 --- a/docs/src/components/CodeEditor/CodeEditor.js +++ b/docs/src/components/CodeEditor/CodeEditor.js @@ -97,17 +97,6 @@ class CodeEditor extends React.Component { editorRef = React.createRef() name = `docs-editor-${_.uniqueId()}` - static propTypes = { - active: PropTypes.bool, - showCursor: PropTypes.bool, - value: PropTypes.string.isRequired, - } - - static defaultProps = { - active: true, - showCursor: true, - } - componentDidMount() { this.setCursorVisibility(this.props.showCursor) } @@ -159,4 +148,15 @@ class CodeEditor extends React.Component { } } +CodeEditor.propTypes = { + active: PropTypes.bool, + showCursor: PropTypes.bool, + value: PropTypes.string.isRequired, +} + +CodeEditor.defaultProps = { + active: true, + showCursor: true, +} + export default CodeEditor diff --git a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js index 16599ba260..8a7f523b21 100644 --- a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js +++ b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js @@ -49,11 +49,6 @@ ReactDOM.render( ` class ComponentControlsCodeSandbox extends React.Component { - static propTypes = { - exampleCode: PropTypes.string.isRequired, - visible: PropTypes.bool.isRequired, - } - state = { exampleCode: '', sandboxUrl: '', @@ -123,4 +118,9 @@ class ComponentControlsCodeSandbox extends React.Component { } } +ComponentControlsCodeSandbox.propTypes = { + exampleCode: PropTypes.string.isRequired, + visible: PropTypes.bool.isRequired, +} + export default ComponentControlsCodeSandbox diff --git a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js index 643ce887f5..4a196661d2 100644 --- a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js +++ b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js @@ -5,11 +5,6 @@ import { Icon, Menu } from 'semantic-ui-react' export default class ComponentControlsCopyLink extends Component { state = {} - static propTypes = { - anchorName: PropTypes.string, - onClick: PropTypes.func, - } - shouldComponentUpdate(nextProps, nextState) { return this.state.active !== nextState.active } @@ -40,3 +35,8 @@ export default class ComponentControlsCopyLink extends Component { ) } } + +ComponentControlsCopyLink.propTypes = { + anchorName: PropTypes.string, + onClick: PropTypes.func, +} diff --git a/docs/src/components/ComponentDoc/ComponentDoc.js b/docs/src/components/ComponentDoc/ComponentDoc.js index f126ffa4f6..2fdf957059 100644 --- a/docs/src/components/ComponentDoc/ComponentDoc.js +++ b/docs/src/components/ComponentDoc/ComponentDoc.js @@ -20,16 +20,6 @@ const exampleEndStyle = { } class ComponentDoc extends Component { - static propTypes = { - componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired, - displayName: PropTypes.string.isRequired, - history: PropTypes.object.isRequired, - location: PropTypes.object.isRequired, - seeTags: docTypes.seeTags.isRequired, - sidebarSections: docTypes.sidebarSections.isRequired, - title: PropTypes.string.isRequired, - } - state = {} examplesRef = createRef() @@ -114,4 +104,14 @@ class ComponentDoc extends Component { } } +ComponentDoc.propTypes = { + componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired, + displayName: PropTypes.string.isRequired, + history: PropTypes.object.isRequired, + location: PropTypes.object.isRequired, + seeTags: docTypes.seeTags.isRequired, + sidebarSections: docTypes.sidebarSections.isRequired, + title: PropTypes.string.isRequired, +} + export default withRouteData(withRouter(ComponentDoc)) diff --git a/docs/src/components/ComponentDoc/ComponentDocLinks.js b/docs/src/components/ComponentDoc/ComponentDocLinks.js index 589ea6743c..7e08fe6034 100644 --- a/docs/src/components/ComponentDoc/ComponentDocLinks.js +++ b/docs/src/components/ComponentDoc/ComponentDocLinks.js @@ -15,13 +15,6 @@ const linkListStyle = { } export default class ComponentDocLinks extends PureComponent { - static propTypes = { - displayName: PropTypes.string.isRequired, - parentDisplayName: PropTypes.string, - repoPath: PropTypes.string.isRequired, - type: PropTypes.string.isRequired, - } - render() { const { displayName, parentDisplayName, repoPath, type } = this.props const ghLink = `${repoURL}/blob/master/${repoPath}` @@ -54,3 +47,10 @@ export default class ComponentDocLinks extends PureComponent { ) } } + +ComponentDocLinks.propTypes = { + displayName: PropTypes.string.isRequired, + parentDisplayName: PropTypes.string, + repoPath: PropTypes.string.isRequired, + type: PropTypes.string.isRequired, +} diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js index 4ec179bf57..f4c65a686d 100644 --- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js +++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js @@ -28,23 +28,6 @@ const componentControlsStyle = { * Allows toggling the raw `code` code block. */ class ComponentExample extends Component { - static propTypes = { - children: PropTypes.node, - description: PropTypes.node, - examplePath: PropTypes.string.isRequired, - history: PropTypes.object.isRequired, - location: PropTypes.object.isRequired, - onVisibilityChange: PropTypes.func.isRequired, - renderHtml: PropTypes.bool, - sourceCode: PropTypes.string.isRequired, - suiVersion: PropTypes.string, - title: PropTypes.node, - } - - static defaultProps = { - renderHtml: true, - } - constructor(props) { super(props) @@ -197,6 +180,23 @@ class ComponentExample extends Component { } } +ComponentExample.propTypes = { + children: PropTypes.node, + description: PropTypes.node, + examplePath: PropTypes.string.isRequired, + history: PropTypes.object.isRequired, + location: PropTypes.object.isRequired, + onVisibilityChange: PropTypes.func.isRequired, + renderHtml: PropTypes.bool, + sourceCode: PropTypes.string.isRequired, + suiVersion: PropTypes.string, + title: PropTypes.node, +} + +ComponentExample.defaultProps = { + renderHtml: true, +} + /* TODO: Replace this temporary component with hooks */ const Wrapper = (props) => { const { exampleSources, ...rest } = React.useContext(ComponentDocContext) diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js index 836c4af00a..d874981278 100644 --- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js +++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js @@ -7,12 +7,6 @@ const titleStyle = { } export default class ComponentExampleTitle extends Component { - static propTypes = { - description: PropTypes.node, - title: PropTypes.node, - suiVersion: PropTypes.string, - } - shouldComponentUpdate() { return false } @@ -40,3 +34,9 @@ export default class ComponentExampleTitle extends Component { ) } } + +ComponentExampleTitle.propTypes = { + description: PropTypes.node, + title: PropTypes.node, + suiVersion: PropTypes.string, +} diff --git a/docs/src/components/ComponentDoc/ComponentExamples.js b/docs/src/components/ComponentDoc/ComponentExamples.js index 8a91995080..a61f71493a 100644 --- a/docs/src/components/ComponentDoc/ComponentExamples.js +++ b/docs/src/components/ComponentDoc/ComponentExamples.js @@ -5,12 +5,6 @@ import { Grid } from 'semantic-ui-react' import ContributionPrompt from './ContributionPrompt' export default class ComponentExamples extends Component { - static propTypes = { - displayName: PropTypes.string.isRequired, - examplesExist: PropTypes.bool.isRequired, - type: PropTypes.string.isRequired, - } - renderExamples = () => { const { displayName, type } = this.props @@ -36,3 +30,9 @@ export default class ComponentExamples extends Component { return examplesExist ? this.renderExamples() : this.renderMissingExamples() } } + +ComponentExamples.propTypes = { + displayName: PropTypes.string.isRequired, + examplesExist: PropTypes.bool.isRequired, + type: PropTypes.string.isRequired, +} diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js index fa64be516c..06752fb812 100644 --- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js +++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js @@ -3,12 +3,12 @@ import PropTypes from 'prop-types' import React, { PureComponent } from 'react' export default class ComponentPropDefaultValue extends PureComponent { - static propTypes = { - value: PropTypes.node, - } - render() { const { value } = this.props return _.isNil(value) ? null : {value} } } + +ComponentPropDefaultValue.propTypes = { + value: PropTypes.node, +} diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js index 3c62eab401..8a6eea1306 100644 --- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js +++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js @@ -3,12 +3,12 @@ import PropTypes from 'prop-types' import React, { PureComponent } from 'react' export default class ComponentPropDescription extends PureComponent { - static propTypes = { - description: PropTypes.arrayOf(PropTypes.string), - } - render() { const { description } = this.props return

{_.map(description, (line) => [line,
])}

} } + +ComponentPropDescription.propTypes = { + description: PropTypes.arrayOf(PropTypes.string), +} diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js index 418c09c7b6..e49e8ab40d 100644 --- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js +++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js @@ -3,11 +3,6 @@ import React, { PureComponent } from 'react' import { Icon, Popup } from 'semantic-ui-react' export default class ComponentPropName extends PureComponent { - static propTypes = { - name: PropTypes.string, - required: PropTypes.bool, - } - render() { const { name, required } = this.props @@ -27,3 +22,8 @@ export default class ComponentPropName extends PureComponent { ) } } + +ComponentPropName.propTypes = { + name: PropTypes.string, + required: PropTypes.bool, +} diff --git a/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js b/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js index bb6c4ef8ce..ee01160df8 100644 --- a/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js +++ b/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js @@ -11,11 +11,6 @@ import ComponentPropsDescription from './ComponentPropsDescription' const propsContainerStyle = { overflowX: 'auto' } export default class ComponentProps extends Component { - static propTypes = { - componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired, - displayName: PropTypes.string.isRequired, - } - state = {} static getDerivedStateFromProps(props, state) { @@ -45,7 +40,7 @@ export default class ComponentProps extends Component { const description = _.get(docblock, 'description', []) return ( - + <> )} - + ) } } + +ComponentProps.propTypes = { + componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired, + displayName: PropTypes.string.isRequired, +} diff --git a/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js b/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js index 9278cf82b0..6a9a70bab4 100644 --- a/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js +++ b/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js @@ -4,19 +4,6 @@ import React, { PureComponent } from 'react' import { Accordion, Icon, Menu } from 'semantic-ui-react' export default class ComponentSidebarSection extends PureComponent { - static propTypes = { - activePath: PropTypes.string, - examples: PropTypes.arrayOf( - PropTypes.shape({ - title: PropTypes.string, - examplePath: PropTypes.string, - }), - ), - sectionName: PropTypes.string, - onItemClick: PropTypes.func, - onTitleClick: PropTypes.func, - } - state = {} static getDerivedStateFromProps(props, state) { @@ -66,3 +53,16 @@ export default class ComponentSidebarSection extends PureComponent { ) } } + +ComponentSidebarSection.propTypes = { + activePath: PropTypes.string, + examples: PropTypes.arrayOf( + PropTypes.shape({ + title: PropTypes.string, + examplePath: PropTypes.string, + }), + ), + sectionName: PropTypes.string, + onItemClick: PropTypes.func, + onTitleClick: PropTypes.func, +} diff --git a/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js b/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js index d6391f43b4..ba1322b582 100644 --- a/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js +++ b/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js @@ -9,16 +9,6 @@ import ComponentPropFunctionSignature from '../ComponentProp/ComponentPropFuncti import ComponentPropName from '../ComponentProp/ComponentPropName' export default class ComponentTableRow extends Component { - static propTypes = { - defaultValue: PropTypes.string, - description: PropTypes.arrayOf(PropTypes.string), - name: PropTypes.string, - required: PropTypes.bool, - tags: PropTypes.array, - type: PropTypes.string, - value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - } - state = {} toggleEnums = () => this.setState((prevState) => ({ showEnums: !prevState.showEnums })) @@ -50,3 +40,13 @@ export default class ComponentTableRow extends Component { ) } } + +ComponentTableRow.propTypes = { + defaultValue: PropTypes.string, + description: PropTypes.arrayOf(PropTypes.string), + name: PropTypes.string, + required: PropTypes.bool, + tags: PropTypes.array, + type: PropTypes.string, + value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), +} diff --git a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js index 66a491fa39..f545e6b82d 100644 --- a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js +++ b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js @@ -50,7 +50,7 @@ const ExampleEditor = (props) => { unstable_hot > {({ element, error, markup }) => ( - + <> { )} - + )} ) diff --git a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js index dfbd0bad27..e5660abde7 100644 --- a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js +++ b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js @@ -30,15 +30,6 @@ const getGithubEditHref = (examplePath) => { class ExampleEditorMenu extends PureComponent { state = {} - static propTypes = { - examplePath: PropTypes.string.isRequired, - hasError: PropTypes.bool.isRequired, - hasCodeChanged: PropTypes.bool.isRequired, - onCodeFormat: PropTypes.func.isRequired, - onCodeReset: PropTypes.func.isRequired, - sourceCode: PropTypes.string.isRequired, - } - constructor(props) { super(props) this.state = { @@ -116,4 +107,13 @@ class ExampleEditorMenu extends PureComponent { } } +ExampleEditorMenu.propTypes = { + examplePath: PropTypes.string.isRequired, + hasError: PropTypes.bool.isRequired, + hasCodeChanged: PropTypes.bool.isRequired, + onCodeFormat: PropTypes.func.isRequired, + onCodeReset: PropTypes.func.isRequired, + sourceCode: PropTypes.string.isRequired, +} + export default ExampleEditorMenu diff --git a/docs/src/components/CopyToClipboard.js b/docs/src/components/CopyToClipboard.js index cd967d81f9..efee682a99 100644 --- a/docs/src/components/CopyToClipboard.js +++ b/docs/src/components/CopyToClipboard.js @@ -3,16 +3,6 @@ import React from 'react' import copyToClipboard from 'copy-to-clipboard' class CopyToClipboard extends React.Component { - static propTypes = { - render: PropTypes.func.isRequired, - timeout: PropTypes.number, - value: PropTypes.string.isRequired, - } - - static defaultProps = { - timeout: 3000, - } - state = { active: false, } @@ -44,4 +34,14 @@ class CopyToClipboard extends React.Component { } } +CopyToClipboard.propTypes = { + render: PropTypes.func.isRequired, + timeout: PropTypes.number, + value: PropTypes.string.isRequired, +} + +CopyToClipboard.defaultProps = { + timeout: 3000, +} + export default CopyToClipboard diff --git a/docs/src/components/DocsLayout.js b/docs/src/components/DocsLayout.js index c6eb1ee113..55fe0c0248 100644 --- a/docs/src/components/DocsLayout.js +++ b/docs/src/components/DocsLayout.js @@ -12,14 +12,6 @@ const anchors = new AnchorJS({ }) class DocsLayout extends Component { - static propTypes = { - additionalTitle: PropTypes.string, - children: PropTypes.node, - location: PropTypes.object.isRequired, - sidebar: PropTypes.bool, - title: PropTypes.string.isRequired, - } - componentDidMount() { this.resetPage() } @@ -54,7 +46,7 @@ class DocsLayout extends Component { const mainStyle = sidebar ? style.sidebarMain : style.main return ( - + <> {additionalTitle ? `${additionalTitle} - ` : ''} @@ -62,9 +54,17 @@ class DocsLayout extends Component {
{children}
-
+ ) } } +DocsLayout.propTypes = { + additionalTitle: PropTypes.string, + children: PropTypes.node, + location: PropTypes.object.isRequired, + sidebar: PropTypes.bool, + title: PropTypes.string.isRequired, +} + export default withRouter(DocsLayout) diff --git a/docs/src/components/DocumentationPage/DocumentationPageFooter.js b/docs/src/components/DocumentationPage/DocumentationPageFooter.js index 1305c96b5e..2f2b2cf8bf 100644 --- a/docs/src/components/DocumentationPage/DocumentationPageFooter.js +++ b/docs/src/components/DocumentationPage/DocumentationPageFooter.js @@ -1,11 +1,11 @@ import PropTypes from 'prop-types' -import React, { Fragment } from 'react' +import React from 'react' import { Link } from 'react-static' import { Divider, Grid, Header } from 'semantic-ui-react' const DocumentationPageFooter = ({ nextPage, prevPage }) => nextPage || prevPage ? ( - + <> @@ -25,7 +25,7 @@ const DocumentationPageFooter = ({ nextPage, prevPage }) => )} - + ) : null DocumentationPageFooter.propTypes = { diff --git a/docs/src/components/LayoutsLayout.js b/docs/src/components/LayoutsLayout.js index 33623f0543..920a6322c3 100644 --- a/docs/src/components/LayoutsLayout.js +++ b/docs/src/components/LayoutsLayout.js @@ -28,10 +28,6 @@ const style = ( ) class LayoutsLayout extends PureComponent { - static propTypes = { - componentFilename: PropTypes.string.isRequired, - } - constructor(props) { super(props) @@ -71,4 +67,8 @@ class LayoutsLayout extends PureComponent { } } +LayoutsLayout.propTypes = { + componentFilename: PropTypes.string.isRequired, +} + export default withRouteData(LayoutsLayout) diff --git a/docs/src/components/Sidebar/Sidebar.js b/docs/src/components/Sidebar/Sidebar.js index a0f3fde279..cab35ffac7 100644 --- a/docs/src/components/Sidebar/Sidebar.js +++ b/docs/src/components/Sidebar/Sidebar.js @@ -31,15 +31,6 @@ SelectedItemLabel.propTypes = { } class Sidebar extends Component { - static propTypes = { - componentMenu: docTypes.componentMenu.isRequired, - history: PropTypes.object.isRequired, - location: PropTypes.object.isRequired, - match: PropTypes.object.isRequired, - style: PropTypes.object, - version: PropTypes.string.isRequired, - } - state = { query: '' } constructor(props) { @@ -257,4 +248,13 @@ class Sidebar extends Component { } } +Sidebar.propTypes = { + componentMenu: docTypes.componentMenu.isRequired, + history: PropTypes.object.isRequired, + location: PropTypes.object.isRequired, + match: PropTypes.object.isRequired, + style: PropTypes.object, + version: PropTypes.string.isRequired, +} + export default Sidebar diff --git a/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js b/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js index f9425f4c3c..67f0761109 100644 --- a/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js +++ b/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js @@ -4,7 +4,7 @@ import { Breadcrumb, Divider } from 'semantic-ui-react' const sizes = ['mini', 'tiny', 'small', 'large', 'big', 'huge', 'massive'] const BreadcrumbExampleSize = () => ( - + <> {sizes.map((size) => ( @@ -17,7 +17,7 @@ const BreadcrumbExampleSize = () => ( ))} - + ) export default BreadcrumbExampleSize diff --git a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js index c32207e0c9..2c523d27f8 100644 --- a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js +++ b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js @@ -3,7 +3,7 @@ import { Menu } from 'semantic-ui-react' export default class MenuExampleHeaderVertical extends Component { state = {} - handleItemClick = (e, { name }) => this.setState({ activeItem: name }); + handleItemClick = (e, { name }) => this.setState({ activeItem: name }) render() { const { activeItem } = this.state diff --git a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js index 0e64fbed4e..66b42fe141 100644 --- a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js +++ b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js @@ -1,4 +1,3 @@ -import PropTypes from 'prop-types' import React, { Component } from 'react' import { Menu } from 'semantic-ui-react' @@ -19,10 +18,6 @@ const colors = [ ] class ExampleMenu extends Component { - static propTypes = { - color: PropTypes.string, - } - state = { activeItem: 'home' } handleItemClick = (e, { name }) => this.setState({ activeItem: name }) diff --git a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js index 271cddb058..2c50d27667 100644 --- a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js +++ b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js @@ -1,4 +1,3 @@ -import PropTypes from 'prop-types' import React, { Component } from 'react' import { Menu } from 'semantic-ui-react' @@ -19,10 +18,6 @@ const colors = [ ] class ExampleMenu extends Component { - static propTypes = { - color: PropTypes.string, - } - state = { activeItem: 'home' } handleItemClick = (e, { name }) => this.setState({ activeItem: name }) diff --git a/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js b/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js index 03b5474b8a..64b1a7f3d9 100644 --- a/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js +++ b/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js @@ -2,7 +2,7 @@ import React from 'react' import { Divider, Header, Icon, Table } from 'semantic-ui-react' const DividerExampleHorizontalTable = () => ( - + <>
@@ -42,7 +42,7 @@ const DividerExampleHorizontalTable = () => ( - + ) export default DividerExampleHorizontalTable diff --git a/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js b/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js index 41fcb2f48a..b7ea28ebf5 100644 --- a/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js +++ b/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js @@ -2,7 +2,7 @@ import React from 'react' import { Divider, Header, Image } from 'semantic-ui-react' const DividerExampleHidden = () => ( - + <>
Section One
@@ -10,7 +10,7 @@ const DividerExampleHidden = () => (
Section Two
-
+ ) export default DividerExampleHidden diff --git a/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js b/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js index 2d2e7f6c6e..5ee721ebd0 100644 --- a/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js +++ b/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js @@ -2,7 +2,7 @@ import React from 'react' import { Icon } from 'semantic-ui-react' const IconExampleCornerGroupPositions = () => ( - + <> @@ -22,7 +22,7 @@ const IconExampleCornerGroupPositions = () => ( - + ) export default IconExampleCornerGroupPositions diff --git a/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js b/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js index e2ddf96ec7..512010fd82 100644 --- a/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js +++ b/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js @@ -5,9 +5,9 @@ const InputExampleDatalist = () => (
- + +
) diff --git a/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js b/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js index c69092c707..b29ae3f639 100644 --- a/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js +++ b/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js @@ -1,5 +1,5 @@ import _ from 'lodash' -import React, { Component, Fragment } from 'react' +import React, { Component } from 'react' import { Button, Card, Divider, Image, Placeholder } from 'semantic-ui-react' const cards = [ @@ -38,7 +38,7 @@ export default class PlaceholderExampleCard extends Component { const { loading } = this.state return ( - + <> @@ -67,11 +67,11 @@ export default class PlaceholderExampleCard extends Component { ) : ( - + <> {card.header} {card.date} {card.description} - + )} @@ -84,7 +84,7 @@ export default class PlaceholderExampleCard extends Component { ))} - + ) } } diff --git a/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js b/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js index 2dfc9a0f36..c920fc9295 100644 --- a/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js +++ b/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js @@ -14,7 +14,7 @@ const DropdownExampleFloating = () => ( className='button icon' floating options={options} - trigger={} + trigger={<>} /> ) diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js index bee2310ada..fcb3441f87 100644 --- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js +++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js @@ -41,7 +41,7 @@ const friendOptions = [ ] const DropdownExampleCloseOnBlur = () => ( - + <> ( selection options={friendOptions} /> - + ) export default DropdownExampleCloseOnBlur diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js index c052c446c4..9ab0d08f2d 100644 --- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js +++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js @@ -10,7 +10,7 @@ const getOptions = (number, prefix = 'Choice ') => })) const DropdownExampleCloseOnChange = () => ( - + <> ( options={getOptions(5)} placeholder='I stay open on change' /> - + ) export default DropdownExampleCloseOnChange diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js index bff4daf458..59026c8e05 100644 --- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js +++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js @@ -41,7 +41,7 @@ const friendOptions = [ ] const DropdownExampleCloseOnEscape = () => ( - + <> ( selection options={friendOptions} /> - + ) export default DropdownExampleCloseOnEscape diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js index f6cfc74e69..5dd2465798 100644 --- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js +++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js @@ -41,7 +41,7 @@ const friendOptions = [ ] const DropdownExampleOpenOnFocus = () => ( - + <> ( selection options={friendOptions} /> - + ) export default DropdownExampleOpenOnFocus diff --git a/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js b/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js index 4c9ae76985..a2ec245e72 100644 --- a/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js +++ b/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js @@ -20,7 +20,7 @@ const users = [ ] const PopupExampleHeader = () => ( - + <> {users.map((user) => ( ( trigger={} /> ))} - + ) export default PopupExampleHeader diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js b/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js index eceb732e15..fb481a8927 100644 --- a/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js +++ b/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js @@ -6,7 +6,7 @@ class PopupExampleContextControlled extends React.Component { render() { return ( - + <> } context={this.contextRef} @@ -15,7 +15,7 @@ class PopupExampleContextControlled extends React.Component { /> ----------> here - + ) } } diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js b/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js index 6696d7cb03..73d74637e7 100644 --- a/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js +++ b/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js @@ -1,15 +1,15 @@ -import React, { createRef, Fragment } from 'react' +import React from 'react' import { Button, Popup } from 'semantic-ui-react' class PopupExampleContextControlled extends React.Component { state = {} - contextRef = createRef() + contextRef = React.createRef() toggle = () => this.setState((prevState) => ({ open: !prevState.open })) render() { return ( - + <> } content='Hide the popup on any scroll event' @@ -14,7 +14,7 @@ const PopupExampleHideOnScroll = () => ( content='Hide the popup on any scroll event' hideOnScroll /> - + ) export default PopupExampleHideOnScroll diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js b/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js index ae24a0991a..a7cb9ed843 100644 --- a/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js +++ b/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js @@ -2,7 +2,7 @@ import React from 'react' import { Icon, Popup } from 'semantic-ui-react' const PopupExampleOffset = () => ( - + <> } content='Way off to the left' @@ -27,7 +27,7 @@ const PopupExampleOffset = () => ( offset='0, 50px' position='bottom center' /> - + ) export default PopupExampleOffset diff --git a/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js b/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js index 7f6ae44cc4..61cfe77d7b 100644 --- a/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js +++ b/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js @@ -40,10 +40,10 @@ const PopupExamplePopperDependencies = () => { ) : ( - + <>

{data.description}

- + )} ) diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js b/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js index 0f62b9ec70..29eaecd0f1 100644 --- a/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js +++ b/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js @@ -2,7 +2,7 @@ import React from 'react' import { Button, Icon, Popup } from 'semantic-ui-react' const PopupExampleInverted = () => ( - + <> } content='Hello. This is an inverted popup' @@ -13,7 +13,7 @@ const PopupExampleInverted = () => ( content='Hello. This is an inverted popup' inverted /> - + ) export default PopupExampleInverted diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js b/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js index 13c2fd811f..d6a49dd33f 100644 --- a/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js +++ b/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js @@ -2,7 +2,7 @@ import React from 'react' import { Icon, Popup } from 'semantic-ui-react' const PopupExampleSize = () => ( - + <> } content='Hello. This is a mini popup' @@ -28,7 +28,7 @@ const PopupExampleSize = () => ( content='Hello. This is a huge popup' size='huge' /> - + ) export default PopupExampleSize diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js b/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js index bef46603d1..175cc98c6b 100644 --- a/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js +++ b/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js @@ -2,7 +2,7 @@ import React from 'react' import { Icon, Popup } from 'semantic-ui-react' const PopupExampleWide = () => ( - + <> }> Hello. This is a regular pop-up which does not allow for lots of content. You cannot fit a lot of words here as the paragraphs will be pretty @@ -18,7 +18,7 @@ const PopupExampleWide = () => ( additional space. You can fit a lot of words here and the paragraphs will be pretty wide. - + ) export default PopupExampleWide diff --git a/docs/src/layouts/HomepageLayout.js b/docs/src/layouts/HomepageLayout.js index daba3b17e5..9e49cf6275 100644 --- a/docs/src/layouts/HomepageLayout.js +++ b/docs/src/layouts/HomepageLayout.js @@ -1,3 +1,5 @@ +/* eslint-disable max-classes-per-file */ + import PropTypes from 'prop-types' import React, { Component } from 'react' import { diff --git a/gulp/plugins/gulp-example-menu.js b/gulp/plugins/gulp-example-menu.js index 96fcb1bf69..650a4d670c 100644 --- a/gulp/plugins/gulp-example-menu.js +++ b/gulp/plugins/gulp-example-menu.js @@ -62,9 +62,10 @@ export default () => { function endStream(cb) { _.forEach(exampleFilesByDisplayName, (contents, displayName) => { - const sortedContents = _.sortBy(contents, ['order', 'sectionName']).map( - ({ sectionName, examples }) => ({ sectionName, examples }), - ) + const sortedContents = _.sortBy(contents, [ + 'order', + 'sectionName', + ]).map(({ sectionName, examples }) => ({ sectionName, examples })) const file = new Vinyl({ path: `./${displayName}.examples.json`, diff --git a/gulp/plugins/gulp-example-source.js b/gulp/plugins/gulp-example-source.js index 6a732a899f..9d48655ee0 100644 --- a/gulp/plugins/gulp-example-source.js +++ b/gulp/plugins/gulp-example-source.js @@ -23,10 +23,7 @@ export default () => { } try { - const sourceName = _.split(file.path, path.sep) - .slice(-4) - .join('/') - .slice(0, -3) + const sourceName = _.split(file.path, path.sep).slice(-4).join('/').slice(0, -3) exampleSources[sourceName] = file.contents.toString() cb() diff --git a/gulp/tasks/docs.js b/gulp/tasks/docs.js index 77ee5c952a..1be6ecbe1c 100644 --- a/gulp/tasks/docs.js +++ b/gulp/tasks/docs.js @@ -28,10 +28,7 @@ const handleWatchChange = (filename) => * @returns {String} */ const toUniversalGlob = (directory, glob) => { - const relative = path - .relative(process.cwd(), directory) - .split(path.sep) - .join('/') + const relative = path.relative(process.cwd(), directory).split(path.sep).join('/') return `${relative}/${glob}` } diff --git a/index.d.ts b/index.d.ts index e7f6988eab..9d5addd4f0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -38,7 +38,11 @@ export { StrictResponsiveProps, } from './dist/commonjs/addons/Responsive' export { default as Select, SelectProps } from './dist/commonjs/addons/Select' -export { default as TextArea, TextAreaProps, StrictTextAreaProps } from './dist/commonjs/addons/TextArea' +export { + default as TextArea, + TextAreaProps, + StrictTextAreaProps, +} from './dist/commonjs/addons/TextArea' export { default as TransitionablePortal, TransitionablePortalProps, @@ -625,11 +629,7 @@ export { StrictCardMetaProps, } from './dist/commonjs/views/Card/CardMeta' -export { - default as Comment, - CommentProps, - StrictCommentProps, -} from './dist/commonjs/views/Comment' +export { default as Comment, CommentProps, StrictCommentProps } from './dist/commonjs/views/Comment' export { default as CommentAction, CommentActionProps, diff --git a/karma.conf.babel.js b/karma.conf.babel.js index 7a31de2f0e..4d84845012 100644 --- a/karma.conf.babel.js +++ b/karma.conf.babel.js @@ -1,10 +1,10 @@ import fs from 'fs' -import { executablePath } from 'puppeteer' +import puppeteer from 'puppeteer' import config from './config' import webpackConfig from './webpack.karma.config' -process.env.CHROME_BIN = executablePath() +process.env.CHROME_BIN = puppeteer.executablePath() const { paths } = config @@ -69,9 +69,6 @@ export default (karmaConfig) => { ], formatError, frameworks: ['mocha'], - mochaReporter: { - output: 'minimal', - }, // make karma serve all files that the web server does: /* => /docs/app/* proxies: fs.readdirSync(paths.docsPublic()).reduce((acc, file) => { const isDir = fs.statSync(paths.docsPublic(file)).isDirectory() diff --git a/package.json b/package.json index da67d3126f..2f061aa2e6 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ "build:dist": "gulp build:dist", "prebuild:size": "gulp build:dist:es", "build:size": "node bundle-size/bundle.js", - "ci": "yarn tsd:lint && yarn tsd:test && yarn lint && yarn test", + "ci": "yarn tsd:test && yarn lint && yarn test", "predeploy:docs": "cross-env NODE_ENV=production yarn build:docs && gulp build:docs:cname", "deploy:changelog": "git add CHANGELOG.md && git commit -m \"docs(changelog): update changelog [ci skip]\" && git push", "deploy:docs": "gulp deploy:docs", "postdeploy:docs": "yarn build:changelog && yarn deploy:changelog", - "lint": "cross-env NODE_ENV=production eslint .", + "lint": "cross-env NODE_ENV=production eslint . --ext .js,.ts,.tsx", "lint:fix": "yarn lint --fix", "prettier": "prettier --list-different \"**/*.{js,jsx,ts,tsx}\"", "prettier:fix": "prettier --write \"**/*.{js,jsx,ts,tsx}\"", @@ -42,9 +42,7 @@ "test": "cross-env NODE_ENV=test node -r @babel/register ./node_modules/karma/bin/karma start karma.conf.babel.js", "test:watch": "yarn test --no-single-run", "test:umd": "gulp build:dist:umd && node test/umd.js", - "tsd:lint": "tslint \"./index.d.ts\" \"./src/**/*.d.ts\" \"./src/**/*.tsx\" \"./test/**/*.d.ts\" \"./test/**/*.tsx\"", - "tsd:lint:fix": "yarn tsd:lint --fix", - "tsd:test": "gulp build:dist:commonjs:tsd && tsc -p ./ && rm test/typings.js" + "tsd:test": "gulp build:dist:commonjs:tsd && tsc -p ./ && rimraf test/typings.js" }, "husky": { "hooks": { @@ -53,7 +51,7 @@ } }, "lint-staged": { - "**/*.{js,jsx}": [ + "**/*.{js,jsx,ts,tsx}": [ "prettier --write", "eslint --fix", "git add" @@ -61,11 +59,6 @@ "**/*.mdx": [ "prettier --parser mdx --write", "git add" - ], - "**/*.{ts,tsx}": [ - "prettier --write", - "tslint --fix", - "git add" ] }, "repository": { @@ -79,81 +72,84 @@ }, "homepage": "https://github.com/Semantic-Org/Semantic-UI-React#readme", "dependencies": { - "@babel/runtime": "^7.1.2", + "@babel/runtime": "^7.10.5", "@semantic-ui-react/event-stack": "^3.1.0", "@stardust-ui/react-component-event-listener": "~0.38.0", "@stardust-ui/react-component-ref": "~0.38.0", "classnames": "^2.2.6", - "keyboard-key": "^1.0.4", - "lodash": "^4.17.15", + "keyboard-key": "^1.1.0", + "lodash": "^4.17.19", "prop-types": "^15.7.2", "react-is": "^16.8.6", - "react-popper": "^1.3.4", + "react-popper": "^1.3.7", "shallowequal": "^1.1.0" }, "devDependencies": { - "@babel/cli": "^7.4.4", - "@babel/core": "^7.4.5", - "@babel/plugin-proposal-class-properties": "^7.4.4", - "@babel/plugin-proposal-export-default-from": "^7.2.0", - "@babel/plugin-proposal-export-namespace-from": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-transform-runtime": "^7.4.4", - "@babel/preset-env": "^7.4.5", - "@babel/preset-env-standalone": "7.4.5", - "@babel/preset-react": "^7.0.0", - "@babel/register": "^7.4.4", - "@babel/standalone": "^7.4.5", + "@babel/cli": "^7.10.5", + "@babel/core": "^7.10.5", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-export-default-from": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.10.5", + "@babel/preset-env": "^7.10.4", + "@babel/preset-env-standalone": "7.8.3", + "@babel/preset-react": "^7.10.4", + "@babel/register": "^7.10.5", + "@babel/standalone": "^7.10.5", "@mdx-js/loader": "^0.20.3", "@size-limit/file": "^4.5.5", "@stardust-ui/docs-components": "^0.34.1", - "@types/react": "^16.8.25", - "anchor-js": "^4.2.0", - "babel-eslint": "^10.0.2", - "babel-loader": "^8.0.6", - "babel-plugin-filter-imports": "^3.0.0", - "babel-plugin-istanbul": "^5.1.4", + "@types/react": "^16.9.43", + "@typescript-eslint/eslint-plugin": "^3.7.1", + "@typescript-eslint/parser": "^3.7.1", + "anchor-js": "^4.2.2", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.1.0", + "babel-plugin-filter-imports": "^4.0.0", + "babel-plugin-istanbul": "^6.0.0", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-transform-react-handled-props": "^2.0.0", + "babel-plugin-transform-react-handled-props": "^2.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "babel-plugin-universal-import": "^2.0.2", "chai": "^4.2.0", "chai-enzyme": "^1.0.0-beta.1", - "copy-to-clipboard": "^3.0.8", - "cross-env": "^5.2.0", + "copy-to-clipboard": "^3.3.1", + "cross-env": "^7.0.2", "debug": "^4.1.1", "dirty-chai": "^2.0.1", "doctoc": "^1.4.0", "doctrine": "^3.0.0", - "enzyme": "^3.10.0", - "enzyme-adapter-react-16": "^1.14.0", - "eslint": "^5.15.2", - "eslint-config-airbnb": "^17.1.0", - "eslint-config-prettier": "^4.1.0", - "eslint-plugin-import": "^2.16.0", - "eslint-plugin-jsx-a11y": "^6.2.1", - "eslint-plugin-mocha": "^5.3.0", - "eslint-plugin-react": "^7.12.4", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.2", + "eslint": "^7.5.0", + "eslint-config-airbnb": "^18.2.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-mocha": "^7.0.1", + "eslint-plugin-react": "^7.20.4", + "eslint-plugin-react-hooks": "^4.0.8", "faker": "^4.1.0", - "gh-pages": "^2.0.1", - "gulp": "^4.0.0", - "gulp-load-plugins": "^1.5.0", + "gh-pages": "^3.1.0", + "gulp": "^4.0.2", + "gulp-load-plugins": "^2.0.3", "gulp-util": "^3.0.8", - "husky": "^1.3.1", - "imports-loader": "^0.8.0", - "karma": "^4.0.1", - "karma-chrome-launcher": "^2.2.0", + "husky": "^4.2.5", + "imports-loader": "^1.1.0", + "karma": "^5.1.0", + "karma-chrome-launcher": "^3.1.0", "karma-cli": "^2.0.0", - "karma-coverage": "^1.1.2", - "karma-mocha": "^1.3.0", + "karma-coverage": "^2.0.2", + "karma-mocha": "^2.0.1", "karma-mocha-reporter": "^2.2.5", - "karma-webpack": "^4.0.0-rc.6", - "leven": "^3.0.0", - "lint-staged": "^8.1.5", - "mocha": "^6.0.2", - "prettier": "^1.18.2", - "puppeteer": "^1.7.0", - "raw-loader": "^1.0.0", + "karma-webpack": "^4.0.2", + "leven": "^3.1.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "prettier": "^2.0.5", + "puppeteer": "^5.2.1", + "raw-loader": "^4.0.1", "react": "^16.9.0", "react-ace": "^6.4.0", "react-codesandboxer": "^3.1.3", @@ -166,27 +162,25 @@ "react-source-render": "^3.0.0-5", "react-static": "^5.9.7", "react-static-routes": "^1.0.0", - "react-test-renderer": "^16.9.0", + "react-test-renderer": "^16.13.1", "react-universal-component": "^3.0.3", - "rimraf": "^2.6.3", + "rimraf": "^3.0.2", "satisfied": "^1.1.2", "semantic-ui-css": "^2.4.1", "simulant": "^0.2.2", - "sinon": "^7.2.7", - "sinon-chai": "^3.3.0", + "sinon": "^9.0.2", + "sinon-chai": "^3.5.0", "size-limit": "^4.5.5", "ta-scripts": "^2.5.2", - "terser-webpack-plugin": "^3.0.7", + "terser-webpack-plugin": "^3.0.8", "terser-webpack-plugin-legacy": "^1.2.3", "through2": "^3.0.1", - "tslint": "^5.14.0", - "tslint-config-airbnb": "^5.11.1", - "typescript": "^3.3.3333", + "typescript": "^3.9.5", "vinyl": "^2.2.0", "webpack": "^4.28.4", "webpack-bundle-analyzer": "^3.8.0", - "webpack-cli": "^3.2.1", - "webpack-dev-middleware": "^3.5.0" + "webpack-cli": "^3.3.12", + "webpack-dev-middleware": "^3.7.2" }, "peerDependencies": { "react": "^16.8.0", diff --git a/src/addons/Confirm/Confirm.js b/src/addons/Confirm/Confirm.js index ac02ac5f82..99d285f27e 100644 --- a/src/addons/Confirm/Confirm.js +++ b/src/addons/Confirm/Confirm.js @@ -11,49 +11,6 @@ import Modal from '../../modules/Modal' * @see Modal */ class Confirm extends Component { - static propTypes = { - /** The cancel button text. */ - cancelButton: customPropTypes.itemShorthand, - - /** The OK button text. */ - confirmButton: customPropTypes.itemShorthand, - - /** The ModalContent text. */ - content: customPropTypes.itemShorthand, - - /** The ModalHeader text. */ - header: customPropTypes.itemShorthand, - - /** - * Called when the Modal is closed without clicking confirm. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onCancel: PropTypes.func, - - /** - * Called when the OK button is clicked. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onConfirm: PropTypes.func, - - /** Whether or not the modal is visible. */ - open: PropTypes.bool, - - /** A Confirm can vary in size */ - size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']), - } - - static defaultProps = { - cancelButton: 'Cancel', - confirmButton: 'OK', - content: 'Are you sure?', - size: 'small', - } - handleCancel = (e) => { _.invoke(this.props, 'onCancel', e, this.props) } @@ -102,4 +59,47 @@ class Confirm extends Component { } } +Confirm.propTypes = { + /** The cancel button text. */ + cancelButton: customPropTypes.itemShorthand, + + /** The OK button text. */ + confirmButton: customPropTypes.itemShorthand, + + /** The ModalContent text. */ + content: customPropTypes.itemShorthand, + + /** The ModalHeader text. */ + header: customPropTypes.itemShorthand, + + /** + * Called when the Modal is closed without clicking confirm. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onCancel: PropTypes.func, + + /** + * Called when the OK button is clicked. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onConfirm: PropTypes.func, + + /** Whether or not the modal is visible. */ + open: PropTypes.bool, + + /** A Confirm can vary in size */ + size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']), +} + +Confirm.defaultProps = { + cancelButton: 'Cancel', + confirmButton: 'OK', + content: 'Are you sure?', + size: 'small', +} + export default Confirm diff --git a/src/addons/MountNode/MountNode.d.ts b/src/addons/MountNode/MountNode.d.ts index 629f159f4d..2fd43e5c66 100644 --- a/src/addons/MountNode/MountNode.d.ts +++ b/src/addons/MountNode/MountNode.d.ts @@ -12,6 +12,6 @@ export interface StrictMountNodeProps { node?: HTMLElement | React.Ref } -declare class MountNode extends React.Component {} +declare class MountNode extends React.Component {} export default MountNode diff --git a/src/addons/MountNode/MountNode.js b/src/addons/MountNode/MountNode.js index 703f1f09ac..3ee0c9ba9e 100644 --- a/src/addons/MountNode/MountNode.js +++ b/src/addons/MountNode/MountNode.js @@ -12,14 +12,6 @@ const nodeRegistry = new NodeRegistry() * A component that allows to manage classNames on a DOM node in declarative manner. */ export default class MountNode extends Component { - static propTypes = { - /** Additional classes. */ - className: PropTypes.string, - - /** The DOM node where we will apply class names. Defaults to document.body. */ - node: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]), - } - shouldComponentUpdate({ className: nextClassName }) { const { className: currentClassName } = this.props @@ -48,3 +40,11 @@ export default class MountNode extends Component { return null } } + +MountNode.propTypes = { + /** Additional classes. */ + className: PropTypes.string, + + /** The DOM node where we will apply class names. Defaults to document.body. */ + node: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]), +} diff --git a/src/addons/Pagination/Pagination.d.ts b/src/addons/Pagination/Pagination.d.ts index bda95be718..4233abcee0 100644 --- a/src/addons/Pagination/Pagination.d.ts +++ b/src/addons/Pagination/Pagination.d.ts @@ -1,7 +1,7 @@ import * as React from 'react' import { SemanticShorthandItem } from '../../generic' -import { default as PaginationItem, PaginationItemProps } from './PaginationItem' +import PaginationItem, { PaginationItemProps } from './PaginationItem' export interface PaginationProps extends StrictPaginationProps { [key: string]: any @@ -56,7 +56,7 @@ export interface StrictPaginationProps { totalPages: number | string } -declare class Pagination extends React.Component { +declare class Pagination extends React.Component { static Item: typeof PaginationItem } diff --git a/src/addons/Pagination/Pagination.js b/src/addons/Pagination/Pagination.js index 42d62dae42..eabc79c561 100644 --- a/src/addons/Pagination/Pagination.js +++ b/src/addons/Pagination/Pagination.js @@ -15,83 +15,6 @@ import PaginationItem from './PaginationItem' * A component to render a pagination. */ export default class Pagination extends Component { - static propTypes = { - /** A pagination item can have an aria label. */ - 'aria-label': PropTypes.string, - - /** Initial activePage value. */ - defaultActivePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** Index of the currently active page. */ - activePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** Number of always visible pages at the beginning and end. */ - boundaryRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** A pagination can be disabled. */ - disabled: PropTypes.bool, - - /** A shorthand for PaginationItem. */ - ellipsisItem: customPropTypes.itemShorthand, - - /** A shorthand for PaginationItem. */ - firstItem: customPropTypes.itemShorthand, - - /** A shorthand for PaginationItem. */ - lastItem: customPropTypes.itemShorthand, - - /** A shorthand for PaginationItem. */ - nextItem: customPropTypes.itemShorthand, - - /** A shorthand for PaginationItem. */ - pageItem: customPropTypes.itemShorthand, - - /** A shorthand for PaginationItem. */ - prevItem: customPropTypes.itemShorthand, - - /** - * Called on change of an active page. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onPageChange: PropTypes.func, - - /** Number of always visible pages before and after the current one. */ - siblingRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** Total number of pages. */ - totalPages: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired, - } - - static autoControlledProps = ['activePage'] - - static defaultProps = { - 'aria-label': 'Pagination Navigation', - boundaryRange: 1, - ellipsisItem: '...', - firstItem: { - 'aria-label': 'First item', - content: '«', - }, - lastItem: { - 'aria-label': 'Last item', - content: '»', - }, - nextItem: { - 'aria-label': 'Next item', - content: '⟩', - }, - pageItem: {}, - prevItem: { - 'aria-label': 'Previous item', - content: '⟨', - }, - siblingRange: 1, - } - - static Item = PaginationItem - handleItemClick = (e, { value: nextActivePage }) => { const { activePage: prevActivePage } = this.state @@ -148,3 +71,80 @@ export default class Pagination extends Component { ) } } + +Pagination.propTypes = { + /** A pagination item can have an aria label. */ + 'aria-label': PropTypes.string, + + /** Initial activePage value. */ + defaultActivePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** Index of the currently active page. */ + activePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** Number of always visible pages at the beginning and end. */ + boundaryRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** A pagination can be disabled. */ + disabled: PropTypes.bool, + + /** A shorthand for PaginationItem. */ + ellipsisItem: customPropTypes.itemShorthand, + + /** A shorthand for PaginationItem. */ + firstItem: customPropTypes.itemShorthand, + + /** A shorthand for PaginationItem. */ + lastItem: customPropTypes.itemShorthand, + + /** A shorthand for PaginationItem. */ + nextItem: customPropTypes.itemShorthand, + + /** A shorthand for PaginationItem. */ + pageItem: customPropTypes.itemShorthand, + + /** A shorthand for PaginationItem. */ + prevItem: customPropTypes.itemShorthand, + + /** + * Called on change of an active page. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onPageChange: PropTypes.func, + + /** Number of always visible pages before and after the current one. */ + siblingRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** Total number of pages. */ + totalPages: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired, +} + +Pagination.autoControlledProps = ['activePage'] + +Pagination.defaultProps = { + 'aria-label': 'Pagination Navigation', + boundaryRange: 1, + ellipsisItem: '...', + firstItem: { + 'aria-label': 'First item', + content: '«', + }, + lastItem: { + 'aria-label': 'Last item', + content: '»', + }, + nextItem: { + 'aria-label': 'Next item', + content: '⟩', + }, + pageItem: {}, + prevItem: { + 'aria-label': 'Previous item', + content: '⟨', + }, + siblingRange: 1, +} + +Pagination.Item = PaginationItem diff --git a/src/addons/Pagination/PaginationItem.d.ts b/src/addons/Pagination/PaginationItem.d.ts index 11b2a58661..6131f5be2a 100644 --- a/src/addons/Pagination/PaginationItem.d.ts +++ b/src/addons/Pagination/PaginationItem.d.ts @@ -31,6 +31,6 @@ export interface StrictPaginationItemProps { type?: 'ellipsisItem' | 'firstItem' | 'prevItem' | 'pageItem' | 'nextItem' | 'lastItem' } -declare class PaginationItem extends React.Component {} +declare class PaginationItem extends React.Component {} export default PaginationItem diff --git a/src/addons/Pagination/PaginationItem.js b/src/addons/Pagination/PaginationItem.js index a02c2d1786..27efdf8884 100644 --- a/src/addons/Pagination/PaginationItem.js +++ b/src/addons/Pagination/PaginationItem.js @@ -10,40 +10,6 @@ import MenuItem from '../../collections/Menu/MenuItem' * An item of a pagination. */ class PaginationItem extends Component { - static propTypes = { - /** A pagination item can be active. */ - active: PropTypes.bool, - - /** A pagination item can be disabled. */ - disabled: PropTypes.bool, - - /** - * Called on click. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onClick: PropTypes.func, - - /** - * Called on key down. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onKeyDown: PropTypes.func, - - /** A pagination should have a type. */ - type: PropTypes.oneOf([ - 'ellipsisItem', - 'firstItem', - 'prevItem', - 'pageItem', - 'nextItem', - 'lastItem', - ]), - } - handleClick = (e) => { _.invoke(this.props, 'onClick', e, this.props) } @@ -77,6 +43,40 @@ class PaginationItem extends Component { } } +PaginationItem.propTypes = { + /** A pagination item can be active. */ + active: PropTypes.bool, + + /** A pagination item can be disabled. */ + disabled: PropTypes.bool, + + /** + * Called on click. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onClick: PropTypes.func, + + /** + * Called on key down. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onKeyDown: PropTypes.func, + + /** A pagination should have a type. */ + type: PropTypes.oneOf([ + 'ellipsisItem', + 'firstItem', + 'prevItem', + 'pageItem', + 'nextItem', + 'lastItem', + ]), +} + PaginationItem.create = createShorthandFactory(PaginationItem, (content) => ({ content })) export default PaginationItem diff --git a/src/addons/Portal/Portal.d.ts b/src/addons/Portal/Portal.d.ts index 007c7fac41..7c3e00cbd1 100644 --- a/src/addons/Portal/Portal.d.ts +++ b/src/addons/Portal/Portal.d.ts @@ -1,5 +1,5 @@ import * as React from 'react' -import { default as PortalInner } from './PortalInner' +import PortalInner from './PortalInner' export interface PortalProps extends StrictPortalProps { [key: string]: any @@ -97,7 +97,7 @@ export interface StrictPortalProps { triggerRef?: React.Ref } -declare class Portal extends React.Component { +declare class Portal extends React.Component { static Inner: typeof PortalInner } diff --git a/src/addons/Portal/Portal.js b/src/addons/Portal/Portal.js index 2199318ea1..c9b4dd9847 100644 --- a/src/addons/Portal/Portal.js +++ b/src/addons/Portal/Portal.js @@ -24,109 +24,6 @@ const debug = makeDebugger('portal') * @see Confirm */ class Portal extends Component { - static propTypes = { - /** Primary content. */ - children: PropTypes.node.isRequired, - - /** Controls whether or not the portal should close when the document is clicked. */ - closeOnDocumentClick: PropTypes.bool, - - /** Controls whether or not the portal should close when escape is pressed is displayed. */ - closeOnEscape: PropTypes.bool, - - /** - * Controls whether or not the portal should close when mousing out of the portal. - * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the - * gap from the trigger to the portal. - */ - closeOnPortalMouseLeave: PropTypes.bool, - - /** Controls whether or not the portal should close on blur of the trigger. */ - closeOnTriggerBlur: PropTypes.bool, - - /** Controls whether or not the portal should close on click of the trigger. */ - closeOnTriggerClick: PropTypes.bool, - - /** Controls whether or not the portal should close when mousing out of the trigger. */ - closeOnTriggerMouseLeave: PropTypes.bool, - - /** Initial value of open. */ - defaultOpen: PropTypes.bool, - - /** Event pool namespace that is used to handle component events */ - eventPool: PropTypes.string, - - /** The node where the portal should mount. */ - mountNode: PropTypes.any, - - /** Milliseconds to wait before opening on mouse over */ - mouseEnterDelay: PropTypes.number, - - /** Milliseconds to wait before closing on mouse leave */ - mouseLeaveDelay: PropTypes.number, - - /** - * Called when a close event happens - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onClose: PropTypes.func, - - /** - * Called when the portal is mounted on the DOM. - * - * @param {null} - * @param {object} data - All props. - */ - onMount: PropTypes.func, - - /** - * Called when an open event happens - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onOpen: PropTypes.func, - - /** - * Called when the portal is unmounted from the DOM. - * - * @param {null} - * @param {object} data - All props. - */ - onUnmount: PropTypes.func, - - /** Controls whether or not the portal is displayed. */ - open: PropTypes.bool, - - /** Controls whether or not the portal should open when the trigger is clicked. */ - openOnTriggerClick: PropTypes.bool, - - /** Controls whether or not the portal should open on focus of the trigger. */ - openOnTriggerFocus: PropTypes.bool, - - /** Controls whether or not the portal should open when mousing over the trigger. */ - openOnTriggerMouseEnter: PropTypes.bool, - - /** Element to be rendered in-place where the portal is defined. */ - trigger: PropTypes.node, - - /** Called with a ref to the trigger node. */ - triggerRef: customPropTypes.ref, - } - - static defaultProps = { - closeOnDocumentClick: true, - closeOnEscape: true, - eventPool: 'default', - openOnTriggerClick: true, - } - - static autoControlledProps = ['open'] - - static Inner = PortalInner - contentRef = React.createRef() triggerRef = React.createRef() latestDocumentMouseDownEvent = null @@ -387,4 +284,107 @@ class Portal extends Component { } } +Portal.propTypes = { + /** Primary content. */ + children: PropTypes.node.isRequired, + + /** Controls whether or not the portal should close when the document is clicked. */ + closeOnDocumentClick: PropTypes.bool, + + /** Controls whether or not the portal should close when escape is pressed is displayed. */ + closeOnEscape: PropTypes.bool, + + /** + * Controls whether or not the portal should close when mousing out of the portal. + * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the + * gap from the trigger to the portal. + */ + closeOnPortalMouseLeave: PropTypes.bool, + + /** Controls whether or not the portal should close on blur of the trigger. */ + closeOnTriggerBlur: PropTypes.bool, + + /** Controls whether or not the portal should close on click of the trigger. */ + closeOnTriggerClick: PropTypes.bool, + + /** Controls whether or not the portal should close when mousing out of the trigger. */ + closeOnTriggerMouseLeave: PropTypes.bool, + + /** Initial value of open. */ + defaultOpen: PropTypes.bool, + + /** Event pool namespace that is used to handle component events */ + eventPool: PropTypes.string, + + /** The node where the portal should mount. */ + mountNode: PropTypes.any, + + /** Milliseconds to wait before opening on mouse over */ + mouseEnterDelay: PropTypes.number, + + /** Milliseconds to wait before closing on mouse leave */ + mouseLeaveDelay: PropTypes.number, + + /** + * Called when a close event happens + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onClose: PropTypes.func, + + /** + * Called when the portal is mounted on the DOM. + * + * @param {null} + * @param {object} data - All props. + */ + onMount: PropTypes.func, + + /** + * Called when an open event happens + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onOpen: PropTypes.func, + + /** + * Called when the portal is unmounted from the DOM. + * + * @param {null} + * @param {object} data - All props. + */ + onUnmount: PropTypes.func, + + /** Controls whether or not the portal is displayed. */ + open: PropTypes.bool, + + /** Controls whether or not the portal should open when the trigger is clicked. */ + openOnTriggerClick: PropTypes.bool, + + /** Controls whether or not the portal should open on focus of the trigger. */ + openOnTriggerFocus: PropTypes.bool, + + /** Controls whether or not the portal should open when mousing over the trigger. */ + openOnTriggerMouseEnter: PropTypes.bool, + + /** Element to be rendered in-place where the portal is defined. */ + trigger: PropTypes.node, + + /** Called with a ref to the trigger node. */ + triggerRef: customPropTypes.ref, +} + +Portal.defaultProps = { + closeOnDocumentClick: true, + closeOnEscape: true, + eventPool: 'default', + openOnTriggerClick: true, +} + +Portal.autoControlledProps = ['open'] + +Portal.Inner = PortalInner + export default Portal diff --git a/src/addons/Portal/PortalInner.d.ts b/src/addons/Portal/PortalInner.d.ts index 3edc06d110..9975bec5d5 100644 --- a/src/addons/Portal/PortalInner.d.ts +++ b/src/addons/Portal/PortalInner.d.ts @@ -31,6 +31,6 @@ export interface StrictPortalInnerProps { onUnmount?: (nothing: null, data: PortalInnerProps) => void } -declare class PortalInner extends React.Component {} +declare class PortalInner extends React.Component {} export default PortalInner diff --git a/src/addons/Portal/PortalInner.js b/src/addons/Portal/PortalInner.js index de83fd53f7..7b1588e9db 100644 --- a/src/addons/Portal/PortalInner.js +++ b/src/addons/Portal/PortalInner.js @@ -12,33 +12,6 @@ const debug = makeDebugger('portalInner') * An inner component that allows you to render children outside their parent. */ class PortalInner extends Component { - static propTypes = { - /** Primary content. */ - children: PropTypes.node.isRequired, - - /** Called with a ref to the inner node. */ - innerRef: customPropTypes.ref, - - /** The node where the portal should mount. */ - mountNode: PropTypes.any, - - /** - * Called when the portal is mounted on the DOM - * - * @param {null} - * @param {object} data - All props. - */ - onMount: PropTypes.func, - - /** - * Called when the portal is unmounted from the DOM - * - * @param {null} - * @param {object} data - All props. - */ - onUnmount: PropTypes.func, - } - componentDidMount() { debug('componentDidMount()') _.invoke(this.props, 'onMount', null, this.props) @@ -62,4 +35,31 @@ class PortalInner extends Component { } } +PortalInner.propTypes = { + /** Primary content. */ + children: PropTypes.node.isRequired, + + /** Called with a ref to the inner node. */ + innerRef: customPropTypes.ref, + + /** The node where the portal should mount. */ + mountNode: PropTypes.any, + + /** + * Called when the portal is mounted on the DOM + * + * @param {null} + * @param {object} data - All props. + */ + onMount: PropTypes.func, + + /** + * Called when the portal is unmounted from the DOM + * + * @param {null} + * @param {object} data - All props. + */ + onUnmount: PropTypes.func, +} + export default PortalInner diff --git a/src/addons/Responsive/Responsive.d.ts b/src/addons/Responsive/Responsive.d.ts index ccca7698cf..d20c608469 100644 --- a/src/addons/Responsive/Responsive.d.ts +++ b/src/addons/Responsive/Responsive.d.ts @@ -44,7 +44,7 @@ export interface ResponsiveWidthShorthand { maxWidth?: number | string } -declare class Responsive extends React.Component { +declare class Responsive extends React.Component { static onlyMobile: ResponsiveWidthShorthand static onlyTablet: ResponsiveWidthShorthand static onlyComputer: ResponsiveWidthShorthand diff --git a/src/addons/Responsive/Responsive.js b/src/addons/Responsive/Responsive.js index 94db3f8048..cf5bb1de39 100644 --- a/src/addons/Responsive/Responsive.js +++ b/src/addons/Responsive/Responsive.js @@ -9,47 +9,6 @@ import isVisible from './lib/isVisible' * Responsive can control visibility of content. */ export default class Responsive extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** Primary content. */ - children: PropTypes.node, - - /** Fires callbacks immediately after mount. */ - fireOnMount: PropTypes.bool, - - /** - * Called to get width of screen. Defaults to using `window.innerWidth` when in a browser; - * otherwise, assumes a width of 0. - */ - getWidth: PropTypes.func, - - /** The maximum width at which content will be displayed. */ - maxWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** The minimum width at which content will be displayed. */ - minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** - * Called on update. - * - * @param {SyntheticEvent} event - The React SyntheticEvent object - * @param {object} data - All props and the event value. - */ - onUpdate: PropTypes.func, - } - - static defaultProps = { - getWidth: () => (isBrowser() ? window.innerWidth : 0), - } - - static onlyMobile = { minWidth: 320, maxWidth: 767 } - static onlyTablet = { minWidth: 768, maxWidth: 991 } - static onlyComputer = { minWidth: 992 } - static onlyLargeScreen = { minWidth: 1200, maxWidth: 1919 } - static onlyWidescreen = { minWidth: 1920 } - state = { visible: true, } @@ -110,3 +69,44 @@ export default class Responsive extends Component { return null } } + +Responsive.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** Primary content. */ + children: PropTypes.node, + + /** Fires callbacks immediately after mount. */ + fireOnMount: PropTypes.bool, + + /** + * Called to get width of screen. Defaults to using `window.innerWidth` when in a browser; + * otherwise, assumes a width of 0. + */ + getWidth: PropTypes.func, + + /** The maximum width at which content will be displayed. */ + maxWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** The minimum width at which content will be displayed. */ + minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** + * Called on update. + * + * @param {SyntheticEvent} event - The React SyntheticEvent object + * @param {object} data - All props and the event value. + */ + onUpdate: PropTypes.func, +} + +Responsive.defaultProps = { + getWidth: () => (isBrowser() ? window.innerWidth : 0), +} + +Responsive.onlyMobile = { minWidth: 320, maxWidth: 767 } +Responsive.onlyTablet = { minWidth: 768, maxWidth: 991 } +Responsive.onlyComputer = { minWidth: 992 } +Responsive.onlyLargeScreen = { minWidth: 1200, maxWidth: 1919 } +Responsive.onlyWidescreen = { minWidth: 1920 } diff --git a/src/addons/TextArea/TextArea.d.ts b/src/addons/TextArea/TextArea.d.ts index 2c81a35902..b019d3d5cd 100644 --- a/src/addons/TextArea/TextArea.d.ts +++ b/src/addons/TextArea/TextArea.d.ts @@ -31,7 +31,7 @@ export interface StrictTextAreaProps { value?: number | string } -declare class TextArea extends React.Component { +declare class TextArea extends React.Component { focus: () => void } diff --git a/src/addons/TextArea/TextArea.js b/src/addons/TextArea/TextArea.js index 6f1794960a..4c5556b98d 100644 --- a/src/addons/TextArea/TextArea.js +++ b/src/addons/TextArea/TextArea.js @@ -10,36 +10,6 @@ import { getElementType, getUnhandledProps } from '../../lib' * @see Form */ class TextArea extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** - * Called on change. - * @param {SyntheticEvent} event - The React SyntheticEvent object - * @param {object} data - All props and the event value. - */ - onChange: PropTypes.func, - - /** - * Called on input. - * @param {SyntheticEvent} event - The React SyntheticEvent object - * @param {object} data - All props and the event value. - */ - onInput: PropTypes.func, - - /** Indicates row count for a TextArea. */ - rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** The value of the textarea. */ - value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - } - - static defaultProps = { - as: 'textarea', - rows: 3, - } - ref = createRef() focus = () => this.ref.current.focus() @@ -75,4 +45,34 @@ class TextArea extends Component { } } +TextArea.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** + * Called on change. + * @param {SyntheticEvent} event - The React SyntheticEvent object + * @param {object} data - All props and the event value. + */ + onChange: PropTypes.func, + + /** + * Called on input. + * @param {SyntheticEvent} event - The React SyntheticEvent object + * @param {object} data - All props and the event value. + */ + onInput: PropTypes.func, + + /** Indicates row count for a TextArea. */ + rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** The value of the textarea. */ + value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), +} + +TextArea.defaultProps = { + as: 'textarea', + rows: 3, +} + export default TextArea diff --git a/src/addons/TransitionablePortal/TransitionablePortal.js b/src/addons/TransitionablePortal/TransitionablePortal.js index 6d455471b8..9ab8d8b60d 100644 --- a/src/addons/TransitionablePortal/TransitionablePortal.js +++ b/src/addons/TransitionablePortal/TransitionablePortal.js @@ -15,56 +15,6 @@ const debug = makeDebugger('transitionable_portal') * @see Transition */ export default class TransitionablePortal extends Component { - static propTypes = { - /** Primary content. */ - children: PropTypes.node.isRequired, - - /** - * Called when a close event happens. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props and internal state. - */ - onClose: PropTypes.func, - - /** - * Callback on each transition that changes visibility to hidden. - * - * @param {null} - * @param {object} data - All props with transition status and internal state. - */ - onHide: PropTypes.func, - - /** - * Called when an open event happens. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props and internal state. - */ - onOpen: PropTypes.func, - - /** - * Callback on animation start. - * - * @param {null} - * @param {object} data - All props with transition status and internal state. - */ - onStart: PropTypes.func, - - /** Controls whether or not the portal is displayed. */ - open: PropTypes.bool, - - /** Transition props. */ - transition: PropTypes.object, - } - - static defaultProps = { - transition: { - animation: 'scale', - duration: 400, - }, - } - state = {} // ---------------------------------------- @@ -157,3 +107,53 @@ export default class TransitionablePortal extends Component { ) } } + +TransitionablePortal.propTypes = { + /** Primary content. */ + children: PropTypes.node.isRequired, + + /** + * Called when a close event happens. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props and internal state. + */ + onClose: PropTypes.func, + + /** + * Callback on each transition that changes visibility to hidden. + * + * @param {null} + * @param {object} data - All props with transition status and internal state. + */ + onHide: PropTypes.func, + + /** + * Called when an open event happens. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props and internal state. + */ + onOpen: PropTypes.func, + + /** + * Callback on animation start. + * + * @param {null} + * @param {object} data - All props with transition status and internal state. + */ + onStart: PropTypes.func, + + /** Controls whether or not the portal is displayed. */ + open: PropTypes.bool, + + /** Transition props. */ + transition: PropTypes.object, +} + +TransitionablePortal.defaultProps = { + transition: { + animation: 'scale', + duration: 400, + }, +} diff --git a/src/behaviors/Visibility/Visibility.d.ts b/src/behaviors/Visibility/Visibility.d.ts index 76247cd721..1c66e608a2 100644 --- a/src/behaviors/Visibility/Visibility.d.ts +++ b/src/behaviors/Visibility/Visibility.d.ts @@ -12,7 +12,7 @@ export interface StrictVisibilityProps { children?: React.ReactNode /** Context which sticky element should stick to. */ - context?: object + context?: Document | Window | HTMLElement /** * When set to true a callback will occur anytime an element passes a condition not just immediately after the @@ -59,7 +59,7 @@ export interface StrictVisibilityProps { * Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the * page. */ - offset?: number | string | (number | string)[] + offset?: number | string | number | string[] /** When set to false a callback will occur each time an element passes the threshold for a condition. */ once?: boolean diff --git a/src/behaviors/Visibility/Visibility.js b/src/behaviors/Visibility/Visibility.js index 4f7b939126..28bf8be71a 100644 --- a/src/behaviors/Visibility/Visibility.js +++ b/src/behaviors/Visibility/Visibility.js @@ -15,161 +15,6 @@ import { * Visibility provides a set of callbacks for when a content appears in the viewport. */ export default class Visibility extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** Primary content. */ - children: PropTypes.node, - - /** Context which visibility should attach onscroll events. */ - context: PropTypes.object, - - /** - * When set to true a callback will occur anytime an element passes a condition not just immediately after the - * threshold is met. - */ - continuous: PropTypes.bool, - - /** Fires callbacks immediately after mount. */ - fireOnMount: PropTypes.bool, - - /** - * Element's bottom edge has passed top of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onBottomPassed: PropTypes.func, - - /** - * Element's bottom edge has not passed top of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onBottomPassedReverse: PropTypes.func, - - /** - * Element's bottom edge has passed bottom of screen - * - * @param {null} - * @param {object} data - All props. - */ - onBottomVisible: PropTypes.func, - - /** - * Element's bottom edge has not passed bottom of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onBottomVisibleReverse: PropTypes.func, - - /** - * Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the - * page. - */ - offset: PropTypes.oneOfType([ - PropTypes.number, - PropTypes.string, - PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), - ]), - - /** When set to false a callback will occur each time an element passes the threshold for a condition. */ - once: PropTypes.bool, - - /** Element is not visible on the screen. */ - onPassed: PropTypes.object, - - /** - * Any part of an element is visible on screen. - * - * @param {null} - * @param {object} data - All props. - */ - onPassing: PropTypes.func, - - /** - * Element's top has not passed top of screen but bottom has. - * - * @param {null} - * @param {object} data - All props. - */ - onPassingReverse: PropTypes.func, - - /** - * Element is not visible on the screen. - * - * @param {null} - * @param {object} data - All props. - */ - onOffScreen: PropTypes.func, - - /** - * Element is visible on the screen. - * - * @param {null} - * @param {object} data - All props. - */ - onOnScreen: PropTypes.func, - - /** - * Element's top edge has passed top of the screen. - * - * @param {null} - * @param {object} data - All props. - */ - onTopPassed: PropTypes.func, - - /** - * Element's top edge has not passed top of the screen. - * - * @param {null} - * @param {object} data - All props. - */ - onTopPassedReverse: PropTypes.func, - - /** - * Element's top edge has passed bottom of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onTopVisible: PropTypes.func, - - /** - * Element's top edge has not passed bottom of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onTopVisibleReverse: PropTypes.func, - - /** - * Element's top edge has passed bottom of screen. - * - * @param {null} - * @param {object} data - All props. - */ - onUpdate: PropTypes.func, - - /** - * Allows to choose the mode of the position calculations: - * - `events` - (default) update and fire callbacks only on scroll/resize events - * - `repaint` - update and fire callbacks on browser repaint (animation frames) - */ - updateOn: PropTypes.oneOf(['events', 'repaint']), - } - - static defaultProps = { - context: isBrowser() ? window : null, - continuous: false, - offset: [0, 0], - once: true, - updateOn: 'events', - } - calculations = { bottomPassed: false, bottomVisible: false, @@ -424,3 +269,158 @@ export default class Visibility extends Component { ) } } + +Visibility.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** Primary content. */ + children: PropTypes.node, + + /** Context which visibility should attach onscroll events. */ + context: PropTypes.object, + + /** + * When set to true a callback will occur anytime an element passes a condition not just immediately after the + * threshold is met. + */ + continuous: PropTypes.bool, + + /** Fires callbacks immediately after mount. */ + fireOnMount: PropTypes.bool, + + /** + * Element's bottom edge has passed top of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onBottomPassed: PropTypes.func, + + /** + * Element's bottom edge has not passed top of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onBottomPassedReverse: PropTypes.func, + + /** + * Element's bottom edge has passed bottom of screen + * + * @param {null} + * @param {object} data - All props. + */ + onBottomVisible: PropTypes.func, + + /** + * Element's bottom edge has not passed bottom of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onBottomVisibleReverse: PropTypes.func, + + /** + * Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the + * page. + */ + offset: PropTypes.oneOfType([ + PropTypes.number, + PropTypes.string, + PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), + ]), + + /** When set to false a callback will occur each time an element passes the threshold for a condition. */ + once: PropTypes.bool, + + /** Element is not visible on the screen. */ + onPassed: PropTypes.object, + + /** + * Any part of an element is visible on screen. + * + * @param {null} + * @param {object} data - All props. + */ + onPassing: PropTypes.func, + + /** + * Element's top has not passed top of screen but bottom has. + * + * @param {null} + * @param {object} data - All props. + */ + onPassingReverse: PropTypes.func, + + /** + * Element is not visible on the screen. + * + * @param {null} + * @param {object} data - All props. + */ + onOffScreen: PropTypes.func, + + /** + * Element is visible on the screen. + * + * @param {null} + * @param {object} data - All props. + */ + onOnScreen: PropTypes.func, + + /** + * Element's top edge has passed top of the screen. + * + * @param {null} + * @param {object} data - All props. + */ + onTopPassed: PropTypes.func, + + /** + * Element's top edge has not passed top of the screen. + * + * @param {null} + * @param {object} data - All props. + */ + onTopPassedReverse: PropTypes.func, + + /** + * Element's top edge has passed bottom of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onTopVisible: PropTypes.func, + + /** + * Element's top edge has not passed bottom of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onTopVisibleReverse: PropTypes.func, + + /** + * Element's top edge has passed bottom of screen. + * + * @param {null} + * @param {object} data - All props. + */ + onUpdate: PropTypes.func, + + /** + * Allows to choose the mode of the position calculations: + * - `events` - (default) update and fire callbacks only on scroll/resize events + * - `repaint` - update and fire callbacks on browser repaint (animation frames) + */ + updateOn: PropTypes.oneOf(['events', 'repaint']), +} + +Visibility.defaultProps = { + context: isBrowser() ? window : null, + continuous: false, + offset: [0, 0], + once: true, + updateOn: 'events', +} diff --git a/src/collections/Breadcrumb/Breadcrumb.d.ts b/src/collections/Breadcrumb/Breadcrumb.d.ts index e6164ee127..0e8f8d14d3 100644 --- a/src/collections/Breadcrumb/Breadcrumb.d.ts +++ b/src/collections/Breadcrumb/Breadcrumb.d.ts @@ -7,7 +7,7 @@ import { } from '../../generic' import { IconProps } from '../../elements/Icon' import BreadcrumbDivider from './BreadcrumbDivider' -import { default as BreadcrumbSection, BreadcrumbSectionProps } from './BreadcrumbSection' +import BreadcrumbSection, { BreadcrumbSectionProps } from './BreadcrumbSection' export interface BreadcrumbProps extends StrictBreadcrumbProps { [key: string]: any diff --git a/src/collections/Breadcrumb/BreadcrumbSection.js b/src/collections/Breadcrumb/BreadcrumbSection.js index 32c6cdb0c5..18c0636f0f 100644 --- a/src/collections/Breadcrumb/BreadcrumbSection.js +++ b/src/collections/Breadcrumb/BreadcrumbSection.js @@ -16,38 +16,6 @@ import { * A section sub-component for Breadcrumb component. */ export default class BreadcrumbSection extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** Style as the currently active section. */ - active: PropTypes.bool, - - /** Primary content. */ - children: PropTypes.node, - - /** Additional classes. */ - className: PropTypes.string, - - /** Shorthand for primary content. */ - content: customPropTypes.contentShorthand, - - /** Render as an `a` tag instead of a `div` and adds the href attribute. */ - href: customPropTypes.every([customPropTypes.disallow(['link']), PropTypes.string]), - - /** Render as an `a` tag instead of a `div`. */ - link: customPropTypes.every([customPropTypes.disallow(['href']), PropTypes.bool]), - - /** - * Called on click. When passed, the component will render as an `a` - * tag by default instead of a `div`. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onClick: PropTypes.func, - } - computeElementType = () => { const { link, onClick } = this.props @@ -71,6 +39,38 @@ export default class BreadcrumbSection extends Component { } } +BreadcrumbSection.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** Style as the currently active section. */ + active: PropTypes.bool, + + /** Primary content. */ + children: PropTypes.node, + + /** Additional classes. */ + className: PropTypes.string, + + /** Shorthand for primary content. */ + content: customPropTypes.contentShorthand, + + /** Render as an `a` tag instead of a `div` and adds the href attribute. */ + href: customPropTypes.every([customPropTypes.disallow(['link']), PropTypes.string]), + + /** Render as an `a` tag instead of a `div`. */ + link: customPropTypes.every([customPropTypes.disallow(['href']), PropTypes.bool]), + + /** + * Called on click. When passed, the component will render as an `a` + * tag by default instead of a `div`. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onClick: PropTypes.func, +} + BreadcrumbSection.create = createShorthandFactory(BreadcrumbSection, (content) => ({ content, link: true, diff --git a/src/collections/Form/Form.js b/src/collections/Form/Form.js index dbea936f3e..25463ab019 100644 --- a/src/collections/Form/Form.js +++ b/src/collections/Form/Form.js @@ -26,64 +26,6 @@ import FormTextArea from './FormTextArea' * @see Visibility */ class Form extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** The HTML form action */ - action: PropTypes.string, - - /** Primary content. */ - children: PropTypes.node, - - /** Additional classes. */ - className: PropTypes.string, - - /** Automatically show any error Message children. */ - error: PropTypes.bool, - - /** A form can have its color inverted for contrast. */ - inverted: PropTypes.bool, - - /** Automatically show a loading indicator. */ - loading: PropTypes.bool, - - /** The HTML form submit handler. */ - onSubmit: PropTypes.func, - - /** A comment can contain a form to reply to a comment. This may have arbitrary content. */ - reply: PropTypes.bool, - - /** A form can vary in size. */ - size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')), - - /** Automatically show any success Message children. */ - success: PropTypes.bool, - - /** A form can prevent itself from stacking on mobile. */ - unstackable: PropTypes.bool, - - /** Automatically show any warning Message children. */ - warning: PropTypes.bool, - - /** Forms can automatically divide fields to be equal width. */ - widths: PropTypes.oneOf(['equal']), - } - - static defaultProps = { - as: 'form', - } - - static Field = FormField - static Button = FormButton - static Checkbox = FormCheckbox - static Dropdown = FormDropdown - static Group = FormGroup - static Input = FormInput - static Radio = FormRadio - static Select = FormSelect - static TextArea = FormTextArea - handleSubmit = (e, ...args) => { const { action } = this.props @@ -134,4 +76,62 @@ class Form extends Component { } } +Form.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** The HTML form action */ + action: PropTypes.string, + + /** Primary content. */ + children: PropTypes.node, + + /** Additional classes. */ + className: PropTypes.string, + + /** Automatically show any error Message children. */ + error: PropTypes.bool, + + /** A form can have its color inverted for contrast. */ + inverted: PropTypes.bool, + + /** Automatically show a loading indicator. */ + loading: PropTypes.bool, + + /** The HTML form submit handler. */ + onSubmit: PropTypes.func, + + /** A comment can contain a form to reply to a comment. This may have arbitrary content. */ + reply: PropTypes.bool, + + /** A form can vary in size. */ + size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')), + + /** Automatically show any success Message children. */ + success: PropTypes.bool, + + /** A form can prevent itself from stacking on mobile. */ + unstackable: PropTypes.bool, + + /** Automatically show any warning Message children. */ + warning: PropTypes.bool, + + /** Forms can automatically divide fields to be equal width. */ + widths: PropTypes.oneOf(['equal']), +} + +Form.defaultProps = { + as: 'form', +} + +Form.Field = FormField +Form.Button = FormButton +Form.Checkbox = FormCheckbox +Form.Dropdown = FormDropdown +Form.Group = FormGroup +Form.Input = FormInput +Form.Radio = FormRadio +Form.Select = FormSelect +Form.TextArea = FormTextArea + export default Form diff --git a/src/collections/Menu/Menu.d.ts b/src/collections/Menu/Menu.d.ts index 91fa59928e..bb2b009c1a 100644 --- a/src/collections/Menu/Menu.d.ts +++ b/src/collections/Menu/Menu.d.ts @@ -2,7 +2,7 @@ import * as React from 'react' import { SemanticCOLORS, SemanticShorthandCollection, SemanticWIDTHS } from '../../generic' import MenuHeader from './MenuHeader' -import { default as MenuItem, MenuItemProps } from './MenuItem' +import MenuItem, { MenuItemProps } from './MenuItem' import MenuMenu from './MenuMenu' export interface MenuProps extends StrictMenuProps { diff --git a/src/collections/Menu/Menu.js b/src/collections/Menu/Menu.js index c342ca1f54..1ba670ed11 100644 --- a/src/collections/Menu/Menu.js +++ b/src/collections/Menu/Menu.js @@ -25,94 +25,6 @@ import MenuMenu from './MenuMenu' * @see Dropdown */ class Menu extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** Index of the currently active item. */ - activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** A menu may be attached to other content segments. */ - attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'bottom'])]), - - /** A menu item or menu can have no borders. */ - borderless: PropTypes.bool, - - /** Primary content. */ - children: PropTypes.node, - - /** Additional classes. */ - className: PropTypes.string, - - /** Additional colors can be specified. */ - color: PropTypes.oneOf(SUI.COLORS), - - /** A menu can take up only the space necessary to fit its content. */ - compact: PropTypes.bool, - - /** Initial activeIndex value. */ - defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** A menu can be fixed to a side of its context. */ - fixed: PropTypes.oneOf(['left', 'right', 'bottom', 'top']), - - /** A menu can be floated. */ - floated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]), - - /** A vertical menu may take the size of its container. */ - fluid: PropTypes.bool, - - /** A menu may have just icons (bool) or labeled icons. */ - icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['labeled'])]), - - /** A menu may have its colors inverted to show greater contrast. */ - inverted: PropTypes.bool, - - /** Shorthand array of props for Menu. */ - items: customPropTypes.collectionShorthand, - - /** - * onClick handler for MenuItem. Mutually exclusive with children. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All item props. - */ - onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]), - - /** A pagination menu is specially formatted to present links to pages of content. */ - pagination: PropTypes.bool, - - /** A menu can point to show its relationship to nearby content. */ - pointing: PropTypes.bool, - - /** A menu can adjust its appearance to de-emphasize its contents. */ - secondary: PropTypes.bool, - - /** A menu can vary in size. */ - size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')), - - /** A menu can stack at mobile resolutions. */ - stackable: PropTypes.bool, - - /** A menu can be formatted to show tabs of information. */ - tabular: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]), - - /** A menu can be formatted for text content. */ - text: PropTypes.bool, - - /** A vertical menu displays elements vertically. */ - vertical: PropTypes.bool, - - /** A menu can have its items divided evenly. */ - widths: PropTypes.oneOf(SUI.WIDTHS), - } - - static autoControlledProps = ['activeIndex'] - - static Header = MenuHeader - static Item = MenuItem - static Menu = MenuMenu - handleItemOverrides = (predefinedProps) => ({ onClick: (e, itemProps) => { const { index } = itemProps @@ -196,6 +108,94 @@ class Menu extends Component { } } +Menu.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** Index of the currently active item. */ + activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** A menu may be attached to other content segments. */ + attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'bottom'])]), + + /** A menu item or menu can have no borders. */ + borderless: PropTypes.bool, + + /** Primary content. */ + children: PropTypes.node, + + /** Additional classes. */ + className: PropTypes.string, + + /** Additional colors can be specified. */ + color: PropTypes.oneOf(SUI.COLORS), + + /** A menu can take up only the space necessary to fit its content. */ + compact: PropTypes.bool, + + /** Initial activeIndex value. */ + defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** A menu can be fixed to a side of its context. */ + fixed: PropTypes.oneOf(['left', 'right', 'bottom', 'top']), + + /** A menu can be floated. */ + floated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]), + + /** A vertical menu may take the size of its container. */ + fluid: PropTypes.bool, + + /** A menu may have just icons (bool) or labeled icons. */ + icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['labeled'])]), + + /** A menu may have its colors inverted to show greater contrast. */ + inverted: PropTypes.bool, + + /** Shorthand array of props for Menu. */ + items: customPropTypes.collectionShorthand, + + /** + * onClick handler for MenuItem. Mutually exclusive with children. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All item props. + */ + onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]), + + /** A pagination menu is specially formatted to present links to pages of content. */ + pagination: PropTypes.bool, + + /** A menu can point to show its relationship to nearby content. */ + pointing: PropTypes.bool, + + /** A menu can adjust its appearance to de-emphasize its contents. */ + secondary: PropTypes.bool, + + /** A menu can vary in size. */ + size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')), + + /** A menu can stack at mobile resolutions. */ + stackable: PropTypes.bool, + + /** A menu can be formatted to show tabs of information. */ + tabular: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]), + + /** A menu can be formatted for text content. */ + text: PropTypes.bool, + + /** A vertical menu displays elements vertically. */ + vertical: PropTypes.bool, + + /** A menu can have its items divided evenly. */ + widths: PropTypes.oneOf(SUI.WIDTHS), +} + +Menu.autoControlledProps = ['activeIndex'] + +Menu.Header = MenuHeader +Menu.Item = MenuItem +Menu.Menu = MenuMenu + Menu.create = createShorthandFactory(Menu, (items) => ({ items })) export default Menu diff --git a/src/collections/Menu/MenuItem.js b/src/collections/Menu/MenuItem.js index 6aacfa2e6a..4d90e173bf 100644 --- a/src/collections/Menu/MenuItem.js +++ b/src/collections/Menu/MenuItem.js @@ -19,59 +19,6 @@ import Icon from '../../elements/Icon' * A menu can contain an item. */ export default class MenuItem extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** A menu item can be active. */ - active: PropTypes.bool, - - /** Primary content. */ - children: PropTypes.node, - - /** Additional classes. */ - className: PropTypes.string, - - /** Additional colors can be specified. */ - color: PropTypes.oneOf(SUI.COLORS), - - /** Shorthand for primary content. */ - content: customPropTypes.contentShorthand, - - /** A menu item can be disabled. */ - disabled: PropTypes.bool, - - /** A menu item or menu can remove element padding, vertically or horizontally. */ - fitted: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['horizontally', 'vertically'])]), - - /** A menu item may include a header or may itself be a header. */ - header: PropTypes.bool, - - /** MenuItem can be only icon. */ - icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]), - - /** MenuItem index inside Menu. */ - index: PropTypes.number, - - /** A menu item can be link. */ - link: PropTypes.bool, - - /** Internal name of the MenuItem. */ - name: PropTypes.string, - - /** - * Called on click. When passed, the component will render as an `a` - * tag by default instead of a `div`. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onClick: PropTypes.func, - - /** A menu item can take left or right position. */ - position: PropTypes.oneOf(['left', 'right']), - } - handleClick = (e) => { const { disabled } = this.props @@ -129,4 +76,57 @@ export default class MenuItem extends Component { } } +MenuItem.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** A menu item can be active. */ + active: PropTypes.bool, + + /** Primary content. */ + children: PropTypes.node, + + /** Additional classes. */ + className: PropTypes.string, + + /** Additional colors can be specified. */ + color: PropTypes.oneOf(SUI.COLORS), + + /** Shorthand for primary content. */ + content: customPropTypes.contentShorthand, + + /** A menu item can be disabled. */ + disabled: PropTypes.bool, + + /** A menu item or menu can remove element padding, vertically or horizontally. */ + fitted: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['horizontally', 'vertically'])]), + + /** A menu item may include a header or may itself be a header. */ + header: PropTypes.bool, + + /** MenuItem can be only icon. */ + icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]), + + /** MenuItem index inside Menu. */ + index: PropTypes.number, + + /** A menu item can be link. */ + link: PropTypes.bool, + + /** Internal name of the MenuItem. */ + name: PropTypes.string, + + /** + * Called on click. When passed, the component will render as an `a` + * tag by default instead of a `div`. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onClick: PropTypes.func, + + /** A menu item can take left or right position. */ + position: PropTypes.oneOf(['left', 'right']), +} + MenuItem.create = createShorthandFactory(MenuItem, (val) => ({ content: val, name: val })) diff --git a/src/collections/Message/Message.d.ts b/src/collections/Message/Message.d.ts index ee919724b3..723b0733bd 100644 --- a/src/collections/Message/Message.d.ts +++ b/src/collections/Message/Message.d.ts @@ -7,8 +7,8 @@ import { SemanticShorthandItem, } from '../../generic' import MessageContent from './MessageContent' -import { default as MessageHeader, MessageHeaderProps } from './MessageHeader' -import { default as MessageItem, MessageItemProps } from './MessageItem' +import MessageHeader, { MessageHeaderProps } from './MessageHeader' +import MessageItem, { MessageItemProps } from './MessageItem' import MessageList from './MessageList' export type MessageSizeProp = 'mini' | 'tiny' | 'small' | 'large' | 'big' | 'huge' | 'massive' diff --git a/src/collections/Message/Message.js b/src/collections/Message/Message.js index ae6a08f06a..acb75c52e7 100644 --- a/src/collections/Message/Message.js +++ b/src/collections/Message/Message.js @@ -24,82 +24,6 @@ import MessageItem from './MessageItem' * @see Form */ export default class Message extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** A message can be formatted to attach itself to other content. */ - attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['bottom', 'top'])]), - - /** Primary content. */ - children: PropTypes.node, - - /** Additional classes. */ - className: PropTypes.string, - - /** A message can be formatted to be different colors. */ - color: PropTypes.oneOf(SUI.COLORS), - - /** A message can only take up the width of its content. */ - compact: PropTypes.bool, - - /** Shorthand for primary content. */ - content: customPropTypes.contentShorthand, - - /** A message may be formatted to display a negative message. Same as `negative`. */ - error: PropTypes.bool, - - /** A message can float above content that it is related to. */ - floating: PropTypes.bool, - - /** Shorthand for MessageHeader. */ - header: customPropTypes.itemShorthand, - - /** A message can be hidden. */ - hidden: PropTypes.bool, - - /** A message can contain an icon. */ - icon: PropTypes.oneOfType([customPropTypes.itemShorthand, PropTypes.bool]), - - /** A message may be formatted to display information. */ - info: PropTypes.bool, - - /** Array shorthand items for the MessageList. Mutually exclusive with children. */ - list: customPropTypes.collectionShorthand, - - /** A message may be formatted to display a negative message. Same as `error`. */ - negative: PropTypes.bool, - - /** - * A message that the user can choose to hide. - * Called when the user clicks the "x" icon. This also adds the "x" icon. - * - * @param {SyntheticEvent} event - React's original SyntheticEvent. - * @param {object} data - All props. - */ - onDismiss: PropTypes.func, - - /** A message may be formatted to display a positive message. Same as `success`. */ - positive: PropTypes.bool, - - /** A message can have different sizes. */ - size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')), - - /** A message may be formatted to display a positive message. Same as `positive`. */ - success: PropTypes.bool, - - /** A message can be set to visible to force itself to be shown. */ - visible: PropTypes.bool, - - /** A message may be formatted to display warning messages. */ - warning: PropTypes.bool, - } - - static Content = MessageContent - static Header = MessageHeader - static List = MessageList - static Item = MessageItem - handleDismiss = (e) => { const { onDismiss } = this.props @@ -178,3 +102,79 @@ export default class Message extends Component { ) } } + +Message.propTypes = { + /** An element type to render as (string or function). */ + as: PropTypes.elementType, + + /** A message can be formatted to attach itself to other content. */ + attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['bottom', 'top'])]), + + /** Primary content. */ + children: PropTypes.node, + + /** Additional classes. */ + className: PropTypes.string, + + /** A message can be formatted to be different colors. */ + color: PropTypes.oneOf(SUI.COLORS), + + /** A message can only take up the width of its content. */ + compact: PropTypes.bool, + + /** Shorthand for primary content. */ + content: customPropTypes.contentShorthand, + + /** A message may be formatted to display a negative message. Same as `negative`. */ + error: PropTypes.bool, + + /** A message can float above content that it is related to. */ + floating: PropTypes.bool, + + /** Shorthand for MessageHeader. */ + header: customPropTypes.itemShorthand, + + /** A message can be hidden. */ + hidden: PropTypes.bool, + + /** A message can contain an icon. */ + icon: PropTypes.oneOfType([customPropTypes.itemShorthand, PropTypes.bool]), + + /** A message may be formatted to display information. */ + info: PropTypes.bool, + + /** Array shorthand items for the MessageList. Mutually exclusive with children. */ + list: customPropTypes.collectionShorthand, + + /** A message may be formatted to display a negative message. Same as `error`. */ + negative: PropTypes.bool, + + /** + * A message that the user can choose to hide. + * Called when the user clicks the "x" icon. This also adds the "x" icon. + * + * @param {SyntheticEvent} event - React's original SyntheticEvent. + * @param {object} data - All props. + */ + onDismiss: PropTypes.func, + + /** A message may be formatted to display a positive message. Same as `success`. */ + positive: PropTypes.bool, + + /** A message can have different sizes. */ + size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')), + + /** A message may be formatted to display a positive message. Same as `positive`. */ + success: PropTypes.bool, + + /** A message can be set to visible to force itself to be shown. */ + visible: PropTypes.bool, + + /** A message may be formatted to display warning messages. */ + warning: PropTypes.bool, +} + +Message.Content = MessageContent +Message.Header = MessageHeader +Message.List = MessageList +Message.Item = MessageItem diff --git a/src/collections/Table/Table.d.ts b/src/collections/Table/Table.d.ts index 10a83e70bb..f3c6748459 100644 --- a/src/collections/Table/Table.d.ts +++ b/src/collections/Table/Table.d.ts @@ -12,7 +12,7 @@ import TableCell from './TableCell' import TableFooter from './TableFooter' import TableHeader from './TableHeader' import TableHeaderCell from './TableHeaderCell' -import { default as TableRow, TableRowProps } from './TableRow' +import TableRow, { TableRowProps } from './TableRow' export interface TableProps extends StrictTableProps { [key: string]: any diff --git a/src/elements/Button/Button.d.ts b/src/elements/Button/Button.d.ts index a0dedcf973..f298e76a3b 100644 --- a/src/elements/Button/Button.d.ts +++ b/src/elements/Button/Button.d.ts @@ -115,7 +115,7 @@ export interface StrictButtonProps { toggle?: boolean } -declare class Button extends React.Component { +declare class Button extends React.Component { static Content: typeof ButtonContent static Group: typeof ButtonGroup static Or: typeof ButtonOr diff --git a/src/elements/Button/Button.js b/src/elements/Button/Button.js index 7857b0d840..05256db0a2 100644 --- a/src/elements/Button/Button.js +++ b/src/elements/Button/Button.js @@ -28,134 +28,6 @@ import ButtonOr from './ButtonOr' * @see Label */ class Button extends Component { - static propTypes = { - /** An element type to render as (string or function). */ - as: PropTypes.elementType, - - /** A button can show it is currently the active user selection. */ - active: PropTypes.bool, - - /** A button can animate to show hidden content. */ - animated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['fade', 'vertical'])]), - - /** A button can be attached to other content. */ - attached: PropTypes.oneOfType([ - PropTypes.bool, - PropTypes.oneOf(['left', 'right', 'top', 'bottom']), - ]), - - /** A basic button is less pronounced. */ - basic: PropTypes.bool, - - /** Primary content. */ - children: customPropTypes.every([ - PropTypes.node, - customPropTypes.disallow(['label']), - customPropTypes.givenProps( - { - icon: PropTypes.oneOfType([ - PropTypes.string.isRequired, - PropTypes.object.isRequired, - PropTypes.element.isRequired, - ]), - }, - customPropTypes.disallow(['icon']), - ), - ]), - - /** A button can be circular. */ - circular: PropTypes.bool, - - /** Additional classes. */ - className: PropTypes.string, - - /** A button can have different colors */ - color: PropTypes.oneOf([ - ...SUI.COLORS, - 'facebook', - 'google plus', - 'instagram', - 'linkedin', - 'twitter', - 'vk', - 'youtube', - ]), - - /** A button can reduce its padding to fit into tighter spaces. */ - compact: PropTypes.bool, - - /** Shorthand for primary content. */ - content: customPropTypes.contentShorthand, - - /** A button can show it is currently unable to be interacted with. */ - disabled: PropTypes.bool, - - /** A button can be aligned to the left or right of its container. */ - floated: PropTypes.oneOf(SUI.FLOATS), - - /** A button can take the width of its container. */ - fluid: PropTypes.bool, - - /** Add an Icon by name, props object, or pass an . */ - icon: customPropTypes.some([ - PropTypes.bool, - PropTypes.string, - PropTypes.object, - PropTypes.element, - ]), - - /** A button can be formatted to appear on dark backgrounds. */ - inverted: PropTypes.bool, - - /** Add a Label by text, props object, or pass a
).should.not.have.descendants('.active') @@ -57,16 +60,10 @@ describe('Menu', () => { it('is set when clicking an item', () => { const wrapper = mount() - wrapper - .find('MenuItem') - .at(1) - .simulate('click') + wrapper.find('MenuItem').at(1).simulate('click') // must re-query for the menu items or we get a cached copy - wrapper - .find('MenuItem') - .at(1) - .should.have.prop('active', true) + wrapper.find('MenuItem').at(1).should.have.prop('active', true) }) it('works as a string', () => { diff --git a/test/specs/collections/Message/MessageList-test.js b/test/specs/collections/Message/MessageList-test.js index 75124c7613..19a03f6a8d 100644 --- a/test/specs/collections/Message/MessageList-test.js +++ b/test/specs/collections/Message/MessageList-test.js @@ -24,20 +24,11 @@ describe('MessageList', () => { wrapper.should.have.exactly(3).descendants('MessageItem') - wrapper - .childAt(0) - .shallow() - .should.have.text(items[0]) - - wrapper - .childAt(1) - .shallow() - .should.have.text(items[1]) - - wrapper - .childAt(2) - .shallow() - .should.have.text(items[2]) + wrapper.childAt(0).shallow().should.have.text(items[0]) + + wrapper.childAt(1).shallow().should.have.text(items[1]) + + wrapper.childAt(2).shallow().should.have.text(items[2]) }) }) }) diff --git a/test/specs/collections/Table/Table-test.js b/test/specs/collections/Table/Table-test.js index c39bccafe6..d65894082a 100644 --- a/test/specs/collections/Table/Table-test.js +++ b/test/specs/collections/Table/Table-test.js @@ -143,25 +143,15 @@ describe('Table', () => { thead.should.have.lengthOf(1) thead.find('tr').should.have.lengthOf(1) - thead - .find('tr') - .find('th') - .should.have.lengthOf(headerRow.length) + thead.find('tr').find('th').should.have.lengthOf(headerRow.length) tbody.should.have.lengthOf(1) tbody.find('tr').should.have.lengthOf(tableData.length) - tbody - .find('tr') - .first() - .find('td') - .should.have.lengthOf(3) + tbody.find('tr').first().find('td').should.have.lengthOf(3) tfoot.should.have.lengthOf(1) tfoot.find('tr').should.have.lengthOf(1) - tfoot - .find('tr') - .find('td') - .should.have.lengthOf(footerRow.length) + tfoot.find('tr').find('td').should.have.lengthOf(footerRow.length) }) it('renders the table with 2 lines header', () => { @@ -169,31 +159,16 @@ describe('Table', () => { thead.should.have.lengthOf(1) thead.find('tr').should.have.lengthOf(2) - thead - .find('tr') - .at(0) - .find('th') - .should.have.lengthOf(3) - thead - .find('tr') - .at(1) - .find('th') - .should.have.lengthOf(2) + thead.find('tr').at(0).find('th').should.have.lengthOf(3) + thead.find('tr').at(1).find('th').should.have.lengthOf(2) tbody.should.have.lengthOf(1) tbody.find('tr').should.have.lengthOf(tableData.length) - tbody - .find('tr') - .first() - .find('td') - .should.have.lengthOf(4) + tbody.find('tr').first().find('td').should.have.lengthOf(4) tfoot.should.have.lengthOf(1) tfoot.find('tr').should.have.lengthOf(1) - tfoot - .find('tr') - .find('td') - .should.have.lengthOf(footerRow.length) + tfoot.find('tr').find('td').should.have.lengthOf(footerRow.length) }) }) }) diff --git a/test/specs/commonTests/tsHelpers.js b/test/specs/commonTests/tsHelpers.js index eca5646c9a..eae8103b80 100644 --- a/test/specs/commonTests/tsHelpers.js +++ b/test/specs/commonTests/tsHelpers.js @@ -77,7 +77,7 @@ export const hasAnySignature = (nodes) => { export const requireTs = (tsPath) => { try { - return require(`!raw-loader!../../../src/${tsPath}`) + return require(`!raw-loader!../../../src/${tsPath}`).default } catch (e) { return false } diff --git a/test/specs/elements/Button/Button-test.js b/test/specs/elements/Button/Button-test.js index 30b07e56ca..a73a1ee83d 100644 --- a/test/specs/elements/Button/Button-test.js +++ b/test/specs/elements/Button/Button-test.js @@ -199,40 +199,22 @@ describe('Button', () => { const wrapper = shallow( diff --git a/docs/src/components/CopyToClipboard.js b/docs/src/components/CopyToClipboard.js index efee682a99..007d40724f 100644 --- a/docs/src/components/CopyToClipboard.js +++ b/docs/src/components/CopyToClipboard.js @@ -1,41 +1,30 @@ +import copyToClipboard from 'copy-to-clipboard' import PropTypes from 'prop-types' import React from 'react' -import copyToClipboard from 'copy-to-clipboard' - -class CopyToClipboard extends React.Component { - state = { - active: false, - } - timeoutId +export const useCopyToClipboard = (value, timeout = 3000) => { + const [active, setActive] = React.useState(false) + const onCopy = React.useCallback(() => { + copyToClipboard(typeof value === 'function' ? value() : value) + setActive(true) - componentWillUnmount() { - clearTimeout(this.timeoutId) - } + const timeoutId = setTimeout(() => setActive(false), timeout) - handleClick = () => { - const { timeout, value } = this.props + return () => clearTimeout(timeoutId) + }, [timeout, value]) - clearTimeout(this.timeoutId) - - this.setState({ active: true }) - this.timeoutId = setTimeout(() => { - this.setState({ active: false }) - }, timeout) - - copyToClipboard(value) - } + return [active, onCopy] +} - render() { - const { render } = this.props - const { active } = this.state +export const CopyToClipboard = (props) => { + const { children, timeout, value } = props + const [active, onCopy] = useCopyToClipboard(value, timeout) - return render(active, this.handleClick) - } + return children(active, onCopy) } CopyToClipboard.propTypes = { - render: PropTypes.func.isRequired, + children: PropTypes.func.isRequired, timeout: PropTypes.number, value: PropTypes.string.isRequired, } diff --git a/docs/src/components/Document.js b/docs/src/components/Document.js index 0b33232df1..5b4e9fc9d5 100644 --- a/docs/src/components/Document.js +++ b/docs/src/components/Document.js @@ -27,9 +27,6 @@ const Document = ({ Body, children, Head, Html, siteData: { dev, versions } }) = +``` + +## Custom themes -