diff --git a/package.json b/package.json
index b973418a51..58e470b447 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
"redux-persist": "^6.0.0",
"redux-undo": "^1.0.0",
"reselect": "^4.0.0",
- "typescript": "^3.7.5",
+ "typescript": "4.2.2",
"webfontloader": "^1.6.28"
},
"scripts": {
@@ -49,7 +49,10 @@
"build": "react-app-rewired --max_old_space_size=4096 build",
"test": "react-app-rewired test --env=jsdom",
"analyze": "BUNDLE_VISUALIZE=1 react-app-rewired build",
- "docs": "jsdoc -c jsdoc.conf.json"
+ "source-bloat": "source-map-explorer 'build/static/js/*.js'",
+ "docs": "jsdoc -c jsdoc.conf.json",
+ "typecheck": "tsc",
+ "typecheck:watch": "tsc -w"
},
"eslintConfig": {
"extends": "react-app"
@@ -87,6 +90,7 @@
"lint-staged": "^10.0.7",
"pretty-quick": "^2.0.1",
"react-app-rewired": "^2.1.5",
+ "source-map-explorer": "^2.5.2",
"typedoc": "^0.16.9"
},
"husky": {
diff --git a/src/babel-plugins/add-component-plugin.ts b/src/babel-plugins/add-component-plugin.ts
index 258c7978d8..534802c90e 100644
--- a/src/babel-plugins/add-component-plugin.ts
+++ b/src/babel-plugins/add-component-plugin.ts
@@ -37,21 +37,22 @@ const addComponentPlugin = (
const openingElement = path.node.openingElement
const visitedComponentId = getComponentId(openingElement)
- if (visitedComponentId && visitedComponentId === parentId) {
- // Change the JSX element in the string to node template
- const node = template.ast(componentCode, {
- plugins: ['jsx'],
- }).expression
-
- const newLineText = t.jsxText('\n')
-
- // Add to the children of the parent component
- if (path.node.children.length > 0) {
- path.node.children.push(node)
- path.node.children.push(newLineText)
- } else {
- path.node.children = [newLineText, node, newLineText]
- }
+ if (visitedComponentId && visitedComponentId !== parentId) {
+ return
+ }
+ // Change the JSX element in the string to node template
+ const node = template.ast(componentCode, {
+ plugins: ['jsx'],
+ }).expression
+
+ const newLineText = t.jsxText('\n')
+
+ // Add to the children of the parent component
+ if (path.node.children.length > 0) {
+ path.node.children.push(node)
+ path.node.children.push(newLineText)
+ } else {
+ path.node.children = [newLineText, node, newLineText]
}
},
},
diff --git a/src/babel-plugins/add-custom-component-plugin.ts b/src/babel-plugins/add-custom-component-plugin.ts
index cbe972d4f1..3d82db35a1 100644
--- a/src/babel-plugins/add-custom-component-plugin.ts
+++ b/src/babel-plugins/add-custom-component-plugin.ts
@@ -23,6 +23,8 @@ const addCustomComponentPlugin = (
// If the value of the prop is a component-id, then the box component should be added.
// or else its respective value will be added.
+ //TODO remove scope and pass as argument
+ //TODO break into two function, filter, then map
const defaultPropsProvider = () => {
return defaultProps
.filter(prop => prop.name !== 'children')
@@ -67,31 +69,33 @@ const addCustomComponentPlugin = (
const openingElement = path.node.openingElement
const visitedComponentId = getComponentId(openingElement)
- if (visitedComponentId && visitedComponentId === parentId) {
- let component: string = ``
+ if (visitedComponentId && visitedComponentId !== parentId) {
+ return
+ }
- // If the component is container component, the element will be
- // If the component is not a container component, the element will be
+ let component: string = ``
- if (isContainerComponent) {
- component = `<${type} compId="${componentId}" ${defaultPropsProvider()}>${type}>`
- } else {
- component = `<${type} compId="${componentId}" ${defaultPropsProvider()}/>`
- }
+ // If the component is container component, the element will be
+ // If the component is not a container component, the element will be
- // Change the JSX element in the string to node template
- const node = template.ast(component, {
- plugins: ['jsx'],
- }).expression
- const newLineText = t.jsxText('\n')
+ if (isContainerComponent) {
+ component = `<${type} compId="${componentId}" ${defaultPropsProvider()}>${type}>`
+ } else {
+ component = `<${type} compId="${componentId}" ${defaultPropsProvider()}/>`
+ }
- // Add to the children of the parent component
- if (path.node.children.length > 0) {
- path.node.children.push(node)
- path.node.children.push(newLineText)
- } else {
- path.node.children = [newLineText, node, newLineText]
- }
+ // Change the JSX element in the string to node template
+ const node = template.ast(component, {
+ plugins: ['jsx'],
+ }).expression
+ const newLineText = t.jsxText('\n')
+
+ // Add to the children of the parent component
+ if (path.node.children.length > 0) {
+ path.node.children.push(node)
+ path.node.children.push(newLineText)
+ } else {
+ path.node.children = [newLineText, node, newLineText]
}
},
},
diff --git a/src/babel-plugins/add-prop-in-all-instances.ts b/src/babel-plugins/add-prop-in-all-instances.ts
index 4ed1ff413f..951a67e0f9 100644
--- a/src/babel-plugins/add-prop-in-all-instances.ts
+++ b/src/babel-plugins/add-prop-in-all-instances.ts
@@ -19,23 +19,22 @@ const addPropInAllInstances = (
visitor: {
JSXOpeningElement(path: any) {
const visitedComponentName = path.node.name.name
+ if (visitedComponentName !== componentName) return
- if (visitedComponentName === componentName) {
- if (boxId) {
- const boxComponent = ``
+ if (boxId) {
+ const boxComponent = ``
- const element = getJSXElement(boxComponent)
+ const element = getJSXElement(boxComponent)
- const jsxAttribute = t.jsxAttribute(
- t.jsxIdentifier(propName),
- t.jsxExpressionContainer(element),
- )
- path.node.attributes.push(jsxAttribute)
- } else {
- const jsxAttribute = toJsxAttribute(propName, propValue)
- path.node.attributes.push(jsxAttribute)
- }
- } else return
+ const jsxAttribute = t.jsxAttribute(
+ t.jsxIdentifier(propName),
+ t.jsxExpressionContainer(element),
+ )
+ path.node.attributes.push(jsxAttribute)
+ } else {
+ const jsxAttribute = toJsxAttribute(propName, propValue)
+ path.node.attributes.push(jsxAttribute)
+ }
},
},
}
diff --git a/src/components/editor/ComponentPreview.test.tsx b/src/components/editor/ComponentPreview.test.tsx
index d7fe38ae76..50c126326c 100644
--- a/src/components/editor/ComponentPreview.test.tsx
+++ b/src/components/editor/ComponentPreview.test.tsx
@@ -1,3 +1,4 @@
+//@ts-nocheck
import React from 'react'
import { render } from '@testing-library/react'
import { init } from '@rematch/core'
@@ -87,7 +88,7 @@ const componentsToTest = [
'MenuMeta',
]
-test.each(componentsToTest)('Component Preview for %s', componentName => {
+test.each(componentsToTest)('Component Preview for %s', (componentName) => {
// const spy = jest.spyOn(global.console, 'error')
// @ts-ignore
const store = init(storeConfig)
diff --git a/src/components/editor/PreviewContainer.tsx b/src/components/editor/PreviewContainer.tsx
index 635defea7f..9560b8e97e 100644
--- a/src/components/editor/PreviewContainer.tsx
+++ b/src/components/editor/PreviewContainer.tsx
@@ -2,20 +2,12 @@ import React, { FunctionComponent, ComponentClass, Suspense } from 'react'
import { useInteractive } from '../../hooks/useInteractive'
import { Box } from '@chakra-ui/core'
import findAndReplaceExposedPropValue from '../../utils/findAndReplaceExposedPropValue'
-import stringToIconConvertor from '../../utils/stringToIconConvertor'
+import reactIcon from '../../utils/stringToIconConvertor'
import { useDropComponent } from '../../hooks/useDropComponent'
-import { CopyIcon } from '@chakra-ui/icons'
-
-export const isPropRelatedToIcon = (type: string, propName: string) => {
- if (
- (type === 'Icon' && propName === 'as') ||
- propName === 'icon' ||
- propName === 'leftIcon' ||
- propName === 'rightIcon'
- )
- return true
- return false
-}
+import {
+ isInlineIconComponent,
+ isInlineIconString,
+} from '../../utils/isInlineIcon'
const PreviewContainer: React.FC<{
component: IComponent
@@ -51,21 +43,26 @@ const PreviewContainer: React.FC<{
//Converting the icon in string to reactElement
Object.keys(propsKeyValue).forEach((key: string) => {
- if (isPropRelatedToIcon(component.type, key))
- propsKeyValue[key] = (
- }>
- {stringToIconConvertor(key, propsKeyValue[key])}
-
- )
+ if (isInlineIconString(component.type, key)) {
+ propsKeyValue[key] = reactIcon(propsKeyValue[key])
+ }
+ if (isInlineIconComponent(key)) {
+ propsKeyValue[key] = React.createElement(reactIcon(propsKeyValue[key]))
+ }
})
- console.log(propsKeyValue)
-
- const children = React.createElement(type, {
+ let props = {
...propsKeyValue,
...forwardedProps,
ref: drop(ref),
- })
+ }
+ if (component.type === 'Icon') {
+ delete props.ref
+ }
+
+ const children = (
+ {React.createElement(type, props)}
+ )
if (isBoxWrapped) {
let boxProps: any = {}
diff --git a/src/components/editor/previews/CustomComponentPreview.tsx b/src/components/editor/previews/CustomComponentPreview.tsx
index 6a2225a00b..1fc2dbecba 100644
--- a/src/components/editor/previews/CustomComponentPreview.tsx
+++ b/src/components/editor/previews/CustomComponentPreview.tsx
@@ -5,7 +5,6 @@ import ComponentPreview from '../ComponentPreview'
import { useInteractive } from '../../../hooks/useInteractive'
import {
getChildrenBy,
- getPropsBy,
checkIsContainerComponent,
} from '../../../core/selectors/components'
import findAndReplaceExposedPropValue from '../../../utils/findAndReplaceExposedPropValue'
@@ -51,18 +50,6 @@ const CustomComponentPreview: React.FC<{
const componentChildren = useSelector(getChildrenBy(component.type))
- //width of outer container will be the with of the child component
- let widthProp = useSelector(getPropsBy(componentChildren[0])).find(
- prop => prop.name === 'width',
- )
- if (widthProp?.derivedFromComponentType) {
- widthProp = componentProps.find(
- prop => prop.name === widthProp?.derivedFromPropName,
- )
- }
-
- const width = widthProp ? widthProp.value : '100%'
-
const propsKeyValue = findAndReplaceExposedPropValue(
componentProps,
customProps,
@@ -73,7 +60,7 @@ const CustomComponentPreview: React.FC<{
)
return (
-
+
{componentChildren.map((key: string) => (
{
- if (isPropRelatedToIcon(component.type, key)) {
- const Icon = stringToIconConvertor(key, propsKeyValue[key])
- console.log(Icon)
- console.log()
-
- propsKeyValue[key] = (
- }>
- {stringToIconConvertor(key, propsKeyValue[key])}
-
- )
- }
+ if (isInlineIconString(component.type, key))
+ propsKeyValue[key] = reactIcon(propsKeyValue[key])
+ if (isInlineIconComponent(key))
+ propsKeyValue[key] = React.createElement(reactIcon(propsKeyValue[key]))
})
- console.log(propsKeyValue)
-
const Element = React.createElement(type, {
...propsKeyValue,
...forwardedProps,
@@ -138,9 +130,11 @@ const EditablePreviewContainer: React.FC<{
/>,
)
- return inputTextFocused && component.id === selectedId
- ? contentEditableElement
- : Element
+ return inputTextFocused && component.id === selectedId ? (
+ contentEditableElement
+ ) : (
+ {Element}
+ )
}
export default EditablePreviewContainer
diff --git a/src/components/inspector/controls/IconControl.tsx b/src/components/inspector/controls/IconControl.tsx
index 548ee8237d..001107a82c 100644
--- a/src/components/inspector/controls/IconControl.tsx
+++ b/src/components/inspector/controls/IconControl.tsx
@@ -12,17 +12,18 @@ type IconControlProps = {
const IconControl: React.FC = ({ name, label }) => {
const { propId, propValue } = usePropsSelector(name)
- const iconsArray = Object.keys(icons).filter(icon => icon !== 'createIcon')
+ const iconsArray = Object.keys(icons).filter((icon) => icon !== 'createIcon')
return (
{
+ renderOptions={(option) => {
const iconName = option
// @ts-ignore
const Icon = React.createElement(icons[iconName])
diff --git a/src/core/models/components.test.ts b/src/core/models/components.test.ts
index 23f441f7af..4cee611774 100644
--- a/src/core/models/components.test.ts
+++ b/src/core/models/components.test.ts
@@ -1,3 +1,4 @@
+//@ts-nocheck
import components, {
ComponentsState,
INITIAL_COMPONENTS,
diff --git a/src/utils/isInlineIcon.ts b/src/utils/isInlineIcon.ts
new file mode 100644
index 0000000000..d2f6430473
--- /dev/null
+++ b/src/utils/isInlineIcon.ts
@@ -0,0 +1,7 @@
+export const isInlineIconString = (componentName: string, propName: string) => {
+ return componentName === 'Icon' && propName === 'as'
+}
+
+export const isInlineIconComponent = (prop: string) => {
+ return ['leftIcon', 'icon', 'rightIcon'].includes(prop)
+}
diff --git a/src/utils/recursive.test.ts b/src/utils/recursive.test.ts
index dc28e5d95d..c30f9979e5 100644
--- a/src/utils/recursive.test.ts
+++ b/src/utils/recursive.test.ts
@@ -1,3 +1,4 @@
+//@ts-nocheck
import { generateId } from './generateId'
import { duplicateComponent, deleteComponent } from './recursive'
@@ -67,10 +68,10 @@ describe('recursive functions', () => {
}
const avatars = Object.keys(finalTree).filter(
- compKey => finalTree[compKey].type === 'Avatar',
+ (compKey) => finalTree[compKey].type === 'Avatar',
)
const boxes = Object.keys(finalTree).filter(
- compKey => finalTree[compKey].type === 'Box',
+ (compKey) => finalTree[compKey].type === 'Box',
)
expect(avatars.length).toEqual(2)
diff --git a/src/utils/stringToIconConvertor.ts b/src/utils/stringToIconConvertor.ts
index 7d940b3cf6..2dda9a64f9 100644
--- a/src/utils/stringToIconConvertor.ts
+++ b/src/utils/stringToIconConvertor.ts
@@ -1,36 +1,76 @@
-// @ts-nocheck
+import React from 'react'
+import { ComponentWithAs } from '@chakra-ui/core'
+import type { IconType } from 'react-icons'
+type faIcons = typeof import('react-icons/fa')
+type mdIcons = typeof import('react-icons/md')
+type aiIcons = typeof import('react-icons/ai')
-export const getFirstTwoCharacters = (value: string) => value.substring(0, 2)
+type ckIcons = typeof import('@chakra-ui/icons')
+//default is being infered by ts:
+//due to https://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports
+//https://stackoverflow.com/questions/66404694/
+type nonIconImports = 'default' | 'createIcon'
+type chakraIcons = Exclude
-// This function will find the type of icon and return the icon based on the type.
-// const findIconType = (iconValue: string) => {
-// const subValue = getFirstTwoCharacters(iconValue)
+type keysImported = keyof faIcons | keyof mdIcons | keyof aiIcons | chakraIcons
+type IconName = Exclude
+//todo need stricter typing for props
+type ReactChakraIcon = IconType | ComponentWithAs<'svg', any>
-// switch (subValue) {
-// case 'Fa': {
-// return fontAwesomeIcons[iconValue]
-// }
-// case 'Md': {
-// return materialDesignIcons[iconValue]
-// }
-// case 'Ai': {
-// return antDesignIcons[iconValue]
-// }
-// default: {
-// return chakraIcons[iconValue]
-// }
-// }
-// }
+//make key as default export from module export
+//required for react lazy
-const stringToIconConvertor = (propName: string, propValue: string) => {
- let Icon: any
+const makeDefaultExport = (
+ promise: Promise,
+ key: Exclude,
+) => {
+ return promise.then((module) => {
+ return {
+ default: module[key],
+ }
+ })
+}
- //convert to icon element
- if (propName !== 'as') {
- if (Icon !== undefined) Icon = propValue
- else Icon = ''
+const isFaIcon = (name: IconName): name is keyof faIcons => {
+ return name.substring(0, 2) === 'Fa'
+}
+const isMdIcon = (name: IconName): name is keyof mdIcons => {
+ return name.substring(0, 2) === 'Md'
+}
+const isAiIcon = (name: IconName): name is keyof aiIcons => {
+ return name.substring(0, 2) === 'Ai'
+}
+const isChakraIcon = (name: IconName): name is chakraIcons => {
+ return !['Ai, Md, Fa'].includes(name.substring(0, 2))
+}
+
+const ReactIcon = (
+ iconName: IconName,
+): React.LazyExoticComponent => {
+ if (isFaIcon(iconName)) {
+ return React.lazy(() => {
+ return makeDefaultExport(import('react-icons/fa'), iconName)
+ })
+ }
+ if (isMdIcon(iconName)) {
+ return React.lazy(() => {
+ return makeDefaultExport(import('react-icons/md'), iconName)
+ })
+ }
+ if (isAiIcon(iconName)) {
+ return React.lazy(() => {
+ return makeDefaultExport(import('react-icons/ai'), iconName)
+ })
+ }
+ if (isChakraIcon(iconName)) {
+ return React.lazy(() => {
+ return makeDefaultExport(import('@chakra-ui/icons'), iconName)
+ })
}
- return Icon
+ //check if valid chakra icon and return , then else default icon
+ return React.lazy(() => {
+ return makeDefaultExport(import('react-icons/ai'), 'AiFillAlert')
+ })
}
-export default stringToIconConvertor
+export default ReactIcon
diff --git a/yarn.lock b/yarn.lock
index f46973c217..cf00a110a9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2102,11 +2102,6 @@
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
-"@mdx-js/react@^1.5.5":
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.18.tgz#f83cbb2355de9cf36a213140ce21647da1e34fa7"
- integrity sha512-aFHsZVu7r9WamlP+WO/lyvHHZAubkQjkcRYlvS7fQElypfJvjKdHevjC3xiqlsQpasx/4KqRMoEIb++wNtd+6w==
-
"@monaco-editor/react@^3.7.1":
version "3.7.1"
resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-3.7.1.tgz#7e2565272b31863255ea5326e60a0bfb80b87171"
@@ -2240,11 +2235,6 @@
resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.2.1.tgz#cbcffec02a7592f019916e4bd0807950a1376bcf"
integrity sha512-Yi+zB+wvIGrxomjG7JZWsOPm8/tKPBtEsJI4cS2QbSho/bQWsw6xufJ6YlXxmx4BiBcktkp5VeP43E5nWqMQ5w==
-"@rehooks/local-storage@^2.1.1":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@rehooks/local-storage/-/local-storage-2.4.0.tgz#fb884b2b657cad5f77aa6ab60bb3532f0e0725d2"
- integrity sha512-LoXDbEHsuIckVgBsFAv8SuU/M7memjyfWut9Zf36TQXqqCHBRFv8bweg9PymQCa1aWIMjNrZQflFdo55FDlXYg==
-
"@rematch/core@^1.3.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@rematch/core/-/core-1.4.0.tgz#686ce814e1cf125029c5e9fba23ef3ab7c3eb2a7"
@@ -2990,11 +2980,6 @@ acorn-walk@^6.0.1:
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
-acorn-walk@^7.1.1:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
- integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-
acorn@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
@@ -3389,6 +3374,11 @@ async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+async@0.9.x:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+ integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
+
async@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
@@ -3683,16 +3673,6 @@ better-docs@^2.3.2:
vue-docgen-api "^3.22.0"
vue2-ace-editor "^0.0.13"
-bfj@^6.1.1:
- version "6.1.2"
- resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
- integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==
- dependencies:
- bluebird "^3.5.5"
- check-types "^8.0.3"
- hoopy "^0.1.4"
- tryer "^1.0.1"
-
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -3935,6 +3915,11 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
+btoa@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
+ integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
+
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
@@ -4262,11 +4247,6 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-check-types@^8.0.3:
- version "8.0.3"
- resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
- integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
-
chokidar@^2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
@@ -4427,6 +4407,15 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
clone-deep@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6"
@@ -4581,7 +4570,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0:
+commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -5642,7 +5631,7 @@ duplexer3@^0.1.4:
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
-duplexer@^0.1.1:
+duplexer@^0.1.1, duplexer@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
@@ -5678,10 +5667,12 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-ejs@^2.6.1:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
- integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+ejs@^3.1.5:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
+ integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
+ dependencies:
+ jake "^10.6.1"
electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.571:
version "1.3.582"
@@ -5884,12 +5875,12 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3:
d "^1.0.1"
ext "^1.1.2"
-escalade@^3.1.0:
+escalade@^3.1.0, escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-escape-html@~1.0.3:
+escape-html@^1.0.3, escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
@@ -6259,7 +6250,7 @@ expect@^24.9.0:
jest-message-util "^24.9.0"
jest-regex-util "^24.9.0"
-express@^4.16.3, express@^4.17.1:
+express@^4.17.1:
version "4.17.1"
resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
@@ -6465,6 +6456,13 @@ file-uri-to-path@1.0.0:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+filelist@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
+ integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==
+ dependencies:
+ minimatch "^3.0.4"
+
filesize@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f"
@@ -6814,7 +6812,7 @@ get-caller-file@^1.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-get-caller-file@^2.0.1:
+get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@@ -7027,7 +7025,7 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-gzip-size@5.1.1, gzip-size@^5.0.0:
+gzip-size@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
@@ -7035,6 +7033,13 @@ gzip-size@5.1.1, gzip-size@^5.0.0:
duplexer "^0.1.1"
pify "^4.0.1"
+gzip-size@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+ integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
+ dependencies:
+ duplexer "^0.1.2"
+
handle-thing@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
@@ -7219,11 +7224,6 @@ homedir-polyfill@^1.0.0:
dependencies:
parse-passwd "^1.0.0"
-hoopy@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
- integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
-
hosted-git-info@^2.1.4, hosted-git-info@^2.4.2:
version "2.8.8"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
@@ -8170,6 +8170,16 @@ istextorbinary@^2.2.1:
editions "^2.2.0"
textextensions "^2.5.0"
+jake@^10.6.1:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
+ integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
+ dependencies:
+ async "0.9.x"
+ chalk "^2.4.2"
+ filelist "^1.0.1"
+ minimatch "^3.0.4"
+
jest-changed-files@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
@@ -9050,11 +9060,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
-lodash-es@^4.17.15:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78"
- integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==
-
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -10114,16 +10119,19 @@ open@^7.0.2:
is-docker "^2.0.0"
is-wsl "^2.1.1"
+open@^7.3.1:
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
+ integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
+ dependencies:
+ is-docker "^2.0.0"
+ is-wsl "^2.1.1"
+
opencollective-postinstall@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
-opener@^1.5.1:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
- integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
-
opn@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
@@ -11393,11 +11401,6 @@ pretty-quick@^2.0.1:
mri "^1.1.4"
multimatch "^4.0.0"
-prism-react-renderer@^1.0.2:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz#1c1be61b1eb9446a146ca7a50b7bcf36f2a70a44"
- integrity sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==
-
private@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -12622,7 +12625,7 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@2.6.3:
+rimraf@2.6.3, rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
@@ -13114,6 +13117,24 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+source-map-explorer@^2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/source-map-explorer/-/source-map-explorer-2.5.2.tgz#857cab5dd9d1d7175e9c5c2739dc9ccfb99f2dc5"
+ integrity sha512-gBwOyCcHPHcdLbgw6Y6kgoH1uLKL6hN3zz0xJcNI2lpnElZliIlmSYAjUVwAWnc7+HscoTyh1ScR7ITtFuEnxg==
+ dependencies:
+ btoa "^1.2.1"
+ chalk "^4.1.0"
+ convert-source-map "^1.7.0"
+ ejs "^3.1.5"
+ escape-html "^1.0.3"
+ glob "^7.1.6"
+ gzip-size "^6.0.0"
+ lodash "^4.17.20"
+ open "^7.3.1"
+ source-map "^0.7.3"
+ temp "^0.9.4"
+ yargs "^16.2.0"
+
source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -13156,6 +13177,11 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
spdx-correct@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
@@ -13631,6 +13657,14 @@ tar-stream@^1.1.2, tar-stream@^1.5.4:
to-buffer "^1.1.1"
xtend "^4.0.0"
+temp@^0.9.4:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620"
+ integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==
+ dependencies:
+ mkdirp "^0.5.1"
+ rimraf "~2.6.2"
+
term-size@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
@@ -13851,11 +13885,6 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
-tryer@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
- integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
-
ts-map@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/ts-map/-/ts-map-1.0.3.tgz#1c4d218dec813d2103b7e04e4bcf348e1471c1ff"
@@ -13977,6 +14006,11 @@ typescript@3.7.x:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
+typescript@4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c"
+ integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==
+
typescript@^3.2.2, typescript@^3.7.5:
version "3.9.7"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
@@ -14404,25 +14438,6 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-webpack-bundle-analyzer@^3.6.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c"
- integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==
- dependencies:
- acorn "^7.1.1"
- acorn-walk "^7.1.1"
- bfj "^6.1.1"
- chalk "^2.4.1"
- commander "^2.18.0"
- ejs "^2.6.1"
- express "^4.16.3"
- filesize "^3.6.1"
- gzip-size "^5.0.0"
- lodash "^4.17.19"
- mkdirp "^0.5.1"
- opener "^1.5.1"
- ws "^6.0.0"
-
webpack-dev-middleware@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3"
@@ -14811,6 +14826,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -14848,7 +14872,7 @@ ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
-ws@^6.0.0, ws@^6.1.2, ws@^6.2.1:
+ws@^6.1.2, ws@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
@@ -14890,6 +14914,11 @@ y18n@^3.2.1:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+y18n@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18"
+ integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
+
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
@@ -14926,6 +14955,11 @@ yargs-parser@^13.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
+yargs-parser@^20.2.2:
+ version "20.2.6"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20"
+ integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==
+
yargs@12.0.5:
version "12.0.5"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
@@ -14960,6 +14994,19 @@ yargs@^13.3.0:
y18n "^4.0.0"
yargs-parser "^13.1.2"
+yargs@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
yargs@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"