From 54e4e77d5d40281fcfddd477edcb03bd3506d92c Mon Sep 17 00:00:00 2001 From: Marc MacLeod Date: Sat, 11 Apr 2020 16:13:50 -0500 Subject: [PATCH] chore: switch to eslint --- .codeclimate.yml | 31 - .eslintignore | 7 + .eslintrc.js | 3 + .prettierrc.js | 3 + .storybook/config.js | 2 +- .storybook/webpack.config.js | 4 +- README.md | 80 ++- package.json | 28 +- src/CodeEditor/__tests__/Editor.spec.tsx | 4 +- src/CodeEditor/utils/highlightCode.ts | 4 +- src/CodeViewer/__tests__/Viewer.spec.tsx | 4 +- src/CodeViewer/index.tsx | 3 +- src/CodeViewer/types.ts | 1 + src/Dropdown/Dropdown.tsx | 2 +- src/FAIcon/index.tsx | 1 + src/FormInput/index.tsx | 4 +- .../__tests__/ScrollContainer.spec.tsx | 4 +- src/SecretInput/index.tsx | 3 +- src/SimpleTabs/Tab.tsx | 1 + src/SimpleTabs/TabList.tsx | 4 +- src/SimpleTabs/TabPanel.tsx | 1 + src/SimpleTabs/index.tsx | 4 +- src/TableOfContents/index.tsx | 1 + src/__stories__/AutoSizer/index.tsx | 3 +- src/__stories__/Checkbox/index.tsx | 3 +- src/__stories__/Docs/Namespaces.tsx | 4 +- src/__stories__/Docs/Theme.tsx | 4 +- src/__stories__/Docs/index.tsx | 1 + src/__stories__/FormInput/index.tsx | 10 +- src/__stories__/ScrollContainer/index.tsx | 3 +- src/__stories__/SecretInput/index.tsx | 3 +- src/__stories__/TableOfContents/index.tsx | 4 +- src/__stories__/Toaster/index.tsx | 3 +- src/__stories__/index.ts | 3 - src/_hooks/useIsMobile.ts | 8 +- src/styles/tailwind/tailwind.config.js | 8 +- tsconfig.json | 2 +- tslint.json | 9 - yarn.lock | 543 ++++++++++++++---- 39 files changed, 565 insertions(+), 245 deletions(-) delete mode 100644 .codeclimate.yml create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .prettierrc.js delete mode 100644 tslint.json diff --git a/.codeclimate.yml b/.codeclimate.yml deleted file mode 100644 index a5caffc7..00000000 --- a/.codeclimate.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: '2' -checks: - argument-count: - config: - threshold: 6 - complex-logic: - config: - threshold: 10 - file-lines: - config: - threshold: 1000 - method-complexity: - config: - threshold: 30 - method-count: - config: - threshold: 30 - method-lines: - config: - threshold: 200 - nested-control-flow: - config: - threshold: 8 - return-statements: - config: - threshold: 5 - similar-code: - config: - threshold: 200 -exclude_patterns: - - '**/__tests__/' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..7eb4683b --- /dev/null +++ b/.eslintignore @@ -0,0 +1,7 @@ +node_modules +dist +.yalc +.yarn +build +cache +.cache diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..bc6e6be9 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['@stoplight'], +}; diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..5553ba6f --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('@stoplight/eslint-config/prettier.config'), +}; diff --git a/.storybook/config.js b/.storybook/config.js index 3dddc0ca..fa692dd7 100644 --- a/.storybook/config.js +++ b/.storybook/config.js @@ -1,3 +1,3 @@ import '@stoplight/storybook-config/config'; -import '../src/styles/_ui-kit.scss'; \ No newline at end of file +import '../src/styles/_ui-kit.scss'; diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js index 1a4a982e..d72c2133 100644 --- a/.storybook/webpack.config.js +++ b/.storybook/webpack.config.js @@ -1,7 +1,7 @@ const path = require('path'); const defaultConfig = require('@stoplight/storybook-config/webpack.config'); const inliner = require('sass-inline-svg'); -const {last} = require('lodash'); +const { last } = require('lodash'); const cwd = process.cwd(); @@ -16,7 +16,7 @@ module.exports = (baseConfig, env, config) => { { optimize: true, encodingFormat: 'uri', - } + }, ); return config; diff --git a/README.md b/README.md index d635450b..a2ad0e48 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ # UI-KIT -[![Maintainability](https://api.codeclimate.com/v1/badges/f0df5b38120a6471be33/maintainability)](https://codeclimate.com/repos/5bdb489c9a98842d0a00d211/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/f0df5b38120a6471be33/test_coverage)](https://codeclimate.com/repos/5bdb489c9a98842d0a00d211/test_coverage) +[![Maintainability](https://api.codeclimate.com/v1/badges/f0df5b38120a6471be33/maintainability)](https://codeclimate.com/repos/5bdb489c9a98842d0a00d211/maintainability) +[![Test Coverage](https://api.codeclimate.com/v1/badges/f0df5b38120a6471be33/test_coverage)](https://codeclimate.com/repos/5bdb489c9a98842d0a00d211/test_coverage) -Stoplight UI-Kit is a shared component library that contains basic components built using [Blueprint](https://blueprintjs.com/docs/), [Tailwind](https://next.tailwindcss.com/), and [SCSS](https://sass-lang.com/guide) All custom components should support overridable theming from a theme object, and also come with default styling from our prepackaged theme. +Stoplight UI-Kit is a shared component library that contains basic components built using +[Blueprint](https://blueprintjs.com/docs/), [Tailwind](https://next.tailwindcss.com/), and +[SCSS](https://sass-lang.com/guide) All custom components should support overridable theming from a theme object, and +also come with default styling from our prepackaged theme. - Explore the components: [Storybook](https://stoplightio.github.io/ui-kit/) - View the changelog: [Releases](https://github.com/stoplightio/ui-kit/releases) @@ -19,39 +23,61 @@ yarn add @stoplight/ui-kit - `yarn storybook`: Starts the storybook playground - `yarn build`: Builds the package. - `yarn build.styles`: Builds and copies over the appropriate scss related files to dist. -- `yarn build.tw`: Generates the tailwind scss file from the config (needs to be rerun everytime `tailwind.config` is updated). +- `yarn build.tw`: Generates the tailwind scss file from the config (needs to be rerun everytime `tailwind.config` is + updated). - `yarn build.bp`: Generates the blueprint icons scss file (should not need to run often) ## Important Files/Folders #### [./src/styles/blueprint](./src/styles/blueprint) -- [\_base.scss](./src/styles/blueprint/_base.scss): - Contains a remapping of stoplight variables to blueprint variables. This file should rarely be edited directly and require minimal maintenance. Any updates to variables in here should be updated through [\_variables.scss](./src/styles/common/_variables.scss) +- [\_base.scss](./src/styles/blueprint/_base.scss): Contains a remapping of stoplight variables to blueprint variables. + This file should rarely be edited directly and require minimal maintenance. Any updates to variables in here should be + updated through [\_variables.scss](./src/styles/common/_variables.scss) -- [\_icons.scss](./src/styles/blueprint/_icons.scss): Auto generated file of blueprint icon fonts. Created with the `yarn build.bp` command and should not be updated directly +- [\_icons.scss](./src/styles/blueprint/_icons.scss): Auto generated file of blueprint icon fonts. Created with the + `yarn build.bp` command and should not be updated directly - [icons directory](./src/styles/blueprint/icons): Icon fonts used by \_icons.scss #### [./src/styles/tailwind](./src/styles/tailwind) -- [\_base.scss](./src/styles/tailwind/_base.scss): Auto generated tailwind classnames that utilize our stoplight scss variables. This file should NEVER be updated directly and is created using `yarn build.tw` +- [\_base.scss](./src/styles/tailwind/_base.scss): Auto generated tailwind classnames that utilize our stoplight scss + variables. This file should NEVER be updated directly and is created using `yarn build.tw` -- [tailwind.config.js](./src/styles/tailwind/tailwind.config.js): Tailwind config object. Note two special features. A few properties, like colors, map to scss [utility function](./src/styles/common/_utils.scss) strings so that we can properly convert to our scss theme variable during the compile process. And the inclusing of a `.dark` plugin that adds extra dark classes so we can do things like `className="text-success dark:text-danger"` +- [tailwind.config.js](./src/styles/tailwind/tailwind.config.js): Tailwind config object. Note two special features. A + few properties, like colors, map to scss [utility function](./src/styles/common/_utils.scss) strings so that we can + properly convert to our scss theme variable during the compile process. And the inclusing of a `.dark` plugin that + adds extra dark classes so we can do things like `className="text-success dark:text-danger"` #### [./src/styles/common](./src/styles/common) - [\_variables.scss](./src/styles/common/_variables.scss): Contains three major variables used for style consistency: - - `$sl-defaults`: app wide defaults, this where we define defaults for things we might want an end consumer to overwrite. This should never be used outside of this file. Notice that it extends the defaults/variables from specific components like "code" + - `$sl-defaults`: app wide defaults, this where we define defaults for things we might want an end consumer to + overwrite. This should never be used outside of this file. Notice that it extends the defaults/variables from + specific components like "code" - - `$sl-config`: This is an empy variable with a default value of `()`, think of it as an empty representation of what a consumer might pass to ui-kit. It is needed since scss `map-merge` does not deep merge, so we cannot explicity overwrite `$sl-defaults`. For more information on this see [example usage below](#example-usage). This should never be used elsewhere within this repo + - `$sl-config`: This is an empy variable with a default value of `()`, think of it as an empty representation of what + a consumer might pass to ui-kit. It is needed since scss `map-merge` does not deep merge, so we cannot explicity + overwrite `$sl-defaults`. For more information on this see [example usage below](#example-usage). This should never + be used elsewhere within this repo - - `$sl-variables`: A map that equals a deep merge of consumer passed in `$sl-config` and internally defined `$sl-defaults`. This is the actual variable map that our theme with be using. and should only every be used in [\_theme]()./src/styles/common/\_theme.scss) + - `$sl-variables`: A map that equals a deep merge of consumer passed in `$sl-config` and internally defined + `$sl-defaults`. This is the actual variable map that our theme with be using. and should only every be used in + [\_theme]()./src/styles/common/\_theme.scss) -- [\_theme.scss](./src/styles/common/_theme.scss): Contains our SCSS Theme `$sl-theme` and helpful theme getters!! Includes any values that we think might be valuable to other components. Notice that colors uses `$sl-variables` because we allow that value to be overwritten by a consumer. It's set up in such a way that that we will have complete control over how these properties behave. (colors can be changed but font sizes for example cannot). The theme will also include any fields from \$sl-variables that are not explicity defined in the main `$sl-theme` map. So for example, although `code-editor` does not appear in `$sl-theme` directly it's still included because we extend the fields \$sl-variables that are missing. If you want to access the theme in any other scss files just import @stoplight/ui-kit/src/styles/common/theme +- [\_theme.scss](./src/styles/common/_theme.scss): Contains our SCSS Theme `$sl-theme` and helpful theme getters!! + Includes any values that we think might be valuable to other components. Notice that colors uses `$sl-variables` + because we allow that value to be overwritten by a consumer. It's set up in such a way that that we will have complete + control over how these properties behave. (colors can be changed but font sizes for example cannot). The theme will + also include any fields from \$sl-variables that are not explicity defined in the main `$sl-theme` map. So for + example, although `code-editor` does not appear in `$sl-theme` directly it's still included because we extend the + fields \$sl-variables that are missing. If you want to access the theme in any other scss files just import + @stoplight/ui-kit/src/styles/common/theme -- [\_utils.scss](./src/styles/common/_utils.scss): Has some helpful utils around map functions. Includes map-deep-get, map-safe-get, and map-extend +- [\_utils.scss](./src/styles/common/_utils.scss): Has some helpful utils around map functions. Includes map-deep-get, + map-safe-get, and map-extend #### [./src/styles/ui-kit.scss](./src/styles/ui-kit.scss): This is the scss file that will be imported by the end consumer and contains everything else! @@ -60,17 +86,28 @@ yarn add @stoplight/ui-kit 1. Add a folder with you component name to the `./src/components` directory 2. Add a `{Component}.tsx` under `./src/components/{component}` 3. Add a `__tests__` folder under `./src/components/{component}` -4. If this component requires special styling or a unique class name create `./src/components/{component}/styles/_base.scss` and `./src/components/{component}/styles/class.ts` respectively +4. If this component requires special styling or a unique class name create + `./src/components/{component}/styles/_base.scss` and `./src/components/{component}/styles/class.ts` respectively - Rules for styling: - - **Class Name**: If the component does not follow under one of the blueprint class names, create one for this component using the name space variable, we need to use namespacing so we keep our classes unique, the NS variable will always be the same + - **Class Name**: If the component does not follow under one of the blueprint class names, create one for this + component using the name space variable, we need to use namespacing so we keep our classes unique, the NS + variable will always be the same ```javascript const NS = process.env.BLUEPRINT_NAMESPACE || 'bp3'; export const CODE_EDITOR = `${NS}-code-editor`; ``` - -**SCSS**: Every component using custom scss should support both light an dark styling. Dark selectors will look something like `.{$ns}-dark .{$ns}-code-editor` look at [tailwind](./src/styles/tailwind/_base.scss) for examples on how this is done. If a component requires themable variables (think really just colors), they should be defined in an adjacent file named `_variables.scss`. The variables should NEVER be used directly. Instead they get injected back into the theme and should be used by using the `get-theme` function in your `_base.scss`. Lastly avoid created separate variables for light and dark. So don't create `$sl-var: red` and `$sl-var-dark: blue`, instead be creative and use different shades of the same color. So `$sl-var: red` then do something like `.{$ns}-dark .{$ns}-code-editor (color: lighten($sl-var, 10%))` - -5. If this component requires specific types or utils include them in this component folder as well. We want to keep everything really independent + -**SCSS**: Every component using custom scss should support both light an dark styling. Dark selectors will look + something like `.{$ns}-dark .{$ns}-code-editor` look at [tailwind](./src/styles/tailwind/_base.scss) for examples + on how this is done. If a component requires themable variables (think really just colors), they should be defined + in an adjacent file named `_variables.scss`. The variables should NEVER be used directly. Instead they get injected + back into the theme and should be used by using the `get-theme` function in your `_base.scss`. Lastly avoid created + separate variables for light and dark. So don't create `$sl-var: red` and `$sl-var-dark: blue`, instead be creative + and use different shades of the same color. So `$sl-var: red` then do something like + `.{$ns}-dark .{$ns}-code-editor (color: lighten($sl-var, 10%))` + +5. If this component requires specific types or utils include them in this component folder as well. We want to keep + everything really independent ## Example Usage @@ -88,9 +125,12 @@ Then in your main `scss` file @import '~@stoplight/ui-kit/src/styles/ui-kit'; ``` -Lastly make sure compile your scss to css during your build process. This can be done using the scss-loader in webpack, or even just straight node-sass if so desired. +Lastly make sure compile your scss to css during your build process. This can be done using the scss-loader in webpack, +or even just straight node-sass if so desired. -Okay its working, but you decided you're really not a fan of the theming :( well luckily its easily overwrittable to whatever you want! In the same file as your import include an `$sl-config` variable ABOVE the import. If its after the import it wont work. Compile after as you normally would as see the updates. +Okay its working, but you decided you're really not a fan of the theming :( well luckily its easily overwrittable to +whatever you want! In the same file as your import include an `$sl-config` variable ABOVE the import. If its after the +import it wont work. Compile after as you normally would as see the updates. ```scss /*main.scss*/ diff --git a/package.json b/package.json index 4cb3b4f7..fd20f0a5 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,9 @@ "build.styles": "yarn build.tw && copyfiles -u 1 \"./src/styles/**/*\" ./dist", "build.tw": "postcss ./scripts/build-tailwind/tailwind.css -o ./src/styles/tailwind/_base.scss -c ./sripts/tailwind-build/postcss.config.js", "commit": "git-cz", - "lint": "tslint -c tslint.json 'src/**/*.ts{,x}'", - "lint.fix": "yarn lint --fix", + "lint": "yarn prettier.check && eslint --ext .js,.jsx,.ts,.tsx .", + "lint.fix": "prettier --ignore-path .eslintignore --write '**/*.{js,jsx,ts,tsx,graphql,md}'; eslint --ext .js,.jsx,.ts,.tsx . --fix", + "prettier.check": "prettier --ignore-path .eslintignore --check '**/*.{js,jsx,ts,tsx,md}'", "release": "sl-scripts release", "release.dryRun": "sl-scripts release --dry-run --debug", "storybook": "start-storybook -p 9001", @@ -61,6 +62,7 @@ "devDependencies": { "@babel/core": "^7.9", "@sambego/storybook-state": "^1.3", + "@stoplight/eslint-config": "^1.1.0", "@stoplight/json": "^3.6.0", "@stoplight/scripts": "^8.2.0", "@stoplight/storybook-config": "2.0.5", @@ -88,6 +90,8 @@ "@types/react-virtualized-auto-sizer": "^1.0.0", "@types/react-window": "^1.8.1", "@types/yup": "~0.26.35", + "@typescript-eslint/eslint-plugin": "^2.27.0", + "@typescript-eslint/parser": "^2.27.0", "autoprefixer": "^9.7.6", "babel-loader": "^8.1.0", "copyfiles": "^2.2.0", @@ -95,13 +99,20 @@ "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "enzyme-to-json": "^3.4.4", + "eslint": "^6.8.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jest": "^23.8.2", + "eslint-plugin-prettier": "^3.1.2", + "eslint-plugin-react": "^7.19.0", + "eslint-plugin-react-hooks": "^3.0.0", + "eslint-plugin-simple-import-sort": "^5.0.2", "jest": "^25.3.0", "jest-enzyme": "^7.1.2", "lodash": "^4.17.15", "node-sass": "^4.13.1", "postcss-cli": "^7.1.0", "postcss-import": "^12.0.1", - "prettier": "^1.19.1", + "prettier": "~2.0.4", "react": "~16.12.0", "react-dom": "~16.12.0", "resolve-url-loader": "^3.1.1", @@ -110,12 +121,6 @@ "tailwindcss": "^1.2.0", "ts-jest": "^25.3.1", "ts-loader": "^6.2.2", - "tslint": "^5.20.1", - "tslint-config-prettier": "^1.18.0", - "tslint-config-stoplight": "^1.4.0", - "tslint-plugin-prettier": "^2.1.0", - "tslint-react": "^4.1.0", - "tslint-react-hooks": "^2.2.1", "typescript": "3.7.5", "webpack": "~4.42.1" }, @@ -143,10 +148,5 @@ }, "release": { "extends": "@stoplight/scripts/release" - }, - "prettier": { - "printWidth": 120, - "singleQuote": true, - "trailingComma": "es5" } } diff --git a/src/CodeEditor/__tests__/Editor.spec.tsx b/src/CodeEditor/__tests__/Editor.spec.tsx index f1005170..d0f95ad7 100644 --- a/src/CodeEditor/__tests__/Editor.spec.tsx +++ b/src/CodeEditor/__tests__/Editor.spec.tsx @@ -1,7 +1,9 @@ -import { mount } from 'enzyme'; import 'jest-enzyme'; + +import { mount } from 'enzyme'; import * as React from 'react'; import ReactSimpleCodeEditor from 'react-simple-code-editor'; + import { CodeEditor } from '..'; describe('Code Editor component', () => { diff --git a/src/CodeEditor/utils/highlightCode.ts b/src/CodeEditor/utils/highlightCode.ts index 5b097dd2..1734872d 100644 --- a/src/CodeEditor/utils/highlightCode.ts +++ b/src/CodeEditor/utils/highlightCode.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line simple-import-sort/sort import * as Prism from 'prismjs'; import 'prismjs/components/prism-bash'; @@ -51,7 +52,8 @@ export const highlightCode = (code: string = '', language: string, showLineNumbe return result; } catch (error) { - console.log('Error highlighting code:', error, code); + // eslint-disable-next-line no-console + console.error('Error highlighting code:', error, code); return code; } }; diff --git a/src/CodeViewer/__tests__/Viewer.spec.tsx b/src/CodeViewer/__tests__/Viewer.spec.tsx index 16fbc223..dab936fc 100644 --- a/src/CodeViewer/__tests__/Viewer.spec.tsx +++ b/src/CodeViewer/__tests__/Viewer.spec.tsx @@ -1,6 +1,8 @@ -import { mount } from 'enzyme'; import 'jest-enzyme'; + +import { mount } from 'enzyme'; import * as React from 'react'; + import { CodeViewer } from '..'; describe('Code Viewer component', () => { diff --git a/src/CodeViewer/index.tsx b/src/CodeViewer/index.tsx index d48cfdc1..e61e3e7d 100644 --- a/src/CodeViewer/index.tsx +++ b/src/CodeViewer/index.tsx @@ -1,5 +1,6 @@ -import * as cn from 'classnames'; import 'prismjs'; + +import * as cn from 'classnames'; import * as React from 'react'; import { Classes } from '../classes'; diff --git a/src/CodeViewer/types.ts b/src/CodeViewer/types.ts index e98380ac..f3499502 100644 --- a/src/CodeViewer/types.ts +++ b/src/CodeViewer/types.ts @@ -1,4 +1,5 @@ import { ReactHTML } from 'react'; + import { Dictionary } from '../types'; export type ASTNode = Partial<{ diff --git a/src/Dropdown/Dropdown.tsx b/src/Dropdown/Dropdown.tsx index 43cb2e2f..ce7a0850 100644 --- a/src/Dropdown/Dropdown.tsx +++ b/src/Dropdown/Dropdown.tsx @@ -43,7 +43,7 @@ export const Dropdown: React.FunctionComponent = ({ ); }, - [maxRows, itemSize], + [className, maxRows, itemSize], ); return React.createElement( diff --git a/src/FAIcon/index.tsx b/src/FAIcon/index.tsx index 23c32024..bb281dba 100644 --- a/src/FAIcon/index.tsx +++ b/src/FAIcon/index.tsx @@ -26,6 +26,7 @@ export const FAIcon = ({ icon, className, size, style }: IIcon) => { prefix = icon.prefix || prefix; name = icon.iconName; } else { + // eslint-disable-next-line no-console console.warn('Invalid icon prop provided to Icon component', icon); name = 'exclamation'; } diff --git a/src/FormInput/index.tsx b/src/FormInput/index.tsx index 1db734d9..74e82fc8 100644 --- a/src/FormInput/index.tsx +++ b/src/FormInput/index.tsx @@ -8,10 +8,10 @@ import { Tooltip, } from '@blueprintjs/core'; import * as React from 'react'; -import { useValidateSchema } from '../_hooks/useValidateSchema'; - // TODO: should probably use ajv and json schema import * as yup from 'yup'; + +import { useValidateSchema } from '../_hooks/useValidateSchema'; import { Dictionary } from '../types'; /** diff --git a/src/ScrollContainer/__tests__/ScrollContainer.spec.tsx b/src/ScrollContainer/__tests__/ScrollContainer.spec.tsx index 32f8347f..254b6517 100644 --- a/src/ScrollContainer/__tests__/ScrollContainer.spec.tsx +++ b/src/ScrollContainer/__tests__/ScrollContainer.spec.tsx @@ -1,6 +1,8 @@ -import { shallow } from 'enzyme'; import 'jest-enzyme'; + +import { shallow } from 'enzyme'; import * as React from 'react'; + import { ScrollContainer } from '../'; import { AutoSizer } from '../../AutoSizer'; diff --git a/src/SecretInput/index.tsx b/src/SecretInput/index.tsx index 26edb349..dcf60a43 100644 --- a/src/SecretInput/index.tsx +++ b/src/SecretInput/index.tsx @@ -1,6 +1,5 @@ -import * as React from 'react'; - import { Button, HTMLInputProps, IInputGroupProps, InputGroup, Tooltip } from '@blueprintjs/core'; +import * as React from 'react'; type SecretInputProps = { selectOnFocus?: boolean; diff --git a/src/SimpleTabs/Tab.tsx b/src/SimpleTabs/Tab.tsx index 6b40faf2..2197b91a 100644 --- a/src/SimpleTabs/Tab.tsx +++ b/src/SimpleTabs/Tab.tsx @@ -1,6 +1,7 @@ import * as cn from 'classnames'; import * as React from 'react'; import { Tab, TabProps as ISimpleTabProps } from 'react-tabs'; + import { Classes } from '../classes'; const SimpleTab: React.FunctionComponent & { tabsRole: string } = props => { diff --git a/src/SimpleTabs/TabList.tsx b/src/SimpleTabs/TabList.tsx index db679f5a..56054b80 100644 --- a/src/SimpleTabs/TabList.tsx +++ b/src/SimpleTabs/TabList.tsx @@ -1,9 +1,9 @@ import * as cn from 'classnames'; import * as React from 'react'; -import { Classes } from '../classes'; - import { TabList as ReactTabList, TabListProps as ISimpleTabListProps } from 'react-tabs'; +import { Classes } from '../classes'; + /** * TAB LIST */ diff --git a/src/SimpleTabs/TabPanel.tsx b/src/SimpleTabs/TabPanel.tsx index 9cf0731a..80ba230a 100644 --- a/src/SimpleTabs/TabPanel.tsx +++ b/src/SimpleTabs/TabPanel.tsx @@ -1,6 +1,7 @@ import * as cn from 'classnames'; import * as React from 'react'; import { TabPanel, TabPanelProps as ISimpleTabPanelProps } from 'react-tabs'; + import { Classes } from '../classes'; /** diff --git a/src/SimpleTabs/index.tsx b/src/SimpleTabs/index.tsx index 96be97aa..1ec22393 100644 --- a/src/SimpleTabs/index.tsx +++ b/src/SimpleTabs/index.tsx @@ -1,6 +1,6 @@ +import { Tabs as SimpleTabs, TabsProps as ISimpleTabsProps } from 'react-tabs'; + export * from './Tab'; export * from './TabList'; export * from './TabPanel'; - -import { Tabs as SimpleTabs, TabsProps as ISimpleTabsProps } from 'react-tabs'; export { SimpleTabs, ISimpleTabsProps }; diff --git a/src/TableOfContents/index.tsx b/src/TableOfContents/index.tsx index a0d2ed6b..06ef3846 100644 --- a/src/TableOfContents/index.tsx +++ b/src/TableOfContents/index.tsx @@ -1,6 +1,7 @@ import { Button, Drawer, Icon } from '@blueprintjs/core'; import cn from 'classnames'; import * as React from 'react'; + import { useIsMobile } from '../_hooks/useIsMobile'; import { ScrollContainer } from '../ScrollContainer'; import { IContentsNode } from './types'; diff --git a/src/__stories__/AutoSizer/index.tsx b/src/__stories__/AutoSizer/index.tsx index 48761706..3b7eb447 100644 --- a/src/__stories__/AutoSizer/index.tsx +++ b/src/__stories__/AutoSizer/index.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; - import { withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; import { AutoSizer } from '../../'; diff --git a/src/__stories__/Checkbox/index.tsx b/src/__stories__/Checkbox/index.tsx index 27e89502..25087fcd 100644 --- a/src/__stories__/Checkbox/index.tsx +++ b/src/__stories__/Checkbox/index.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; - import { withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; import { Checkbox } from '../../'; diff --git a/src/__stories__/Docs/Namespaces.tsx b/src/__stories__/Docs/Namespaces.tsx index 52e3423f..a422b245 100644 --- a/src/__stories__/Docs/Namespaces.tsx +++ b/src/__stories__/Docs/Namespaces.tsx @@ -1,9 +1,9 @@ +import './_theme-namespace.scss'; + import * as React from 'react'; import { Button, CodeViewer, ThemeContainer } from '../..'; -import './_theme-namespace.scss'; - export default () => (
diff --git a/src/__stories__/Docs/Theme.tsx b/src/__stories__/Docs/Theme.tsx index 21f3132c..ee31cbb1 100644 --- a/src/__stories__/Docs/Theme.tsx +++ b/src/__stories__/Docs/Theme.tsx @@ -1,9 +1,9 @@ +import './_theme-overwrite.scss'; + import * as React from 'react'; import { Button, CodeViewer, ThemeContainer } from '../../'; -import './_theme-overwrite.scss'; - export default () => (
Don't like the stoplight color pallete? Overwrite theme in your applications!!
diff --git a/src/__stories__/Docs/index.tsx b/src/__stories__/Docs/index.tsx index db022832..166dd2bc 100644 --- a/src/__stories__/Docs/index.tsx +++ b/src/__stories__/Docs/index.tsx @@ -1,4 +1,5 @@ import { storiesOf } from '@storybook/react'; + import Classes from './Classes'; import Namespaces from './Namespaces'; import Theme from './Theme'; diff --git a/src/__stories__/FormInput/index.tsx b/src/__stories__/FormInput/index.tsx index 37ba2f41..aac303e5 100644 --- a/src/__stories__/FormInput/index.tsx +++ b/src/__stories__/FormInput/index.tsx @@ -1,8 +1,7 @@ -import * as React from 'react'; -import * as yup from 'yup'; - import { withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; +import * as yup from 'yup'; import { FormInput } from '../../'; @@ -31,10 +30,7 @@ const FormInputContainer: React.FC<{ schema: yup.StringSchema }> = ({ schema }) ); }; -const exampleSyncSchema = yup - .string() - .min(3, 'waaay too short') - .max(5, 'waaay too long'); +const exampleSyncSchema = yup.string().min(3, 'waaay too short').max(5, 'waaay too long'); const exampleAsyncSchema = yup.string().test('oddchars', 'The number of characters must be odd', value => { return new Promise(resolve => { diff --git a/src/__stories__/ScrollContainer/index.tsx b/src/__stories__/ScrollContainer/index.tsx index 3f372ff7..3bbf6f85 100644 --- a/src/__stories__/ScrollContainer/index.tsx +++ b/src/__stories__/ScrollContainer/index.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; - import { boolean, withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; import { IScrollContainer, ScrollContainer } from '../../ScrollContainer'; diff --git a/src/__stories__/SecretInput/index.tsx b/src/__stories__/SecretInput/index.tsx index 75183445..79be0331 100644 --- a/src/__stories__/SecretInput/index.tsx +++ b/src/__stories__/SecretInput/index.tsx @@ -1,7 +1,6 @@ -import * as React from 'react'; - import { withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; import { FormGroup, SecretInput } from '../../'; diff --git a/src/__stories__/TableOfContents/index.tsx b/src/__stories__/TableOfContents/index.tsx index bea744b6..9204b3ba 100644 --- a/src/__stories__/TableOfContents/index.tsx +++ b/src/__stories__/TableOfContents/index.tsx @@ -1,8 +1,8 @@ +import { Button } from '@blueprintjs/core'; +import { withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; import * as React from 'react'; -import { Button } from '@blueprintjs/core'; -import { withKnobs } from '@storybook/addon-knobs'; import { StudioContents } from '../../__fixtures__/table-of-contents/studio'; import { TableOfContents } from '../../TableOfContents'; diff --git a/src/__stories__/Toaster/index.tsx b/src/__stories__/Toaster/index.tsx index 2903e1da..0ecb4d0e 100644 --- a/src/__stories__/Toaster/index.tsx +++ b/src/__stories__/Toaster/index.tsx @@ -1,8 +1,7 @@ -import * as React from 'react'; - import { action as StorybookAction } from '@storybook/addon-actions'; import { boolean, button, select, text, withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import * as React from 'react'; import { IconName, Intent, Position, Toaster } from '../../'; diff --git a/src/__stories__/index.ts b/src/__stories__/index.ts index 4a3cc572..af0a381a 100644 --- a/src/__stories__/index.ts +++ b/src/__stories__/index.ts @@ -1,15 +1,12 @@ import './Docs'; - import './Checkbox'; import './Code'; import './Dropdown'; import './FormInput'; - import './AutoSizer'; import './ScrollContainer'; import './ScrollList'; import './SecretInput'; import './SimpleTabs'; import './Toaster'; - import './TableOfContents'; diff --git a/src/_hooks/useIsMobile.ts b/src/_hooks/useIsMobile.ts index d9b81e67..5673caf8 100644 --- a/src/_hooks/useIsMobile.ts +++ b/src/_hooks/useIsMobile.ts @@ -5,7 +5,7 @@ export const useIsMobile = (enableDrawer: boolean | number) => { const updateLayout = React.useCallback(() => { setIsMobile(checkMobile(enableDrawer)); - }, []); + }, [enableDrawer]); React.useEffect(() => { window.addEventListener('resize', updateLayout); @@ -18,11 +18,9 @@ export const useIsMobile = (enableDrawer: boolean | number) => { }; export const checkMobile = (enableDrawer: boolean | number) => { - if (enableDrawer === true) { - enableDrawer = 768; - } else if (enableDrawer === false) { + if (enableDrawer === false) { return false; } - return typeof window !== 'undefined' && window.innerWidth < enableDrawer; + return typeof window !== 'undefined' && window.innerWidth < 768; }; diff --git a/src/styles/tailwind/tailwind.config.js b/src/styles/tailwind/tailwind.config.js index 4a1bce19..3161b14c 100644 --- a/src/styles/tailwind/tailwind.config.js +++ b/src/styles/tailwind/tailwind.config.js @@ -386,11 +386,11 @@ module.exports = { }, corePlugins: {}, plugins: [ - function({ addUtilities, addComponents, addVariant, e, prefix, config }) { - addVariant('dark', ({ modifySelectors, separator, container }) => { + function ({ addVariant, e }) { + addVariant('dark', ({ separator, container }) => { container.walkRules(rule => { rule.selector = `.${process.env.BLUEPRINT_NAMESPACE || 'bp3'}-dark .${e( - `dark${separator}${rule.selector.slice(1)}` + `dark${separator}${rule.selector.slice(1)}`, )}`; }); }); @@ -402,7 +402,7 @@ module.exports = { addVariant('dark-active', ({ modifySelectors, separator }) => { modifySelectors(({ className }) => { return `.${process.env.BLUEPRINT_NAMESPACE || 'bp3'}-dark .${e( - `dark-active${separator}${className}` + `dark-active${separator}${className}`, )}:active`; }); }); diff --git a/tsconfig.json b/tsconfig.json index 1a18b95a..c8856a21 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@stoplight/scripts/tsconfig.json", + "extends": "@stoplight/scripts", // target all ts files "include": ["src"] } diff --git a/tslint.json b/tslint.json deleted file mode 100644 index a08dc803..00000000 --- a/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": [ - "tslint-config-stoplight", - "tslint-react-hooks" - ], - "rules": { - "no-shadowed-variable": false - } -} diff --git a/yarn.lock b/yarn.lock index c1b53bfe..c06b572d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -827,6 +827,14 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" +"@babel/runtime-corejs3@^7.8.3": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz#26fe4aa77e9f1ecef9b776559bbb8e84d34284b7" + integrity sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.7": version "7.9.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" @@ -1849,6 +1857,13 @@ dependencies: type-detect "4.0.8" +"@stoplight/eslint-config@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@stoplight/eslint-config/-/eslint-config-1.1.0.tgz#9aa129235c716eecd3433611441b2b816791e588" + integrity sha512-pXUmmLhRL6292zLB1+4NLG+HnaH0rMaH8xlsPJSr/31DFmO1jSi3igjz7kEp3/ghyPgye0TSqRztUPBgkHSlLA== + dependencies: + eslint-config-prettier "^6.7.0" + "@stoplight/json@^3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@stoplight/json/-/json-3.6.0.tgz#51ab4c677ec5aadcffd5c6ed67b6dbf51a5f93ba" @@ -2514,6 +2529,11 @@ "@types/cheerio" "*" "@types/react" "*" +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + "@types/estree@*": version "0.0.42" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" @@ -2756,6 +2776,49 @@ resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.26.35.tgz#3264139671b5221b511593fa738b3c1d4b3e9189" integrity sha512-TOMYKlK0ZJnpd0gZPzBuQxLT8PC72nhFwW+HSMIS0DcJFNvW1j0wQibU11fLRYGJ5yoqYmA0V1gNCsSLjbPY6Q== +"@typescript-eslint/eslint-plugin@^2.27.0": + version "2.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.27.0.tgz#e479cdc4c9cf46f96b4c287755733311b0d0ba4b" + integrity sha512-/my+vVHRN7zYgcp0n4z5A6HAK7bvKGBiswaM5zIlOQczsxj/aiD7RcgD+dvVFuwFaGh5+kM7XA6Q6PN0bvb1tw== + dependencies: + "@typescript-eslint/experimental-utils" "2.27.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.27.0", "@typescript-eslint/experimental-utils@^2.5.0": + version "2.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.27.0.tgz#801a952c10b58e486c9a0b36cf21e2aab1e9e01a" + integrity sha512-vOsYzjwJlY6E0NJRXPTeCGqjv5OHgRU1kzxHKWJVPjDYGbPgLudBXjIlc+OD1hDBZ4l1DLbOc5VjofKahsu9Jw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.27.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.27.0": + version "2.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.27.0.tgz#d91664335b2c46584294e42eb4ff35838c427287" + integrity sha512-HFUXZY+EdwrJXZo31DW4IS1ujQW3krzlRjBrFRrJcMDh0zCu107/nRfhk/uBasO8m0NVDbBF5WZKcIUMRO7vPg== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.27.0" + "@typescript-eslint/typescript-estree" "2.27.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.27.0": + version "2.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.27.0.tgz#a288e54605412da8b81f1660b56c8b2e42966ce8" + integrity sha512-t2miCCJIb/FU8yArjAvxllxbTiyNqaXJag7UOpB5DVoM3+xnjeOngtqlJkLRnMtzaRcJhe3CIR9RmL40omubhg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^6.3.0" + tsutils "^3.17.1" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -2945,6 +3008,11 @@ acorn-globals@^4.1.0, acorn-globals@^4.3.2: acorn "^6.0.1" acorn-walk "^6.0.1" +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + acorn-node@^1.6.1: version "1.8.2" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" @@ -2974,10 +3042,10 @@ acorn@^6.0.1, acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== -acorn@^7.0.0, acorn@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== +acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== address@1.1.2, address@^1.0.1: version "1.1.2" @@ -3080,7 +3148,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== @@ -3294,7 +3362,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.0.3: +array-includes@^3.0.3, array-includes@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== @@ -4159,11 +4227,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -4391,7 +4454,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4854,7 +4917,7 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0, commander@~2.20.3: +commander@^2.19.0, commander@^2.20.0, commander@^2.9.0, commander@~2.20.3: 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== @@ -4973,6 +5036,11 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -5123,10 +5191,10 @@ core-js-compat@^3.6.2: browserslist "^4.8.3" semver "7.0.0" -core-js-pure@^3.0.1: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" - integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== +core-js-pure@^3.0.0, core-js-pure@^3.0.1: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== core-js@^1.0.0: version "1.2.7" @@ -5510,7 +5578,7 @@ deasync@^0.1.7: bindings "^1.5.0" node-addon-api "^1.7.1" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -5524,7 +5592,7 @@ debug@3.1.0, debug@=3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -5762,11 +5830,6 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -5796,6 +5859,21 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -6331,13 +6409,88 @@ escodegen@^1.11.1, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-plugin-prettier@^2.2.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" - integrity sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA== +eslint-config-prettier@^6.7.0: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a" + integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ== + dependencies: + get-stdin "^6.0.0" + +eslint-import-resolver-node@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== dependencies: - fast-diff "^1.1.1" - jest-docblock "^21.0.0" + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.20.2: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.1" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.12.0" + +eslint-plugin-jest@^23.8.2: + version "23.8.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4" + integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg== + dependencies: + "@typescript-eslint/experimental-utils" "^2.5.0" + +eslint-plugin-prettier@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba" + integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz#9e80c71846eb68dd29c3b21d832728aa66e5bd35" + integrity sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw== + +eslint-plugin-react@^7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== + dependencies: + array-includes "^3.1.1" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.2.3" + object.entries "^1.1.1" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" + +eslint-plugin-simple-import-sort@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.2.tgz#43b5c4ab5affa2dd8481ef40216c71723becd2e2" + integrity sha512-YPEGo7DbMANQ01d2OXlREcaHRszsW8LoUQ9mIjI7gXSdwpnWKfogtzL6FiBfDf1teCBx+AdcjcfDXSKpmhTWeA== eslint-scope@^4.0.3: version "4.0.3" @@ -6347,16 +6500,102 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + esm@^3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" + integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + dependencies: + estraverse "^5.0.0" + esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" @@ -6369,6 +6608,11 @@ estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -6629,7 +6873,7 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== -fast-diff@^1.1.1: +fast-diff@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== @@ -6746,6 +6990,13 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + file-loader@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" @@ -6886,11 +7137,25 @@ findup-sync@^3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + flatstr@^1.0.4: version "1.0.12" resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -7103,6 +7368,11 @@ function.prototype.name@^1.1.0, function.prototype.name@^1.1.1, function.prototy es-abstract "^1.17.0-next.1" functions-have-names "^1.2.0" +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + functions-have-names@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" @@ -7186,6 +7456,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -7263,10 +7538,10 @@ 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.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== +glob-parent@^5.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" @@ -7287,7 +7562,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -7355,6 +7630,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globalthis@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" @@ -7854,6 +8136,11 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^4.0.6: + version "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.1, ignore@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" @@ -8742,11 +9029,6 @@ jest-diff@^25.2.1, jest-diff@^25.3.0: jest-get-type "^25.2.6" pretty-format "^25.3.0" -jest-docblock@^21.0.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw== - jest-docblock@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" @@ -9258,6 +9540,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -9316,6 +9603,14 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== + dependencies: + array-includes "^3.0.3" + object.assign "^4.1.0" + kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -9423,7 +9718,7 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@~0.3.0: +levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= @@ -9925,7 +10220,7 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@4.17.15, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.12: +lodash@4.17.15, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.12: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -11375,7 +11670,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -11912,6 +12207,13 @@ pkg-conf@^2.1.0: find-up "^2.0.0" load-json-file "^4.0.0" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -12154,10 +12456,17 @@ prepend-http@^1.0.0, prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef" + integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== pretty-error@^2.1.1: version "2.1.1" @@ -12219,7 +12528,7 @@ progress-stream@^2.0.0: speedometer "~1.0.0" through2 "~2.0.3" -progress@^2.0.3: +progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -13207,6 +13516,16 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" @@ -13421,7 +13740,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2: +resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== @@ -13489,6 +13808,13 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2. dependencies: glob "^7.1.3" +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rimraf@3.0.2, rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -13778,12 +14104,12 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@6.3.0, semver@6.x, semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@6.3.0, semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -14042,6 +14368,15 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -14472,7 +14807,7 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -"string.prototype.matchall@^4.0.0 || ^3.0.1": +"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== @@ -14642,6 +14977,11 @@ strip-json-comments@3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -14752,6 +15092,16 @@ synchronous-promise@^2.0.10: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.10.tgz#e64c6fd3afd25f423963353043f4a68ebd397fd8" integrity sha512-6PC+JRGmNjiG3kJ56ZMNWDPL8hjyghF5cMXIFOKg+NiwwEZZIvxTWd0pinWKyD227odg9ygF8xVhhz7gb8Uq7A== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + tailwindcss@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.2.0.tgz#5df317cebac4f3131f275d258a39da1ba3a0f291" @@ -14912,7 +15262,7 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -15162,74 +15512,12 @@ tslib@1.10.0, tslib@~1.10.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tslib@^1.10.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslint-config-prettier@^1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== - -tslint-config-stoplight@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/tslint-config-stoplight/-/tslint-config-stoplight-1.4.0.tgz#07eea5e02395fd3d58c67153334501efabcbe11c" - integrity sha512-C1tfJAO5ybMEj62u2HEpsGPvSKWnNxcOtAuiLlwTb7vf++jnyGYeqEW8oE69jefjwo/s8VxBy9Sw7IAAh5ypsQ== - dependencies: - prettier "^1.19.1" - tslint "^5.20.1" - tslint-config-prettier "^1.18.0" - tslint-plugin-prettier "^2.0.1" - -tslint-plugin-prettier@^2.0.1, tslint-plugin-prettier@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslint-plugin-prettier/-/tslint-plugin-prettier-2.1.0.tgz#e2522d273cb9672d93d0e68f2514fe3c19698c3a" - integrity sha512-nMCpU+QSpXtydcWXeZF+3ljIbG/K8SHVZwB7K/MtuoQQFXxXN6watqTSBpVXCInuPFvmjiWkhxeMoUW4N0zgSg== - dependencies: - eslint-plugin-prettier "^2.2.0" - lines-and-columns "^1.1.6" - tslib "^1.7.1" - -tslint-react-hooks@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tslint-react-hooks/-/tslint-react-hooks-2.2.1.tgz#c52c7df65ee1517b2d6c92bc716e9ef72ccdf208" - integrity sha512-bqIg2uZe+quJMfSOGc4OOZ4awo6TP1ejGDGS6IKg2WIrS0XnWfhUJ99i3B8rUpnZhuD4vRSvyYIbXPUmEqQxxQ== - -tslint-react@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/tslint-react/-/tslint-react-4.2.0.tgz#41b16e0438365f8d3ed4120501f02cabff9fd1e4" - integrity sha512-lO22+FKr9ZZGueGiuALzvZE/8ANoDoCHGCknX1Ge3ALrfcLQHQ1VGdyb1scZXQFdEQEfwBTIU40r5BUlJpn0JA== - dependencies: - tsutils "^3.9.1" - -tslint@^5.20.1: - version "5.20.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" - integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tsutils@^3.9.1: +tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== @@ -15625,6 +15913,11 @@ uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + v8-to-istanbul@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz#387d173be5383dbec209d21af033dcb892e3ac82" @@ -15998,6 +16291,13 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + ws@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" @@ -16025,6 +16325,13 @@ xmlchars@^2.1.1: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"