diff --git a/craco.config.js b/craco.config.js index f1f35dc0fb..1f89538a1e 100644 --- a/craco.config.js +++ b/craco.config.js @@ -45,7 +45,7 @@ const cracoConfig = (module.exports = { jest: { configure: jestConfig => { jestConfig.transformIgnorePatterns = [ - '[/\\\\]node_modules[/\\\\](?!(@ion-phaser[/\\\\]react[/\\\\])).*\\.(js|jsx|ts|tsx)$', + '[/\\\\]node_modules[/\\\\](?!(@ion-phaser[/\\\\]react[/\\\\]|konva[/\\\\.*]|react-konva[/\\\\.*])).*\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$' ]; jestConfig.moduleNameMapper['ace-builds'] = '/node_modules/ace-builds'; diff --git a/package.json b/package.json index 7b66e3aaef..5166088b49 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,8 @@ "classnames": "^2.3.1", "flexboxgrid": "^6.3.1", "flexboxgrid-helpers": "^1.1.3", - "konva": "^8.2.3", "js-slang": "^0.5.23", + "konva": "^8.2.3", "lodash": "^4.17.21", "lz-string": "^1.4.4", "moment": "^2.29.1", @@ -116,14 +116,13 @@ "@wojtekmaj/enzyme-adapter-react-17": "^0.6.6", "babel-core": "6", "babel-runtime": "^6.26.0", + "canvas": "^2.8.0", "coveralls": "^3.1.1", "cross-env": "^7.0.3", "enzyme": "^3.11.0", "eslint": "7", "eslint-plugin-simple-import-sort": "^7.0.0", "husky": "^7.0.4", - "jest-canvas-mock": "^2.3.1", - "konva-node": "^0.11.2", "npm-run-all": "^4.1.5", "prettier": "^2.5.1", "react-scripts": "^4.0.3", @@ -150,4 +149,4 @@ "**/sass-loader": "^10", "**/redux": "~4.0" } -} +} \ No newline at end of file diff --git a/src/commons/sideContent/__tests__/SideContentEnvVisualizer.tsx b/src/commons/sideContent/__tests__/SideContentEnvVisualizer.tsx index 905205e049..69f2b00591 100644 --- a/src/commons/sideContent/__tests__/SideContentEnvVisualizer.tsx +++ b/src/commons/sideContent/__tests__/SideContentEnvVisualizer.tsx @@ -9,9 +9,7 @@ import SideContentEnvVisualizer from '../SideContentEnvVisualizer'; * This is to fix some weird bug with Jest and Konva * See https://github.com/konvajs/konva/issues/200 */ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const Konva = require('konva-node'); -Konva.isBrowser = false; +// Konva.isBrowser = false; test('EnvVisualizer component renders correctly', () => { const app = ; diff --git a/src/features/envVisualizer/EnvVisualizerLayout.tsx b/src/features/envVisualizer/EnvVisualizerLayout.tsx index a18823774f..95a63140c4 100644 --- a/src/features/envVisualizer/EnvVisualizerLayout.tsx +++ b/src/features/envVisualizer/EnvVisualizerLayout.tsx @@ -1,8 +1,7 @@ import { Context } from 'js-slang'; import { Frame } from 'js-slang/dist/types'; import React from 'react'; -import { Rect } from 'react-konva'; -import { Layer, Stage } from 'react-konva'; +import { Layer, Rect, Stage } from 'react-konva'; import { Level } from './components/Level'; import { ArrayValue } from './components/values/ArrayValue'; diff --git a/src/features/envVisualizer/EnvVisualizerTypes.ts b/src/features/envVisualizer/EnvVisualizerTypes.ts index 53e67000de..c822d8134e 100644 --- a/src/features/envVisualizer/EnvVisualizerTypes.ts +++ b/src/features/envVisualizer/EnvVisualizerTypes.ts @@ -3,7 +3,7 @@ import { EnvTreeNode as EnvironmentTreeNode } from 'js-slang/dist/createContext'; import { Environment } from 'js-slang/dist/types'; -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import { ArrayUnit } from './components/ArrayUnit'; import { Binding } from './components/Binding'; diff --git a/src/features/envVisualizer/EnvVisualizerUtils.ts b/src/features/envVisualizer/EnvVisualizerUtils.ts index 95fc22fb74..beb7515f5c 100644 --- a/src/features/envVisualizer/EnvVisualizerUtils.ts +++ b/src/features/envVisualizer/EnvVisualizerUtils.ts @@ -1,5 +1,7 @@ import { Environment } from 'js-slang/dist/types'; -import { Node } from 'konva/types/Node'; +import { Group } from 'konva/lib/Group'; +import { Node } from 'konva/lib/Node'; +import { Shape } from 'konva/lib/Shape'; import { cloneDeep } from 'lodash'; import { Value } from './components/values/Value'; @@ -182,7 +184,8 @@ export function setHoveredStyle(target: Node, hoveredAttrs: any = {}): void { const container = target.getStage()?.container(); container && (container.style.cursor = 'pointer'); - const nodes = Array.from(target.children); + const nodes: (Group | Shape | Node)[] = + target instanceof Group ? Array.from(target.children || []) : []; nodes.push(target); nodes.forEach(node => { node.setAttrs({ @@ -202,12 +205,14 @@ export function setHoveredStyle(target: Node, hoveredAttrs: any = {}): void { } /** Updates the styles of a Konva node and its children on unhover, and then redraw the layer */ -export function setUnhoveredStyle(target: Node, unhoveredAttrs: any = {}): void { +export function setUnhoveredStyle(target: Node | Group, unhoveredAttrs: any = {}): void { const container = target.getStage()?.container(); container && (container.style.cursor = 'default'); - const nodes = Array.from(target.children); + const nodes: (Group | Shape | Node)[] = + target instanceof Group ? Array.from(target.children || []) : []; nodes.push(target); + nodes.forEach(node => { node.setAttrs({ stroke: node.attrs.stroke ? Config.SA_WHITE.toString() : node.attrs.stroke, diff --git a/src/features/envVisualizer/components/ArrayEmptyUnit.tsx b/src/features/envVisualizer/components/ArrayEmptyUnit.tsx index 013b5a9c51..f544fbbdcb 100644 --- a/src/features/envVisualizer/components/ArrayEmptyUnit.tsx +++ b/src/features/envVisualizer/components/ArrayEmptyUnit.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React from 'react'; import { Rect } from 'react-konva'; diff --git a/src/features/envVisualizer/components/ArrayNullUnit.tsx b/src/features/envVisualizer/components/ArrayNullUnit.tsx index 6ae56a1ea0..15be247b92 100644 --- a/src/features/envVisualizer/components/ArrayNullUnit.tsx +++ b/src/features/envVisualizer/components/ArrayNullUnit.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React from 'react'; import { Line as KonvaLine } from 'react-konva'; import { setHoveredStyle, setUnhoveredStyle } from 'src/features/envVisualizer/EnvVisualizerUtils'; diff --git a/src/features/envVisualizer/components/ArrayUnit.tsx b/src/features/envVisualizer/components/ArrayUnit.tsx index 577b17c8f8..341b0aec01 100644 --- a/src/features/envVisualizer/components/ArrayUnit.tsx +++ b/src/features/envVisualizer/components/ArrayUnit.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React from 'react'; import { Config } from '../EnvVisualizerConfig'; diff --git a/src/features/envVisualizer/components/Frame.tsx b/src/features/envVisualizer/components/Frame.tsx index 4ab7d4efe4..b25dbb9e66 100644 --- a/src/features/envVisualizer/components/Frame.tsx +++ b/src/features/envVisualizer/components/Frame.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React from 'react'; import { Rect } from 'react-konva'; diff --git a/src/features/envVisualizer/components/Text.tsx b/src/features/envVisualizer/components/Text.tsx index 6f711583bf..01dd24b864 100644 --- a/src/features/envVisualizer/components/Text.tsx +++ b/src/features/envVisualizer/components/Text.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React, { RefObject } from 'react'; import { Label as KonvaLabel, Tag as KonvaTag, Text as KonvaText } from 'react-konva'; diff --git a/src/features/envVisualizer/components/arrows/GenericArrow.tsx b/src/features/envVisualizer/components/arrows/GenericArrow.tsx index f7769de24a..98bce3e5b1 100644 --- a/src/features/envVisualizer/components/arrows/GenericArrow.tsx +++ b/src/features/envVisualizer/components/arrows/GenericArrow.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import { Arrow as KonvaArrow } from 'react-konva'; import { Config, ShapeDefaultProps } from '../../EnvVisualizerConfig'; diff --git a/src/features/envVisualizer/components/shapes/RoundedRect.tsx b/src/features/envVisualizer/components/shapes/RoundedRect.tsx index 0c4c094c60..aa79fb79e9 100644 --- a/src/features/envVisualizer/components/shapes/RoundedRect.tsx +++ b/src/features/envVisualizer/components/shapes/RoundedRect.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React from 'react'; import { Shape } from 'react-konva'; diff --git a/src/features/envVisualizer/components/values/FnValue.tsx b/src/features/envVisualizer/components/values/FnValue.tsx index 173a441cd1..53a143803e 100644 --- a/src/features/envVisualizer/components/values/FnValue.tsx +++ b/src/features/envVisualizer/components/values/FnValue.tsx @@ -1,5 +1,5 @@ import { Environment } from 'js-slang/dist/types'; -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React, { RefObject } from 'react'; import { Circle, diff --git a/src/features/envVisualizer/components/values/GlobalFnValue.tsx b/src/features/envVisualizer/components/values/GlobalFnValue.tsx index a5e7e11311..23df2e4b82 100644 --- a/src/features/envVisualizer/components/values/GlobalFnValue.tsx +++ b/src/features/envVisualizer/components/values/GlobalFnValue.tsx @@ -1,4 +1,4 @@ -import { KonvaEventObject } from 'konva/types/Node'; +import { KonvaEventObject } from 'konva/lib/Node'; import React, { RefObject } from 'react'; import { Circle, diff --git a/src/setupTests.ts b/src/setupTests.ts index 2a29574ce4..d42e392be3 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -1,5 +1,3 @@ -import 'jest-canvas-mock'; - import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import { configure } from 'enzyme'; configure({ adapter: new Adapter() }); diff --git a/yarn.lock b/yarn.lock index c2adcec915..9e864f552a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1587,19 +1587,19 @@ integrity sha512-58b0K8pNUVZXGbua4IJQ+1K+E+jz3MkhDazZaaeKlD+sOLYR9iTHIbicV/I5K16ivYW6R9lONiT3dz8rMeFJ1w== "@mapbox/node-pre-gyp@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950" - integrity sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz#32abc8a5c624bc4e46c43d84dfb8b26d33a96f58" + integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== dependencies: detect-libc "^1.0.3" https-proxy-agent "^5.0.0" make-dir "^3.1.0" - node-fetch "^2.6.1" + node-fetch "^2.6.5" nopt "^5.0.0" - npmlog "^4.1.2" + npmlog "^5.0.1" rimraf "^3.0.2" - semver "^7.3.4" - tar "^6.1.0" + semver "^7.3.5" + tar "^6.1.11" "@maxim_mazurok/gapi.client.drive@latest": version "3.0.20210801" @@ -3090,6 +3090,19 @@ aproba@^1.0.3, aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -4091,7 +4104,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz#90a330057f8ff75bfe97a94d047d5e14fabb2ee8" integrity sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw== -canvas@^2.5.0: +canvas@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.8.0.tgz#f99ca7f25e6e26686661ffa4fec1239bbef74461" integrity sha512-gLTi17X8WY9Cf5GZ2Yns8T5lfBOcGgFehDFb+JQwDqdOoBOcECS9ZWMEAqMSVcMYwXD659J8NyzjRY/2aE+C2Q== @@ -4362,7 +4375,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -4375,6 +4388,11 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + color@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -4505,7 +4523,7 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -4879,11 +4897,6 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssfontparser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" - integrity sha1-9AIvyPlwDGgCnVQghK+69CWj8+M= - cssnano-preset-default@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" @@ -6514,6 +6527,21 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -6803,7 +6831,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -7794,14 +7822,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-canvas-mock@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz#9535d14bc18ccf1493be36ac37dd349928387826" - integrity sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg== - dependencies: - cssfontparser "^1.2.1" - moo-color "^1.0.2" - jest-changed-files@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" @@ -8479,23 +8499,10 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -konva-node@^0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/konva-node/-/konva-node-0.11.2.tgz#d5637e90e18fd6c579e92bfc6ae5b0e7df49128e" - integrity sha512-puuzsIT+ykOBRWK6+M6TNyZnhqQKTiIK82GQdeTummog16WB+Fi/98vqMQGP9SIu2wp816lc04uK6TJ82HOuLQ== - dependencies: - canvas "^2.5.0" - konva "^7" - -konva@^7: - version "7.2.5" - resolved "https://registry.yarnpkg.com/konva/-/konva-7.2.5.tgz#9b4ac3a353e6be66e3e69123bf2a0cbc61efeb26" - integrity sha512-yk/li8rUF+09QNlOdkwbEId+QvfATMe/aMGVouWW1oFoUVTYWHsQuIAE6lWy11DK8mLJEJijkNAXC5K+NVlMew== - konva@^8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/konva/-/konva-8.2.3.tgz#14723b0d67d688bd8da532a804d9cd44913297b4" - integrity sha512-2hDlDzB9goNgV0Fm6oQqbq3ZISL34bOYvIpe4iXXQmOiPFFy1o3wwo0z0CX2x2Gv+fS6SHDR/JsRNRtEquApXA== + version "8.3.1" + resolved "https://registry.yarnpkg.com/konva/-/konva-8.3.1.tgz#9243cbfada641fdda166446c61cbfc1b6bf00217" + integrity sha512-9YVM/nKWKTdGppPkhVY+E1FI+brrSmPygPO1qUSH2Dd7q0bgCX8V9DLqOp15myY7Wxmy5JDx9dWdd0fQZpikZw== language-subtag-registry@~0.3.2: version "0.3.21" @@ -9073,13 +9080,6 @@ moment@^2.29.1: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -moo-color@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.2.tgz#837c40758d2d58763825d1359a84e330531eca64" - integrity sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg== - dependencies: - color-name "^1.1.4" - moo@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" @@ -9253,6 +9253,13 @@ 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.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" + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" @@ -9433,6 +9440,16 @@ npmlog@^4.0.1, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -12094,7 +12111,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -12652,6 +12669,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -12774,6 +12800,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -12935,7 +12968,7 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2, tar@^6.1.0: +tar@^6.0.2: version "6.1.6" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.6.tgz#c23d797b0a1efe5d479b1490805c5443f3560c5d" integrity sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g== @@ -12947,6 +12980,18 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -13170,6 +13215,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -13705,6 +13755,11 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -13858,6 +13913,14 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" @@ -13909,6 +13972,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"