diff --git a/Makefile b/Makefile index 9fdb588215..6763e7e42a 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ dev: binaries/client build-extensions static/build/LensDev.html yarn dev .PHONY: lint -lint: +lint: node_modules yarn lint .PHONY: tag-release diff --git a/package.json b/package.json index 98c3ba31fe..14c69d9a54 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "OpenLens", "description": "OpenLens - Open Source IDE for Kubernetes", "homepage": "https://github.com/lensapp/lens", - "version": "5.3.0-alpha.6", + "version": "5.3.0-alpha.7", "main": "static/build/main.js", "copyright": "© 2021 OpenLens Authors", "license": "MIT", @@ -186,12 +186,10 @@ "@sentry/electron": "^2.5.4", "@sentry/integrations": "^6.13.3", "abort-controller": "^3.0.0", - "array-move": "^3.0.1", "auto-bind": "^4.0.0", "autobind-decorator": "^2.4.0", "await-lock": "^2.1.0", "byline": "^5.0.0", - "chalk": "^4.1.0", "chokidar": "^3.4.3", "conf": "^7.1.2", "crypto-js": "^4.1.1", @@ -216,13 +214,13 @@ "md5-file": "^5.0.0", "mobx": "^6.3.0", "mobx-observable-history": "^2.0.1", - "mobx-react": "^7.2.0", + "mobx-react": "^7.2.1", "mock-fs": "^4.14.0", "moment": "^2.29.1", "moment-timezone": "^0.5.33", "monaco-editor": "^0.29.1", "monaco-editor-webpack-plugin": "^5.0.0", - "node-fetch": "^2.6.5", + "node-fetch": "^2.6.6", "node-pty": "^0.10.1", "npm": "^6.14.15", "p-limit": "^3.1.0", @@ -238,7 +236,6 @@ "request-promise-native": "^1.0.9", "rfc6902": "^4.0.2", "semver": "^7.3.2", - "serializr": "^2.0.5", "shell-env": "^3.0.1", "spdy": "^4.0.2", "tar": "^6.1.11", @@ -258,7 +255,6 @@ "@material-ui/lab": "^4.0.0-alpha.60", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@sentry/types": "^6.13.3", - "@testing-library/dom": "^8.9.0", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.6", "@testing-library/user-event": "^13.5.0", @@ -270,7 +266,6 @@ "@types/electron-devtools-installer": "^2.2.0", "@types/fs-extra": "^9.0.1", "@types/glob-to-regexp": "^0.4.1", - "@types/hapi": "^18.0.6", "@types/hoist-non-react-statics": "^3.3.1", "@types/html-webpack-plugin": "^3.2.6", "@types/http-proxy": "^1.17.7", @@ -278,22 +273,21 @@ "@types/js-yaml": "^4.0.4", "@types/jsdom": "^16.2.13", "@types/jsonpath": "^0.2.0", - "@types/lodash": "^4.14.155", + "@types/lodash": "^4.14.176", "@types/marked": "^2.0.5", "@types/md5-file": "^4.0.2", "@types/mini-css-extract-plugin": "^0.9.1", "@types/mock-fs": "^4.13.1", - "@types/module-alias": "^2.0.1", "@types/node": "14.17.27", "@types/node-fetch": "^2.5.12", "@types/npm": "^2.0.32", "@types/progress-bar-webpack-plugin": "^2.1.2", "@types/proper-lockfile": "^4.1.2", "@types/randomcolor": "^0.5.6", - "@types/react": "^17.0.29", + "@types/react": "^17.0.33", "@types/react-beautiful-dnd": "^13.1.2", "@types/react-dom": "^17.0.9", - "@types/react-router-dom": "^5.3.1", + "@types/react-router-dom": "^5.3.2", "@types/react-select": "3.1.2", "@types/react-table": "^7.7.7", "@types/react-virtualized-auto-sizer": "^1.0.1", @@ -301,7 +295,7 @@ "@types/readable-stream": "^2.3.11", "@types/request": "^2.48.7", "@types/request-promise-native": "^1.0.18", - "@types/semver": "^7.2.0", + "@types/semver": "^7.3.9", "@types/sharp": "^0.29.2", "@types/spdy": "^3.4.4", "@types/tar": "^4.0.5", @@ -310,13 +304,12 @@ "@types/triple-beam": "^1.3.2", "@types/url-parse": "^1.4.4", "@types/uuid": "^8.3.1", - "@types/webdriverio": "^4.13.0", "@types/webpack": "^4.41.31", "@types/webpack-dev-server": "^3.11.6", "@types/webpack-env": "^1.16.3", "@types/webpack-node-externals": "^1.7.1", "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.29.1", + "@typescript-eslint/parser": "^4.33.0", "ansi_up": "^5.0.1", "chart.js": "^2.9.4", "circular-dependency-plugin": "^5.2.2", @@ -325,7 +318,7 @@ "css-loader": "^5.2.7", "deepdash": "^5.3.9", "dompurify": "^2.3.3", - "electron": "13.6.0", + "electron": "^13.5.1", "electron-builder": "^22.11.11", "electron-notarize": "^0.3.0", "esbuild": "^0.13.8", @@ -340,7 +333,6 @@ "fork-ts-checker-webpack-plugin": "^5.2.1", "hoist-non-react-statics": "^3.3.2", "html-webpack-plugin": "^4.5.2", - "identity-obj-proxy": "^3.0.0", "include-media": "^1.4.9", "jest": "26.6.3", "jest-canvas-mock": "^2.3.1", @@ -352,7 +344,7 @@ "node-loader": "^1.0.3", "nodemon": "^2.0.14", "playwright": "^1.15.2", - "postcss": "^8.3.6", + "postcss": "^8.3.11", "postcss-loader": "4.3.0", "postinstall-postinstall": "^2.1.0", "progress-bar-webpack-plugin": "^2.1.0", @@ -364,8 +356,8 @@ "react-select": "3.2.0", "react-select-event": "^5.1.0", "react-table": "^7.7.0", - "react-window": "^1.8.5", - "sass": "^1.43.2", + "react-window": "^1.8.6", + "sass": "^1.43.4", "sass-loader": "^8.0.2", "sharp": "^0.29.2", "style-loader": "^2.0.0", diff --git a/src/common/ipc/ipc.ts b/src/common/ipc/ipc.ts index 9ed51b7790..4a8b4f1f8d 100644 --- a/src/common/ipc/ipc.ts +++ b/src/common/ipc/ipc.ts @@ -49,20 +49,20 @@ function getSubFrames(): ClusterFrameInfo[] { } export function broadcastMessage(channel: string, ...args: any[]) { - const views: undefined | ReturnType | ReturnType = (webContents || electronRemote?.webContents)?.getAllWebContents(); - - if (!views || !Array.isArray(views) || views.length === 0) return; - args = args.map(sanitizePayload); - - ipcRenderer?.send(channel, ...args); - ipcMain?.emit(channel, ...args); - const subFramesP = ipcRenderer ? requestMain(subFramesChannel) : Promise.resolve(getSubFrames()); subFramesP .then(subFrames => { + const views: undefined | ReturnType | ReturnType = (webContents || electronRemote?.webContents)?.getAllWebContents(); + + if (!views || !Array.isArray(views) || views.length === 0) return; + args = args.map(sanitizePayload); + + ipcRenderer?.send(channel, ...args); + ipcMain?.emit(channel, ...args); + for (const view of views) { let viewType = "unknown"; diff --git a/src/common/k8s-api/endpoints/ingress.api.ts b/src/common/k8s-api/endpoints/ingress.api.ts index 5a1a404f20..cf607fa144 100644 --- a/src/common/k8s-api/endpoints/ingress.api.ts +++ b/src/common/k8s-api/endpoints/ingress.api.ts @@ -30,7 +30,7 @@ export class IngressApi extends KubeApi { } export function getMetricsForIngress(ingress: string, namespace: string): Promise { - const opts = { category: "ingress", ingress }; + const opts = { category: "ingress", ingress, namespace }; return metricsApi.getMetrics({ bytesSentSuccess: opts, diff --git a/src/main/helm/helm-release-manager.ts b/src/main/helm/helm-release-manager.ts index d0ca2e8427..1f989c6428 100644 --- a/src/main/helm/helm-release-manager.ts +++ b/src/main/helm/helm-release-manager.ts @@ -105,7 +105,9 @@ export async function getRelease(name: string, namespace: string, cluster: Clust const helm = await helmCli.binaryPath(); const proxyKubeconfig = await cluster.getProxyKubeconfigPath(); - const { stdout } = await promiseExec(`"${helm}" status ${name} --output json --namespace ${namespace} --kubeconfig ${proxyKubeconfig}`); + const { stdout } = await promiseExec(`"${helm}" status ${name} --output json --namespace ${namespace} --kubeconfig ${proxyKubeconfig}`, { + maxBuffer: 32 * 1024 * 1024 * 1024, // 32 MiB + }); const release = JSON.parse(stdout); release.resources = await getResources(name, namespace, cluster); diff --git a/src/renderer/components/+add-cluster/add-cluster.scss b/src/renderer/components/+add-cluster/add-cluster.scss index e28065205d..bd87eef74e 100644 --- a/src/renderer/components/+add-cluster/add-cluster.scss +++ b/src/renderer/components/+add-cluster/add-cluster.scss @@ -50,4 +50,8 @@ display: block; padding-top: 6px; } + + a[href] { + color: var(--colorInfo); + } } diff --git a/src/renderer/components/+add-cluster/add-cluster.tsx b/src/renderer/components/+add-cluster/add-cluster.tsx index acb9c19f6f..84d29a3143 100644 --- a/src/renderer/components/+add-cluster/add-cluster.tsx +++ b/src/renderer/components/+add-cluster/add-cluster.tsx @@ -117,8 +117,8 @@ export class AddCluster extends React.Component {

Add Clusters from Kubeconfig

- Clusters added here are not merged into the ~/.kube/config file. - Read more about adding clusters here. + Clusters added here are not merged into the ~/.kube/config file.{" "} + Read more about adding clusters.

{ - @boundMethod - remove() { + remove = () => { return releaseStore.remove(this.props.release); - } + }; - @boundMethod - upgrade() { + upgrade = () => { const { release, hideDetails } = this.props; createUpgradeChartTab(release); hideDetails?.(); - } + }; - @boundMethod - rollback() { + rollback = () => { ReleaseRollbackDialog.open(this.props.release); - } + }; renderContent() { const { release, toolbar } = this.props; @@ -67,6 +64,10 @@ export class HelmReleaseMenu extends React.Component { Rollback )} + + + Upgrade + ); } diff --git a/src/renderer/components/+catalog/catalog-add-button.tsx b/src/renderer/components/+catalog/catalog-add-button.tsx index 558cdca3db..75cbe6ed23 100644 --- a/src/renderer/components/+catalog/catalog-add-button.tsx +++ b/src/renderer/components/+catalog/catalog-add-button.tsx @@ -73,8 +73,9 @@ export class CatalogAddButton extends React.Component { @boundMethod onButtonClick() { - const defaultAction = this.menuItems.find(item => item.defaultAction)?.onClick; - const clickAction = defaultAction || (this.menuItems.length === 1 ? this.menuItems[0].onClick : null); + const filteredItems = this.props.category ? this.props.category.filteredItems(this.menuItems) : []; + const defaultAction = filteredItems.find(item => item.defaultAction)?.onClick; + const clickAction = defaultAction || (filteredItems.length === 1 ? filteredItems[0].onClick : null); clickAction?.(); } diff --git a/src/renderer/components/+cluster/cluster-pie-charts.tsx b/src/renderer/components/+cluster/cluster-pie-charts.tsx index 5079866870..94e4ede5c9 100644 --- a/src/renderer/components/+cluster/cluster-pie-charts.tsx +++ b/src/renderer/components/+cluster/cluster-pie-charts.tsx @@ -229,7 +229,7 @@ export const ClusterPieCharts = observer(() => { if (!metricsLoaded) { return ( -
+
); diff --git a/src/renderer/components/+namespaces/namespace-select-filter.tsx b/src/renderer/components/+namespaces/namespace-select-filter.tsx index 5863e4244f..929530aa97 100644 --- a/src/renderer/components/+namespaces/namespace-select-filter.tsx +++ b/src/renderer/components/+namespaces/namespace-select-filter.tsx @@ -37,15 +37,15 @@ const Placeholder = observer((props: PlaceholderProps) => { const getPlaceholder = (): React.ReactNode => { const namespaces = namespaceStore.contextNamespaces; - switch (namespaces.length) { - case 0: - case namespaceStore.allowedNamespaces.length: - return <>All namespaces; - case 1: - return <>Namespace: {namespaces[0]}; - default: - return <>Namespaces: {namespaces.join(", ")}; + if (namespaceStore.areAllSelectedImplicitly || !namespaces.length) { + return <>All namespaces; } + + if (namespaces.length === 1) { + return <>Namespace: {namespaces[0]}; + } + + return <>Namespaces: {namespaces.join(", ")}; }; return ( @@ -60,6 +60,9 @@ export class NamespaceSelectFilter extends React.Component { static isMultiSelection = observable.box(false); static isMenuOpen = observable.box(false); + /** + * Only updated on every open + */ private selected = observable.set(); private didToggle = false; @@ -88,7 +91,7 @@ export class NamespaceSelectFilter extends React.Component { disposeOnUnmount(this, [ reaction(() => this.isMenuOpen, newVal => { if (newVal) { // rising edge of selection - this.selected.replace(namespaceStore.selectedNamespaces); + this.selected.replace(namespaceStore.selectedNames); this.didToggle = false; } }), @@ -101,9 +104,9 @@ export class NamespaceSelectFilter extends React.Component { return (
- + {namespace} - {isSelected && } + {isSelected && }
); } @@ -116,12 +119,12 @@ export class NamespaceSelectFilter extends React.Component { if (namespace) { if (this.isMultiSelection) { this.didToggle = true; - namespaceStore.toggleContext(namespace); - } else { namespaceStore.toggleSingle(namespace); + } else { + namespaceStore.selectSingle(namespace); } } else { - namespaceStore.toggleAll(true); // "All namespaces" clicked + namespaceStore.selectAll(); } }; diff --git a/src/renderer/components/+namespaces/namespace.store.ts b/src/renderer/components/+namespaces/namespace.store.ts index 54f98702fc..b9916a5190 100644 --- a/src/renderer/components/+namespaces/namespace.store.ts +++ b/src/renderer/components/+namespaces/namespace.store.ts @@ -20,7 +20,7 @@ */ import { action, comparer, computed, IReactionDisposer, IReactionOptions, makeObservable, reaction, } from "mobx"; -import { autoBind, createStorage, noop } from "../../utils"; +import { autoBind, createStorage, noop, ToggleSet } from "../../utils"; import { KubeObjectStore, KubeObjectStoreLoadingParams } from "../../../common/k8s-api/kube-object.store"; import { Namespace, namespacesApi } from "../../../common/k8s-api/endpoints/namespaces.api"; import { apiManager } from "../../../common/k8s-api/api-manager"; @@ -78,7 +78,11 @@ export class NamespaceStore extends KubeObjectStore { return []; } - @computed get selectedNamespaces(): string[] { + /** + * @private + * The current value (list of namespaces names) in the storage layer + */ + @computed private get selectedNamespaces(): string[] { return this.storage.get() ?? []; } @@ -89,6 +93,9 @@ export class NamespaceStore extends KubeObjectStore { ].flat())); } + /** + * The list of selected namespace names (for filtering) + */ @computed get contextNamespaces(): string[] { if (!this.selectedNamespaces.length) { return this.allowedNamespaces; // show all namespaces when nothing selected @@ -97,6 +104,23 @@ export class NamespaceStore extends KubeObjectStore { return this.selectedNamespaces; } + /** + * The set of select namespace names (for filtering) + */ + @computed get selectedNames(): Set { + return new Set(this.contextNamespaces); + } + + /** + * Is true when the the set of namespace names selected is implicitly all + * + * Namely, this will be true if the user has deselected all namespaces from + * the filter or if the user has clicked the "All Namespaces" option + */ + @computed get areAllSelectedImplicitly(): boolean { + return this.selectedNamespaces.length === 0; + } + subscribe() { /** * if user has given static list of namespaces let's not start watches @@ -142,42 +166,78 @@ export class NamespaceStore extends KubeObjectStore { } } + /** + * Checks if namespace names are selected for filtering + * @param namespaces One or several names of namespaces to check if they are selected + * @returns `true` if all the provided names are selected + */ hasContext(namespaces: string | string[]): boolean { return [namespaces] .flat() - .every(namespace => this.selectedNamespaces.includes(namespace)); + .every(namespace => this.selectedNames.has(namespace)); } + /** + * Is `true` if all available namespaces are selected, otherwise `false` + */ @computed get hasAllContexts(): boolean { - return this.selectedNamespaces.length === this.allowedNamespaces.length; + return this.contextNamespaces.length === this.allowedNamespaces.length; } + /** + * Acts like `toggleSingle` but can work on several at a time + * @param namespaces One or many names of namespaces to select + */ @action toggleContext(namespaces: string | string[]) { - if (this.hasContext(namespaces)) { - this.clearSelected(namespaces); - } else { - this.selectNamespaces([this.selectedNamespaces, namespaces].flat()); + const nextState = new ToggleSet(this.contextNamespaces); + + for (const namespace of [namespaces].flat()) { + nextState.toggle(namespace); } + + this.storage.set([...nextState]); } - @action + /** + * Toggles the selection state of `namespace`. Namely, if it was previously + * specifically or implicitly selected then after this call it will be + * explicitly deselected. + * @param namespace The name of a namespace + */ toggleSingle(namespace: string){ - this.clearSelected(); - this.selectNamespaces(namespace); + const nextState = new ToggleSet(this.contextNamespaces); + + nextState.toggle(namespace); + this.storage.set([...nextState]); } - @action - toggleAll(showAll?: boolean) { - if (typeof showAll === "boolean") { - if (showAll) { - this.selectNamespaces(this.allowedNamespaces); - } else { - this.selectNamespaces([]); // empty context considered as "All namespaces" - } - } else { - this.toggleAll(!this.hasAllContexts); - } + /** + * Makes the given namespace the sole selected namespace + */ + selectSingle(namespace: string) { + this.storage.set([namespace]); + } + + /** + * Selects all available namespaces. + * + * Note: If new namespaces appear in the future those will be selected too + */ + selectAll() { + this.selectNamespaces([]); + } + + /** + * This function selects all namespaces implicitly. + * + * NOTE: does not toggle any namespaces + * @param selectAll NOT USED + * @deprecated Use `NamespaceStore.selectAll` instead. + */ + toggleAll(selectAll?: boolean) { + void selectAll; + this.selectAll(); } @action diff --git a/src/renderer/components/app.scss b/src/renderer/components/app.scss index 9d4946cd9f..d974aebc7f 100755 --- a/src/renderer/components/app.scss +++ b/src/renderer/components/app.scss @@ -19,8 +19,6 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -@import "tailwindcss/base"; -@import "tailwindcss/components"; @import "tailwindcss/utilities"; @import "~flex.box"; @import "fonts"; diff --git a/src/renderer/components/error-boundary/error-boundary.scss b/src/renderer/components/error-boundary/error-boundary.scss index 20bbfe14ec..2b250499c1 100644 --- a/src/renderer/components/error-boundary/error-boundary.scss +++ b/src/renderer/components/error-boundary/error-boundary.scss @@ -43,4 +43,8 @@ background: $contentColor; color: $textColorSecondary; } + + a { + color: var(--colorInfo); + } } \ No newline at end of file diff --git a/src/renderer/components/input/search-input.tsx b/src/renderer/components/input/search-input.tsx index 21ba82e493..1f29bc0dae 100644 --- a/src/renderer/components/input/search-input.tsx +++ b/src/renderer/components/input/search-input.tsx @@ -26,6 +26,7 @@ import { observer } from "mobx-react"; import { boundMethod, cssNames } from "../../utils"; import { Icon } from "../icon"; import { Input, InputProps } from "./input"; +import { isMac } from "../../../common/vars"; interface Props extends InputProps { compact?: boolean; // show only search-icon when not focused @@ -38,9 +39,7 @@ const defaultProps: Partial = { autoFocus: true, bindGlobalFocusHotkey: true, showClearIcon: true, - get placeholder() { - return `Search...`; - }, + placeholder: "Search...", }; @observer @@ -60,9 +59,7 @@ export class SearchInput extends React.Component { @boundMethod onGlobalKey(evt: KeyboardEvent) { - const meta = evt.metaKey || evt.ctrlKey; - - if (meta && evt.key === "f") { + if (evt.key === "f" && (isMac ? evt.metaKey : evt.ctrlKey)) { this.inputRef.current.focus(); } } diff --git a/yarn.lock b/yarn.lock index 771f7bc690..ee77608662 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1132,7 +1132,7 @@ dependencies: defer-to-connect "^2.0.0" -"@testing-library/dom@>=7", "@testing-library/dom@^8.9.0": +"@testing-library/dom@>=7": version "8.9.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.9.0.tgz#608ee6f235688a27f8ee180c0d81ff77a5363d59" integrity sha512-fhmAYtGpFqzKdPq5aLNn/T396qfhYkttHT/5RytdDNSCzg9K/0F/WXF5iDsNBK1M3ZIQbPy7Y0qm4Kup5bqT/w== @@ -1279,11 +1279,6 @@ "@types/connect" "*" "@types/node" "*" -"@types/boom@*": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@types/boom/-/boom-7.3.0.tgz#33280c5552d4cfabc21b8b7e0f6d29292decd985" - integrity sha512-PH7bfkt1nu4pnlxz+Ws+wwJJF1HE12W3ia+Iace2JT7q56DLH3hbyjOJyNHJYRxk3PkKaC36fHfHKyeG1rMgCA== - "@types/byline@^4.2.33": version "4.2.33" resolved "https://registry.yarnpkg.com/@types/byline/-/byline-4.2.33.tgz#001f504f4353b84c503e74da0ed9bdf291484af2" @@ -1306,11 +1301,6 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w== -"@types/catbox@*": - version "10.0.6" - resolved "https://registry.yarnpkg.com/@types/catbox/-/catbox-10.0.6.tgz#8a4c91261cf0afca03351bb82a95b2d6cf43a5d0" - integrity sha512-qS0VHlL6eBUUoUeBnI/ASCffoniS62zdV6IUtLSIjGKmRhZNawotaOMsTYivZOTZVktfe9koAJkD9XFac7tEEg== - "@types/chart.js@^2.9.34": version "2.9.34" resolved "https://registry.yarnpkg.com/@types/chart.js/-/chart.js-2.9.34.tgz#d41fb6b74b72a56bac70255bb4ed087386b66ed6" @@ -1436,20 +1426,6 @@ dependencies: "@types/node" "*" -"@types/hapi@^18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/hapi/-/hapi-18.0.6.tgz#092ef4afbb7f5e32fcad429c4d3341cb696fdf15" - integrity sha512-0UvpE7afOsWbDuSWv1W2kLAacEvhDGNnGwsiNe0IIw6o4XumZxH9Z850ZBLc4DywzwwJ8FDPneCpy2hJ1OzmSg== - dependencies: - "@types/boom" "*" - "@types/catbox" "*" - "@types/iron" "*" - "@types/mimos" "*" - "@types/node" "*" - "@types/podium" "*" - "@types/shot" "*" - joi "^17.3.0" - "@types/history@*", "@types/history@^4.7.8": version "4.7.8" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" @@ -1498,13 +1474,6 @@ dependencies: "@types/node" "*" -"@types/iron@*": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/iron/-/iron-5.0.1.tgz#5420bbda8623c48ee51b9a78ebad05d7305b4b24" - integrity sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug== - dependencies: - "@types/node" "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz#79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5" @@ -1573,10 +1542,10 @@ dependencies: "@types/node" "*" -"@types/lodash@^4.14.155": - version "4.14.155" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.155.tgz#e2b4514f46a261fd11542e47519c20ebce7bc23a" - integrity sha512-vEcX7S7aPhsBCivxMwAANQburHBtfN9RdyXFk84IJmu2Z4Hkg1tOFgaslRiEqqvoLtbCBi6ika1EMspE+NZ9Lg== +"@types/lodash@^4.14.176": + version "4.14.176" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.176.tgz#641150fc1cda36fbfa329de603bbb175d7ee20c0" + integrity sha512-xZmuPTa3rlZoIbtDUyJKZQimJV3bxCmzMIO2c9Pz9afyDro6kr7R79GwcB6mRhuoPmV2p1Vb66WOJH7F886WKQ== "@types/marked@^2.0.5": version "2.0.5" @@ -1588,23 +1557,11 @@ resolved "https://registry.yarnpkg.com/@types/md5-file/-/md5-file-4.0.2.tgz#c7241e88f4aa17218c774befb0fc34f33f21fe36" integrity sha512-8gacRfEqLrmZ6KofpFfxyjsm/LYepeWUWUJGaf5A9W9J5B2/dRZMdkDqFDL6YDa9IweH12IO76jO7mpsK2B3wg== -"@types/mime-db@*": - version "1.43.0" - resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.0.tgz#c91a4fcae0d6cfe19f2452b3b3e9fc2b95aa9a52" - integrity sha512-nCqnKWfvDzTVRh8NS9Zn+rnZYs5+iw5hx3G0nFgKM/R2mJQwPChin4DQ4zXlXnxTtc/3Ys5FnWweKW6NW+d2aw== - "@types/mime@*": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== -"@types/mimos@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/mimos/-/mimos-3.0.2.tgz#9595c66ead4e0d1fd022ff5f984851cdd5d5dc7b" - integrity sha512-UG3sdP/9HOk0oA1l8VylaZ0fjy6O/QGEeivOK9JhMjgJkcBJRdfsI6FtXFtg6UH17txmxuDOiIsTlrpBkayK0A== - dependencies: - "@types/mime-db" "*" - "@types/mini-css-extract-plugin@^0.9.1": version "0.9.1" resolved "https://registry.yarnpkg.com/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz#d4bdde5197326fca039d418f4bdda03dc74dc451" @@ -1631,11 +1588,6 @@ dependencies: "@types/node" "*" -"@types/module-alias@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/module-alias/-/module-alias-2.0.1.tgz#e5893236ce922152d57c5f3f978f764f4deeb45f" - integrity sha512-DN/CCT1HQG6HquBNJdLkvV+4v5l/oEuwOHUPLxI+Eub0NED+lk0YUfba04WGH90EINiUrNgClkNnwGmbICeWMQ== - "@types/ms@*": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" @@ -1689,11 +1641,6 @@ "@types/node" "*" xmlbuilder ">=11.0.1" -"@types/podium@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/podium/-/podium-1.0.0.tgz#bfaa2151be2b1d6109cc69f7faa9dac2cba3bb20" - integrity sha1-v6ohUb4rHWEJzGn3+qnawsujuyA= - "@types/prettier@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.1.tgz#b6e98083f13faa1e5231bfa3bdb1b0feff536b6d" @@ -1765,10 +1712,10 @@ hoist-non-react-statics "^3.3.0" redux "^4.0.0" -"@types/react-router-dom@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.1.tgz#76700ccce6529413ec723024b71f01fc77a4a980" - integrity sha512-UvyRy73318QI83haXlaMwmklHHzV9hjl3u71MmM6wYNu0hOVk9NLTa0vGukf8zXUqnwz4O06ig876YSPpeK28A== +"@types/react-router-dom@^5.3.2": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.2.tgz#ebd8e145cf056db5c66eb1dac63c72f52e8542ee" + integrity sha512-ELEYRUie2czuJzaZ5+ziIp9Hhw+juEw8b7C11YNA4QdLCVbQ3qLi2l4aq8XnlqM7V31LZX8dxUuFUCrzHm6sqQ== dependencies: "@types/history" "*" "@types/react" "*" @@ -1819,10 +1766,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^17.0.29": - version "17.0.29" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.29.tgz#9535f3fc01a4981ce9cadcf0daa2593c0c2f2251" - integrity sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw== +"@types/react@*", "@types/react@^17.0.33": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.33.tgz#e01ae3de7613dac1094569880bb3792732203ad5" + integrity sha512-pLWntxXpDPaU+RTAuSGWGSEL2FRTNyRQOjSWDke/rxRg14ncsZvx8AKWMWZqvc1UOaJIAoObdZhAWvRaHFi5rw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1884,10 +1831,10 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@types/semver@^7.2.0", "@types/semver@^7.3.6": - version "7.3.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.8.tgz#508a27995498d7586dcecd77c25e289bfaf90c59" - integrity sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now== +"@types/semver@^7.3.6", "@types/semver@^7.3.9": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" + integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== "@types/serve-static@*": version "1.13.6" @@ -1904,13 +1851,6 @@ dependencies: "@types/node" "*" -"@types/shot@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/shot/-/shot-4.0.0.tgz#7545500c489b65c69b5bc5446ba4fef3bd26af92" - integrity sha512-Xv+n8yfccuicMlwBY58K5PVVNtXRm7uDzcwwmCarBxMP+XxGfnh1BI06YiVAsPbTAzcnYsrzpoS5QHeyV7LS8A== - dependencies: - "@types/node" "*" - "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -2009,13 +1949,6 @@ resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b" integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg== -"@types/webdriverio@^4.13.0": - version "4.13.3" - resolved "https://registry.yarnpkg.com/@types/webdriverio/-/webdriverio-4.13.3.tgz#c1571c4e62724135c0b11e7d7e36b07af5168856" - integrity sha512-AfSQM1xTO9Ax+u9uSQPDuw69DQ0qA2RMoKHn86jCgWNcwKVUjGMSP4sfSl3JOfcZN8X/gWvn7znVPp2/g9zcJA== - dependencies: - "@types/node" "*" - "@types/webpack-dev-server@^3.11.6": version "3.11.6" resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" @@ -2126,24 +2059,16 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.1.tgz#17dfbb45c9032ffa0fe15881d20fbc2a4bdeb02d" - integrity sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg== +"@typescript-eslint/parser@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== dependencies: - "@typescript-eslint/scope-manager" "4.29.1" - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/typescript-estree" "4.29.1" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz#f25da25bc6512812efa2ce5ebd36619d68e61358" - integrity sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A== - dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" - "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -2152,29 +2077,11 @@ "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/types@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" - integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== - "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/typescript-estree@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz#7b32a25ff8e51f2671ccc6b26cdbee3b1e6c5e7f" - integrity sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw== - dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" @@ -2188,14 +2095,6 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz#0615be8b55721f5e854f3ee99f1a714f2d093e5d" - integrity sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag== - dependencies: - "@typescript-eslint/types" "4.29.1" - eslint-visitor-keys "^2.0.0" - "@typescript-eslint/visitor-keys@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" @@ -2736,11 +2635,6 @@ array-includes@^3.1.1, array-includes@^3.1.3: get-intrinsic "^1.1.1" is-string "^1.0.5" -array-move@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/array-move/-/array-move-3.0.1.tgz#179645cc0987b65953a4fc06b6df9045e4ba9618" - integrity sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg== - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -3937,11 +3831,6 @@ color@^4.0.1: color-convert "^2.0.1" color-string "^1.6.0" -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -4900,9 +4789,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.4, dom-accessibility-api@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.7.tgz#8c2aa6325968f2933160a0b7dbb380893ddf3e7d" - integrity sha512-ml3lJIq9YjUfM9TUnEPvEYWFSwivwIGBPKpewX7tii7fwCazA8yCioGdqQcNsItPpfFvSJ3VIdMQPj60LJhcQA== + version "0.5.9" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.9.tgz#915f8531ba29a50e5c29389dbfb87a9642fef0d6" + integrity sha512-+KPF4o71fl6NrdnqIrJc6m44NA+Rhf1h7In2MRznejSQasWkjqmHOBUlk+pXJ77cVOSYyZeNHFwn/sjotB6+Sw== dom-converter@^0.2: version "0.2.0" @@ -5142,10 +5031,10 @@ electron-window-state@^5.0.3: jsonfile "^4.0.0" mkdirp "^0.5.1" -electron@13.6.0: - version "13.6.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-13.6.0.tgz#c61e516f7a087dec711c6fddd945a808cfa115d8" - integrity sha512-VDOUmRwa4eQ+5iXE+XHKXKX+2yk8Ey5uBe3nH9Hj6zNPUBY2S0EOClw7U90Ve2lLHXiQ6DnguNmDgOZKJLcHFQ== +electron@^13.5.1: + version "13.5.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-13.5.1.tgz#76c02c39be228532f886a170b472cbd3d93f0d0f" + integrity sha512-ZyxhIhmdaeE3xiIGObf0zqEyCyuIDqZQBv9NKX8w5FNzGm87j4qR0H1+GQg6vz+cA1Nnv1x175Zvimzc0/UwEQ== dependencies: "@electron/get" "^1.0.1" "@types/node" "^14.6.2" @@ -6784,11 +6673,6 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" -harmony-reflect@^1.4.6: - version "1.6.1" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" - integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -7218,13 +7102,6 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -identity-obj-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= - dependencies: - harmony-reflect "^1.4.6" - ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -7326,9 +7203,9 @@ imurmurhash@^0.1.4: integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= include-media@^1.4.9: - version "1.4.9" - resolved "https://registry.yarnpkg.com/include-media/-/include-media-1.4.9.tgz#d0020b7be3eb2d54868a20943595ce380e0bc43b" - integrity sha1-0AILe+PrLVSGiiCUNZXOOA4LxDs= + version "1.4.10" + resolved "https://registry.yarnpkg.com/include-media/-/include-media-1.4.10.tgz#7a311c92c396c808504ec6a5365115d30571f259" + integrity sha512-TymQzKF7oWHbItEcEHOCponZ90lRr1I9QbYeD+qCxXy4Z0/pSpS4Ocz2bq3FMOERlXXrY9Sawsh9GjiObVQA6A== indefinite-observable@^2.0.1: version "2.0.1" @@ -8424,7 +8301,7 @@ jest@26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" -joi@^17.3.0, joi@^17.4.2: +joi@^17.4.2: version "17.4.2" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== @@ -9657,10 +9534,10 @@ mobx-react-lite@^3.2.0: resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz#331d7365a6b053378dfe9c087315b4e41c5df69f" integrity sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g== -mobx-react@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.2.0.tgz#241e925e963bb83a31d269f65f9f379e37ecbaeb" - integrity sha512-KHUjZ3HBmZlNnPd1M82jcdVsQRDlfym38zJhZEs33VxyVQTvL77hODCArq6+C1P1k/6erEeo2R7rpE7ZeOL7dg== +mobx-react@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.2.1.tgz#e9d4c04dc63d05e1139ce773f5fee7a5b4cb7c78" + integrity sha512-LZS99KFLn75VWDXPdRJhILzVQ7qLcRjQbzkK+wVs0Qg4kWw5hOI2USp7tmu+9zP9KYsVBmKyx2k/8cTTBfsymw== dependencies: mobx-react-lite "^3.2.0" @@ -9760,10 +9637,10 @@ nan@^2.12.1, nan@^2.14.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== +nanoid@^3.1.30: + version "3.1.30" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== nanomatch@^1.2.9: version "1.2.13" @@ -9869,10 +9746,10 @@ node-fetch@2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== +node-fetch@^2.6.6: + version "2.6.6" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" + integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== dependencies: whatwg-url "^5.0.0" @@ -10935,6 +10812,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -11170,13 +11052,13 @@ postcss@^6.0.14, postcss@^6.0.2: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^8.1.6, postcss@^8.2.1, postcss@^8.2.15, postcss@^8.3.0, postcss@^8.3.6: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== +postcss@^8.1.6, postcss@^8.2.1, postcss@^8.2.15, postcss@^8.3.0, postcss@^8.3.11: + version "8.3.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" + integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" + nanoid "^3.1.30" + picocolors "^1.0.0" source-map-js "^0.6.2" postinstall-postinstall@^2.1.0: @@ -11691,10 +11573,10 @@ react-virtualized-auto-sizer@^1.0.6: resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz#66c5b1c9278064c5ef1699ed40a29c11518f97ca" integrity sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ== -react-window@^1.8.5: - version "1.8.5" - resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz#a56b39307e79979721021f5d06a67742ecca52d1" - integrity sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q== +react-window@^1.8.6: + version "1.8.6" + resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.6.tgz#d011950ac643a994118632665aad0c6382e2a112" + integrity sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg== dependencies: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" @@ -12300,10 +12182,10 @@ sass-loader@^8.0.2: schema-utils "^2.6.1" semver "^6.3.0" -sass@^1.32.13, sass@^1.43.2: - version "1.43.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.2.tgz#c02501520c624ad6622529a8b3724eb08da82d65" - integrity sha512-DncYhjl3wBaPMMJR0kIUaH3sF536rVrOcqqVGmTZHQRRzj7LQlyGV7Mb8aCKFyILMr5VsPHwRYtyKpnKYlmQSQ== +sass@^1.32.13, sass@^1.43.4: + version "1.43.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f" + integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -12444,11 +12326,6 @@ serialize-javascript@^3.1.0: dependencies: randombytes "^2.1.0" -serializr@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/serializr/-/serializr-2.0.5.tgz#6f1e0d0c9cb95d177e1d41726f0e5cb28292483f" - integrity sha512-tT+S+APvbkXjs+l7E6xEgLhMrfq0DmhoCucB79j9FI781deDndjTEZknzEyzMKeETGyqL0kQprvEMCiCTMUGFQ== - serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"