diff --git a/CHANGELOG.md b/CHANGELOG.md index 75aab6db4a4..e4076eda326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ **Breaking changes** - Removed `size` prop from `EuiResizableButton` ([#3978](https://github.com/elastic/eui/pull/3978)) +- Upgraded to TypeScript v4.0 ([#4296](https://github.com/elastic/eui/pull/4296)) ## [`30.6.0`](https://github.com/elastic/eui/tree/v30.6.0) diff --git a/package.json b/package.json index 857684a4f6c..3cea9927014 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@babel/plugin-transform-runtime": "^7.11.0", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", - "@babel/preset-typescript": "^7.10.4", + "@babel/preset-typescript": "^7.12.1", "@elastic/charts": "^20.0.0", "@elastic/datemath": "^5.0.3", "@elastic/eslint-config-kibana": "^0.15.0", @@ -111,8 +111,8 @@ "@types/tabbable": "^3.1.0", "@types/url-parse": "^1.4.3", "@types/uuid": "^8.3.0", - "@typescript-eslint/eslint-plugin": "^3.10.1", - "@typescript-eslint/parser": "^3.10.1", + "@typescript-eslint/eslint-plugin": "^4.8.1", + "@typescript-eslint/parser": "^4.8.1", "argparse": "^2.0.1", "autoprefixer": "^9.8.6", "axe-core": "^4.0.1", @@ -182,7 +182,7 @@ "puppeteer": "^5.3.0", "raw-loader": "^4.0.1", "react": "^16.12.0", - "react-docgen-typescript": "^1.20.3", + "react-docgen-typescript": "^1.20.5", "react-dom": "^16.12.0", "react-redux": "^7.2.1", "react-router": "^5.2.0", @@ -203,7 +203,7 @@ "start-server-and-test": "^1.11.3", "style-loader": "^1.2.1", "terser-webpack-plugin": "^4.1.0", - "typescript": "3.7.2", + "typescript": "4.0.5", "uglifyjs-webpack-plugin": "^2.2.0", "url-loader": "^4.1.0", "webpack": "^4.44.1", @@ -220,6 +220,6 @@ "prop-types": "^15.5.0", "react": "^16.12", "react-dom": "^16.12", - "typescript": "^3.7.2" + "typescript": "^4.0.5" } } diff --git a/src/components/basic_table/action_types.ts b/src/components/basic_table/action_types.ts index d42fb5829d9..28f63a8c99b 100644 --- a/src/components/basic_table/action_types.ts +++ b/src/components/basic_table/action_types.ts @@ -98,3 +98,9 @@ export interface CustomItemAction { } export type Action = DefaultItemAction | CustomItemAction; + +export const isCustomItemAction = ( + action: DefaultItemAction | CustomItemAction +): action is CustomItemAction => { + return action.hasOwnProperty('render'); +}; diff --git a/src/components/basic_table/expanded_item_actions.tsx b/src/components/basic_table/expanded_item_actions.tsx index 2c174ee7fc2..5184c84f5ae 100644 --- a/src/components/basic_table/expanded_item_actions.tsx +++ b/src/components/basic_table/expanded_item_actions.tsx @@ -25,6 +25,7 @@ import { Action, CustomItemAction as CustomAction, DefaultItemAction as DefaultAction, + isCustomItemAction, } from './action_types'; import { ItemIdResolved } from './table_types'; @@ -61,7 +62,7 @@ export const ExpandedItemActions = ({ expandedItemActions__completelyHide: moreThanThree && index < 2, }); - if ((action as CustomAction).render) { + if (isCustomItemAction(action)) { // custom action has a render function tools.push( = ({ isColorInvalid(color, colorPickerShowAlpha) ); const [stopIsInvalid, setStopIsInvalid] = useState(isStopInvalid(stop)); - const [numberInputRef, setNumberInputRef] = useState(); + const [numberInputRef, setNumberInputRef] = useState( + null + ); const popoverRef = useRef(null); useEffect(() => { @@ -262,7 +264,7 @@ export const EuiColorStopThumb: FunctionComponent = ({ isOpen={isPopoverOpen} closePopover={closePopover} ownFocus={isPopoverOpen} - initialFocus={numberInputRef} + initialFocus={numberInputRef || undefined} panelClassName={ numberInputRef ? undefined : 'euiColorStopPopover-isLoadingPanel' } diff --git a/src/components/control_bar/control_bar.tsx b/src/components/control_bar/control_bar.tsx index 4db7960696a..d1602487bc0 100644 --- a/src/components/control_bar/control_bar.tsx +++ b/src/components/control_bar/control_bar.tsx @@ -347,11 +347,11 @@ export class EuiControlBar extends Component< ) : ( diff --git a/src/components/form/checkbox/checkbox_group.test.tsx b/src/components/form/checkbox/checkbox_group.test.tsx index fbd1c1fc2b0..c0939767be4 100644 --- a/src/components/form/checkbox/checkbox_group.test.tsx +++ b/src/components/form/checkbox/checkbox_group.test.tsx @@ -34,11 +34,7 @@ const checkboxGroupRequiredProps = { describe('EuiCheckboxGroup (mocked checkbox)', () => { test('is rendered', () => { const component = render( - {}} - {...checkboxGroupRequiredProps} - {...requiredProps} - /> + ); expect(component).toMatchSnapshot(); diff --git a/src/components/markdown_editor/markdown_editor.tsx b/src/components/markdown_editor/markdown_editor.tsx index eb1dad4bb89..6b280bafb7a 100644 --- a/src/components/markdown_editor/markdown_editor.tsx +++ b/src/components/markdown_editor/markdown_editor.tsx @@ -229,7 +229,7 @@ export const EuiMarkdownEditor = forwardRef< [replaceNode] ); - const [selectedNode, setSelectedNode] = useState(); + const [selectedNode, setSelectedNode] = useState(); const textareaRef = useRef(null); diff --git a/src/components/markdown_editor/plugins/markdown_default_plugins.tsx b/src/components/markdown_editor/plugins/markdown_default_plugins.tsx index 68e7804b3fd..cda761e174f 100644 --- a/src/components/markdown_editor/plugins/markdown_default_plugins.tsx +++ b/src/components/markdown_editor/plugins/markdown_default_plugins.tsx @@ -17,7 +17,23 @@ * under the License. */ -import { PluggableList, Plugin } from 'unified'; +// Importing seemingly unused types from `unified` because the definitions +// are exported for two versions of TypeScript (3.4, 4.0) and implicit +// imports during eui.d.ts generation default to the incorrect version (3.4). +// Explicit imports here resolve the version mismatch. +import { + Plugin, + PluggableList, + // @ts-ignore See above comment + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Attacher, + // @ts-ignore See above comment + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Pluggable, + // @ts-ignore See above comment + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Settings, +} from 'unified'; import remark2rehype from 'remark-rehype'; import rehype2react from 'rehype-react'; import * as MarkdownTooltip from './markdown_tooltip'; diff --git a/src/components/observer/resize_observer/resize_observer.test.tsx b/src/components/observer/resize_observer/resize_observer.test.tsx index 71886ed1a6b..067518e05f9 100644 --- a/src/components/observer/resize_observer/resize_observer.test.tsx +++ b/src/components/observer/resize_observer/resize_observer.test.tsx @@ -89,7 +89,7 @@ describe('testResizeObservers', () => { expect.assertions(2); const Wrapper: FunctionComponent<{}> = jest.fn(({ children }) => { - const [ref, setRef] = useState(); + const [ref, setRef] = useState(null); useResizeObserver(ref); return
{children}
; }); diff --git a/src/components/popover/input_popover.tsx b/src/components/popover/input_popover.tsx index 5a8a83c0285..55c83c70e5d 100644 --- a/src/components/popover/input_popover.tsx +++ b/src/components/popover/input_popover.tsx @@ -55,9 +55,9 @@ export const EuiInputPopover: FunctionComponent = ({ onPanelResize, ...props }) => { - const [inputEl, setInputEl] = useState(); - const [inputElWidth, setInputElWidth] = useState(); - const [panelEl, setPanelEl] = useState(); + const [inputEl, setInputEl] = useState(null); + const [inputElWidth, setInputElWidth] = useState(); + const [panelEl, setPanelEl] = useState(null); const inputRef = (node: HTMLElement | null) => setInputEl(node); const panelRef = (node: HTMLElement | null) => setPanelEl(node); @@ -89,7 +89,7 @@ export const EuiInputPopover: FunctionComponent = ({ }, [setPanelWidth]); const onKeyDown = (event: React.KeyboardEvent) => { - if (event.key === cascadingMenuKeys.TAB) { + if (panelEl && event.key === cascadingMenuKeys.TAB) { const tabbableItems = tabbable(panelEl).filter((el: HTMLElement) => { return ( Array.from(el.attributes) diff --git a/src/components/selectable/selectable_list/selectable_list.tsx b/src/components/selectable/selectable_list/selectable_list.tsx index c655294665c..0acd005daed 100644 --- a/src/components/selectable/selectable_list/selectable_list.tsx +++ b/src/components/selectable/selectable_list/selectable_list.tsx @@ -238,7 +238,6 @@ export class EuiSelectableList extends Component> { onClick={() => this.onAddOrRemoveOption(option)} ref={ref ? ref.bind(null, index) : undefined} isFocused={this.props.activeOptionIndex === index} - showIcons={this.props.showIcons} title={searchableLabel || label} checked={checked} disabled={disabled} @@ -249,7 +248,8 @@ export class EuiSelectableList extends Component> { onFocusBadge={this.props.onFocusBadge} allowExclusions={this.props.allowExclusions} // @ts-ignore complex - {...(optionRest as EuiSelectableListItemProps)}> + {...(optionRest as EuiSelectableListItemProps)} + showIcons={this.props.showIcons}> {this.props.renderOption ? ( this.props.renderOption(option, this.props.searchValue) ) : ( diff --git a/src/components/selectable/selectable_templates/__snapshots__/selectable_template_sitewide_option.test.tsx.snap b/src/components/selectable/selectable_templates/__snapshots__/selectable_template_sitewide_option.test.tsx.snap index d125b0ccacf..fe667598164 100644 --- a/src/components/selectable/selectable_templates/__snapshots__/selectable_template_sitewide_option.test.tsx.snap +++ b/src/components/selectable/selectable_templates/__snapshots__/selectable_template_sitewide_option.test.tsx.snap @@ -13,7 +13,7 @@ Array [ "name": "Default Space", }, "className": "euiSelectableTemplateSitewide__listItem testClass1 testClass2", - "data-test-subj": "test subject string", + "data-test-subj": "test-this", "key": "Basic data application", "label": "Basic data application", "meta": Array [ diff --git a/src/components/selectable/selectable_templates/selectable_template_sitewide.test.tsx b/src/components/selectable/selectable_templates/selectable_template_sitewide.test.tsx index 968da981ba3..a421bcd6dd5 100644 --- a/src/components/selectable/selectable_templates/selectable_template_sitewide.test.tsx +++ b/src/components/selectable/selectable_templates/selectable_template_sitewide.test.tsx @@ -27,7 +27,6 @@ import { EuiSelectableTemplateSitewideOption } from './selectable_template_sitew const options: EuiSelectableTemplateSitewideOption[] = [ { label: 'Basic data application', - 'data-test-subj': 'test-this', avatar: { name: 'Default Space', }, @@ -39,6 +38,7 @@ const options: EuiSelectableTemplateSitewideOption[] = [ ], url: 'welcome-dashboards', ...requiredProps, + 'data-test-subj': 'test-this', }, { label: 'Platform with deployment highlighted', diff --git a/src/components/selectable/selectable_templates/selectable_template_sitewide_option.test.tsx b/src/components/selectable/selectable_templates/selectable_template_sitewide_option.test.tsx index e1da0cf4c64..7a028b5a5fa 100644 --- a/src/components/selectable/selectable_templates/selectable_template_sitewide_option.test.tsx +++ b/src/components/selectable/selectable_templates/selectable_template_sitewide_option.test.tsx @@ -28,7 +28,6 @@ import { const options: EuiSelectableTemplateSitewideOption[] = [ { label: 'Basic data application', - 'data-test-subj': 'test-this', avatar: { name: 'Default Space', }, @@ -40,6 +39,7 @@ const options: EuiSelectableTemplateSitewideOption[] = [ ], url: 'welcome-dashboards', ...requiredProps, + 'data-test-subj': 'test-this', }, { label: 'Platform with deployment highlighted', diff --git a/src/components/selectable/selectable_templates/selectable_template_sitewide_option.tsx b/src/components/selectable/selectable_templates/selectable_template_sitewide_option.tsx index 1b185f5c99e..6cd1de1ffbb 100644 --- a/src/components/selectable/selectable_templates/selectable_template_sitewide_option.tsx +++ b/src/components/selectable/selectable_templates/selectable_template_sitewide_option.tsx @@ -81,7 +81,6 @@ export const euiSelectableTemplateSitewideFormatOptions = ( return { key: item.label, - label: item.label, title, ...item, className: classNames( diff --git a/src/components/token/token.tsx b/src/components/token/token.tsx index f145b78fa6a..cbf7fe25482 100644 --- a/src/components/token/token.tsx +++ b/src/components/token/token.tsx @@ -158,7 +158,7 @@ export const EuiToken: FunctionComponent = ({ // If the iconType passed is one of the prefab token types, // grab its properties - if (iconType in TOKEN_MAP) { + if (typeof iconType === 'string' && iconType in TOKEN_MAP) { const tokenDisplay = TOKEN_MAP[iconType as EuiTokenMapType]; finalDisplay = defaults(currentDisplay, tokenDisplay); } else { diff --git a/src/services/copy_to_clipboard.ts b/src/services/copy_to_clipboard.ts index 5b3f90058fc..027cac3c901 100644 --- a/src/services/copy_to_clipboard.ts +++ b/src/services/copy_to_clipboard.ts @@ -32,6 +32,7 @@ function createHiddenTextElement(text: string): HTMLSpanElement { textElement.style.webkitUserSelect = 'text'; // @ts-ignore this one doesn't appear in the TS definitions for some reason textElement.style.MozUserSelect = 'text'; + // @ts-ignore this one doesn't appear in the TS definitions for some reason textElement.style.msUserSelect = 'text'; textElement.style.userSelect = 'text'; return textElement; diff --git a/src/services/utils.ts b/src/services/utils.ts index 3df09cb4d53..653fd67c030 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -23,8 +23,7 @@ import _memoize from 'lodash/memoize'; // wrap the lodash functions to avoid having lodash's TS type definition from being // exported, which can conflict with the lodash namespace if other versions are used -/* eslint-disable import/export */ -export function times(count: number): number[]; +export function times(count: number): number[]; export function times(count: number, iteratee: (index: number) => T): T[]; export function times(count: number, iteratee?: (index: number) => T) { if (iteratee === undefined) { @@ -32,9 +31,7 @@ export function times(count: number, iteratee?: (index: number) => T) { } return _times(count, iteratee); } -/* eslint-enable import/export */ -// eslint-disable-next-line space-before-function-paren export function memoize any>( func: T, resolver?: (...args: any[]) => any diff --git a/yarn.lock b/yarn.lock index da1379502d5..570af4717df 100755 --- a/yarn.lock +++ b/yarn.lock @@ -63,12 +63,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.4", "@babel/generator@^7.11.5", "@babel/generator@^7.4.0", "@babel/generator@^7.7.0": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.11.4", "@babel/generator@^7.12.10", "@babel/generator@^7.4.0", "@babel/generator@^7.7.0": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz#2b188fc329fb8e4f762181703beffc0fe6df3460" + integrity sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.12.10" jsesc "^2.5.1" source-map "^0.5.0" @@ -115,16 +115,15 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-member-expression-to-functions" "^7.12.1" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" "@babel/helper-create-regexp-features-plugin@^7.10.4": @@ -175,12 +174,12 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.7" "@babel/helper-module-imports@^7.10.4": version "7.10.4" @@ -231,15 +230,15 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-replace-supers@^7.10.4", "@babel/helper-replace-supers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" "@babel/helper-simple-access@^7.10.4": version "7.10.4" @@ -296,10 +295,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.4", "@babel/parser@^7.11.5", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.4", "@babel/parser@^7.12.10", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81" + integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA== "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" @@ -499,10 +498,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" - integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== +"@babel/plugin-syntax-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" + integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -802,14 +801,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typescript@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.12.1" "@babel/plugin-transform-unicode-escapes@^7.10.4": version "7.10.4" @@ -924,13 +923,13 @@ "@babel/plugin-transform-react-jsx-source" "^7.10.4" "@babel/plugin-transform-react-pure-annotations" "^7.10.4" -"@babel/preset-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" - integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== +"@babel/preset-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz#86480b483bb97f75036e8864fe404cc782cc311b" + integrity sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.1" "@babel/runtime-corejs2@7.6.0": version "7.6.0" @@ -964,25 +963,25 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" + integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" + "@babel/generator" "^7.12.10" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/parser" "^7.12.10" + "@babel/types" "^7.12.10" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.9.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.9.5": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260" + integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -1599,11 +1598,6 @@ "@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/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -1914,26 +1908,28 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f" - integrity sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ== +"@typescript-eslint/eslint-plugin@^4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.1.tgz#b362abe0ee478a6c6d06c14552a6497f0b480769" + integrity sha512-d7LeQ7dbUrIv5YVFNzGgaW3IQKMmnmKFneRWagRlGYOSfLJVaRbj/FrBNOBC1a3tVO+TgNq1GbHvRtg1kwL0FQ== dependencies: - "@typescript-eslint/experimental-utils" "3.10.1" + "@typescript-eslint/experimental-utils" "4.8.1" + "@typescript-eslint/scope-manager" "4.8.1" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== +"@typescript-eslint/experimental-utils@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.1.tgz#27275c20fa4336df99ebcf6195f7d7aa7aa9f22d" + integrity sha512-WigyLn144R3+lGATXW4nNcDJ9JlTkG8YdBWHkDlN0lC3gUGtDi7Pe3h5GPvFKMcRz8KbZpm9FJV9NTW8CpRHpg== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" + "@typescript-eslint/scope-manager" "4.8.1" + "@typescript-eslint/types" "4.8.1" + "@typescript-eslint/typescript-estree" "4.8.1" eslint-scope "^5.0.0" eslint-utils "^2.0.0" @@ -1949,16 +1945,15 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== +"@typescript-eslint/parser@^4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.8.1.tgz#4fe2fbdbb67485bafc4320b3ae91e34efe1219d1" + integrity sha512-QND8XSVetATHK9y2Ltc/XBl5Ro7Y62YuZKnPEwnNPB8E379fDsvzJ1dMJ46fg/VOmk0hXhatc+GXs5MaXuL5Uw== dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/scope-manager" "4.8.1" + "@typescript-eslint/types" "4.8.1" + "@typescript-eslint/typescript-estree" "4.8.1" + debug "^4.1.1" "@typescript-eslint/scope-manager@4.4.0": version "4.4.0" @@ -1968,16 +1963,24 @@ "@typescript-eslint/types" "4.4.0" "@typescript-eslint/visitor-keys" "4.4.0" -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== +"@typescript-eslint/scope-manager@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.8.1.tgz#e343c475f8f1d15801b546cb17d7f309b768fdce" + integrity sha512-r0iUOc41KFFbZdPAdCS4K1mXivnSZqXS5D9oW+iykQsRlTbQRfuFRSW20xKDdYiaCoH+SkSLeIF484g3kWzwOQ== + dependencies: + "@typescript-eslint/types" "4.8.1" + "@typescript-eslint/visitor-keys" "4.8.1" "@typescript-eslint/types@4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.4.0.tgz#63440ef87a54da7399a13bdd4b82060776e9e621" integrity sha512-nU0VUpzanFw3jjX+50OTQy6MehVvf8pkqFcURPAE06xFNFenMj1GPEI6IESvp7UOHAnq+n/brMirZdR+7rCrlA== +"@typescript-eslint/types@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.1.tgz#23829c73c5fc6f4fcd5346a7780b274f72fee222" + integrity sha512-ave2a18x2Y25q5K05K/U3JQIe2Av4+TNi/2YuzyaXLAsDx6UZkz1boZ7nR/N6Wwae2PpudTZmHFXqu7faXfHmA== + "@typescript-eslint/typescript-estree@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.11.0.tgz#b7b5782aab22e4b3b6d84633652c9f41e62d37d5" @@ -1986,20 +1989,6 @@ lodash.unescape "4.0.1" semver "5.5.0" -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - "@typescript-eslint/typescript-estree@4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.4.0.tgz#16a2df7c16710ddd5406b32b86b9c1124b1ca526" @@ -2014,12 +2003,19 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== +"@typescript-eslint/typescript-estree@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.1.tgz#7307e3f2c9e95df7daa8dc0a34b8c43b7ec0dd32" + integrity sha512-bJ6Fn/6tW2g7WIkCWh3QRlaSU7CdUUK52shx36/J7T5oTQzANvi6raoTsbwGM11+7eBbeem8hCCKbyvAc0X3sQ== dependencies: - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/types" "4.8.1" + "@typescript-eslint/visitor-keys" "4.8.1" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" "@typescript-eslint/visitor-keys@4.4.0": version "4.4.0" @@ -2029,6 +2025,14 @@ "@typescript-eslint/types" "4.4.0" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.1.tgz#794f68ee292d1b2e3aa9690ebedfcb3a8c90e3c3" + integrity sha512-3nrwXFdEYALQh/zW8rFwP4QltqsanCDz4CwWMPiIZmwlk9GlvBeueEIbq05SEq4ganqM0g9nh02xXgv5XI3PeQ== + dependencies: + "@typescript-eslint/types" "4.8.1" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -13075,10 +13079,10 @@ react-clientside-effect@^1.2.2: dependencies: "@babel/runtime" "^7.0.0" -react-docgen-typescript@^1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.20.3.tgz#d121bcb3ed8ab0a2c75f37fb3f90413cb4dbd429" - integrity sha512-ISdbO2O5BbD62trroxGmcQXlkFzARRL8ylK0tdnzllGuxcMu3IbnPOFOY/dOfRl8K4LVG9U8yulEVwpyGxGNYA== +react-docgen-typescript@^1.20.5: + version "1.20.5" + resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.20.5.tgz#fb8d78a707243498436c2952bd3f6f488a68d4f3" + integrity sha512-AbLGMtn76bn7SYBJSSaKJrZ0lgNRRR3qL60PucM5M4v/AXyC8221cKBXW5Pyt9TfDRfe+LDnPNlg7TibxX0ovA== react-dom@^16.12.0: version "16.12.0" @@ -15943,10 +15947,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb" - integrity sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ== +typescript@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== uglify-js@^3.6.0: version "3.10.2"