diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..8d4e7a90 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,24 @@ +{ + "extends": "@stoplight", + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "./tsconfig.json" + }, + "rules": { + "no-param-reassign": "off", + "@typescript-eslint/prefer-nullish-coalescing": "error", + "@typescript-eslint/prefer-for-of": "error", + "@typescript-eslint/no-throw-literal": "error", + "@typescript-eslint/prefer-optional-chain": "error", + "@typescript-eslint/no-floating-promises": ["error", { "ignoreVoid": true }], + "no-console": "warn" + }, + "overrides": [ + { + "files": ["*.spec.{ts,tsx}"], + "env": { + "jest": true + } + } + ] +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2fb45d71..7894fd11 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @stoplightio/void-crew +* @stoplightio/void-crew @stoplightio/undefined diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..5553ba6f --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('@stoplight/eslint-config/prettier.config'), +}; diff --git a/__mocks__/react.ts b/__mocks__/react.ts index 2eb89cb5..5fd9ce8b 100644 --- a/__mocks__/react.ts +++ b/__mocks__/react.ts @@ -1,5 +1,5 @@ // https://github.com/airbnb/enzyme/issues/1875#issuecomment-451177239 -const r = require.requireActual('react'); +const r = jest.requireActual('react'); module.exports = { ...r, diff --git a/jest.config.js b/jest.config.js index 10964614..d002efa2 100644 --- a/jest.config.js +++ b/jest.config.js @@ -5,7 +5,7 @@ module.exports = { moduleNameMapper: { '\\.css$': '/__mocks__/styleMock.js' }, - testMatch: ['/src/**/__tests__/*.(ts|js)?(x)'], + testMatch: ['/src/**/__tests__/*.(spec|test).(ts|js)?(x)'], transform: { '\\.tsx?$': 'ts-jest' }, diff --git a/package.json b/package.json index cf3538c7..0923ffca 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,14 @@ "**/*" ], "engines": { - "node": ">=10.0" + "node": ">=10.18" }, "scripts": { "build": "sl-scripts bundle --sourcemap", + "postbuild": "yarn test.packaging", "build.docs": "build-storybook -c .storybook -o docs-auto", "commit": "git-cz", - "lint": "tslint -c tslint.json -p tsconfig.json 'src/**/*.{ts,tsx}'", + "lint": "eslint 'src/**/*.{ts,tsx}'", "lint.fix": "yarn lint --fix", "release": "sl-scripts release", "release.docs": "sl-scripts release:docs", @@ -32,65 +33,69 @@ "test": "jest", "test.prod": "yarn lint && yarn test --coverage --maxWorkers=2", "test.update": "yarn test --updateSnapshot", - "test.watch": "yarn test --watch" + "test.watch": "yarn test --watch", + "test.packaging": "node -e \"require('./dist/index.js')\" && node --input-type=module -e \"import './dist/index.mjs'\"", + "size-limit": "size-limit" }, "peerDependencies": { - "@stoplight/markdown-viewer": "^3", - "@stoplight/ui-kit": "^3", - "mobx": "^5", + "@stoplight/markdown-viewer": "^5.0.0-beta.5", + "@stoplight/mosaic": "^1.0.0-beta.59", "react": ">=16.8", "react-dom": ">=16.8" }, "dependencies": { - "@stoplight/json": "^3.5.1", - "@stoplight/json-schema-merge-allof": "^0.7.2", + "@fortawesome/free-solid-svg-icons": "^5.15.2", + "@stoplight/json": "^3.10.0", + "@stoplight/json-schema-tree": "^2.0.1", "@stoplight/react-error-boundary": "^1.0.0", - "@stoplight/tree-list": "^5.0.3", + "@types/json-schema": "^7.0.7", "classnames": "^2.2.6", - "lodash": "^4.17.15", - "mobx-react-lite": "^1.4.1", - "pluralize": "^8.0.0" + "lodash": "^4.17.19" }, "devDependencies": { - "@emotion/core": "^10.0.16", - "@emotion/styled": "^10.0.15", - "@rollup/plugin-commonjs": "^11.1.0", - "@rollup/plugin-typescript": "^3.1.1", "@sambego/storybook-state": "^1.3.6", - "@stoplight/markdown-viewer": "^3.5.5", - "@stoplight/scripts": "^8.2.0", - "@stoplight/storybook-config": "^2.0.5", - "@stoplight/types": "11.0.0", - "@stoplight/ui-kit": "3.0.0-beta.2", - "@types/classnames": "^2.2.9", - "@types/enzyme": "3.10.3", - "@types/jest": "^24.0.18", - "@types/json-schema": "^7.0.3", + "@size-limit/preset-big-lib": "^4.11.0", + "@stoplight/eslint-config": "^1.2.0", + "@stoplight/markdown-viewer": "^5.0.0-beta.5", + "@stoplight/mosaic": "^1.0.0-beta.59", + "@stoplight/mosaic-code-viewer": "^1.0.0-beta.59", + "@stoplight/scripts": "9.0.2", + "@stoplight/storybook-config": "^2.0.6", + "@stoplight/types": "^11.9.0", + "@types/classnames": "^2.2.11", + "@types/enzyme": "^3.10.8", + "@types/jest": "^26.0.18", "@types/lodash": "^4.14.149", "@types/node": "^12.7.2", - "@types/pluralize": "^0.0.29", "@types/react": "16.9.2", "@types/react-dom": "16.9.0", "@types/treeify": "^1.0.0", - "babel-jest": "^24.9.0", - "babel-loader": "^8.0.6", - "copyfiles": "^2.1.1", - "emotion-theming": "^10.0.14", - "enzyme": "3.10.0", - "enzyme-adapter-react-16": "1.14.0", - "enzyme-to-json": "3.4.0", - "jest": "^24.9.0", - "jest-enzyme": "7.1.0", - "mobx": "^5.13.0", - "prettier": "^1.19.1", - "react": "16.9.0", - "react-dom": "16.9.0", + "@typescript-eslint/eslint-plugin": "^4.9.1", + "@typescript-eslint/parser": "^4.9.1", + "babel-jest": "^26.6.3", + "babel-loader": "^8.2.2", + "copyfiles": "^2.4.1", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.5", + "enzyme-to-json": "^3.6.1", + "eslint": "^7.15.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jest": "^24.1.3", + "eslint-plugin-prettier": "^3.1.3", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^5.0.2", + "fast-glob": "^3.2.4", + "jest": "^26.6.2", + "jest-enzyme": "^7.1.2", + "prettier": "^2.2.1", + "react": "^16.14.0", + "react-dom": "^16.14.0", "rollup-plugin-terser": "^5.3.0", + "size-limit": "^4.11.0", "treeify": "^1.1.0", - "ts-jest": "^24.0.2", - "tslint": "^5.19.0", - "tslint-config-stoplight": "^1.4.0", - "typescript": "^4.0.3" + "ts-jest": "^26.4.4", + "typescript": "^4.0.5" }, "lint-staged": { "*.{ts,tsx}$": [ @@ -117,9 +122,12 @@ "extends": "@stoplight/scripts/release" }, "typings": "src/index.d.ts", - "prettier": { - "printWidth": 120, - "trailingComma": "es5", - "singleQuote": true - } + "size-limit": [ + { + "path": "dist/index.esm.js", + "limit": "150 KB", + "brotli": true, + "running": false + } + ] } diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 421a2a06..00000000 --- a/rollup.config.js +++ /dev/null @@ -1,42 +0,0 @@ -import * as path from 'path'; -import typescript from '@rollup/plugin-typescript'; -import { terser } from 'rollup-plugin-terser'; -import commonjs from '@rollup/plugin-commonjs'; - -const BASE_PATH = process.cwd(); - -const plugins = [ - typescript({ - tsconfig: path.resolve(BASE_PATH, 'tsconfig.build.json'), - include: ['src/**/*.{ts,tsx}'], - }), - terser(), - commonjs(), -]; - -export default [ - { - input: path.resolve(BASE_PATH, 'src/index.ts'), - plugins, - output: [ - { - file: path.resolve(BASE_PATH, 'dist/index.cjs.js'), - format: 'cjs', - }, - { - file: path.resolve(BASE_PATH, 'dist/index.es.js'), - format: 'esm', - }, - ], - }, - { - input: path.resolve(BASE_PATH, 'src/tree/index.ts'), - plugins, - output: [ - { - file: path.resolve(BASE_PATH, 'dist/tree/index.js'), - format: 'esm', - }, - ], - }, -]; diff --git a/src/__fixtures__/allOf/allOf-resolved.json b/src/__fixtures__/allOf/allOf-resolved.json deleted file mode 100644 index aa0e6446..00000000 --- a/src/__fixtures__/allOf/allOf-resolved.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "type": "object", - "properties": { - "AllOfMergeObjects": { - "allOf": [ - { - "properties": { - "Object1Property": { - "type": "string", - "minLength": 1, - "x-val": "lol" - } - } - }, - { - "properties": { - "Object2Property": { - "type": "number", - "maximum": 2 - } - } - } - ], - "type": "object" - }, - "AllOfMergeValidations": { - "allOf": [ - { - "minLength": 1 - }, - { - "maxLength": 2 - } - ], - "type": "string" - }, - "AllOfMergeTakeMoreLogicalValidation": { - "allOf": [ - { - "maximum": 1 - }, - { - "maximum": 2 - } - ], - "type": "number" - }, - "AllOfMergeObjectPropertyValidations": { - "allOf": [ - { - "properties": { - "Property": { - "type": "string", - "minLength": 1 - } - } - }, - { - "properties": { - "Property": { - "type": "string", - "maxLength": 2 - } - } - } - ], - "type": "object" - }, - "AllOfMergeRemovesUnresolvedRefs": { - "allOf": [ - { - "type": "object", - "properties": { - "street_address": { - "type": "string" - }, - "city": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": ["street_address", "city", "state"] - }, - { "$ref": "#/definitions/ref1" } - ] - } - } -} diff --git a/src/__fixtures__/array-of-allofs.json b/src/__fixtures__/arrays/of-allofs.json similarity index 100% rename from src/__fixtures__/array-of-allofs.json rename to src/__fixtures__/arrays/of-allofs.json diff --git a/src/__fixtures__/arrays/of-arrays.json b/src/__fixtures__/arrays/of-arrays.json new file mode 100644 index 00000000..58891b18 --- /dev/null +++ b/src/__fixtures__/arrays/of-arrays.json @@ -0,0 +1,17 @@ +{ + "type": "array", + "items": { + "type": "object", + "properties": { + "bar": { + "type": "integer" + }, + "foo": { + "type": "array", + "items": { + "type": "array" + } + } + } + } +} diff --git a/src/__fixtures__/arrays/of-complex-objects.json b/src/__fixtures__/arrays/of-complex-objects.json new file mode 100644 index 00000000..6c02a5ef --- /dev/null +++ b/src/__fixtures__/arrays/of-complex-objects.json @@ -0,0 +1,94 @@ +{ + "type": [ + "array" + ], + "items":{ + "title": "User", + "type": "object", + "properties": { + "name": { + "type": "string", + "const": "Constant name", + "examples": ["Example name", "Different name"], + "description": "The user's full name. This description can be long and should truncate once it reaches the end of the row. If it's not truncating then theres and issue that needs to be fixed. Help!" + }, + "age": { + "type": "number", + "minimum": 10, + "maximum": 40, + "multipleOf": 10, + "default": 20, + "enum": [10, 20, 30, 40], + "readOnly": true + }, + "completed_at": { + "type": "string", + "format": "date-time", + "writeOnly": true, + "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$" + }, + "items": { + "type": ["null", "array"], + "items": { + "type": ["string", "number"] + }, + "minItems": 1, + "maxItems": 4, + "description": "This description can be long and should truncate once it reaches the end of the row. If it's not truncating then theres and issue that needs to be fixed. Help!" + }, + "email": { + "type": "string", + "format": "email", + "examples": ["one@email.com", "two@email.com"], + "deprecated": true, + "default": "default@email.com", + "minLength": 2 + }, + "plan": { + "anyOf": [ + { + "type": "object", + "properties": { + "foo": { + "type": "string" + }, + "bar": { + "type": "string" + } + }, + "deprecated": false, + "example": "hi", + "required": ["foo", "bar"] + }, + { + "type": "array", + "items": { + "type": "integer" + } + } + ] + }, + "permissions": { + "type": ["string", "object"], + "properties": { + "ids": { + "type": "array", + "items": { + "type": "integer" + } + } + } + }, + "ref": { + "$ref": "#/properties/permissions" + } + }, + "patternProperties": { + "^id_": { "type": "number" }, + "foo": { "type": "integer" }, + "_name$": { "type": "string" } + }, + "required": ["name", "age", "completed_at"] + } + +} \ No newline at end of file diff --git a/src/__fixtures__/array-of-objects.json b/src/__fixtures__/arrays/of-objects.json similarity index 100% rename from src/__fixtures__/array-of-objects.json rename to src/__fixtures__/arrays/of-objects.json diff --git a/src/__fixtures__/array-of-refs.json b/src/__fixtures__/arrays/of-refs.json similarity index 100% rename from src/__fixtures__/array-of-refs.json rename to src/__fixtures__/arrays/of-refs.json diff --git a/src/__fixtures__/arrays/with-multiple-arrayish-items.json b/src/__fixtures__/arrays/with-multiple-arrayish-items.json new file mode 100644 index 00000000..e45d26da --- /dev/null +++ b/src/__fixtures__/arrays/with-multiple-arrayish-items.json @@ -0,0 +1,26 @@ +{ + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "msg": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "required": [ + "code", + "msg" + ] + } + ] +} diff --git a/src/__fixtures__/arrays/with-ordered-items.json b/src/__fixtures__/arrays/with-ordered-items.json new file mode 100644 index 00000000..0273e023 --- /dev/null +++ b/src/__fixtures__/arrays/with-ordered-items.json @@ -0,0 +1,11 @@ +{ + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "string" + } + ] +} diff --git a/src/__fixtures__/arrays/with-single-arrayish-items.json b/src/__fixtures__/arrays/with-single-arrayish-items.json new file mode 100644 index 00000000..f15e8d3d --- /dev/null +++ b/src/__fixtures__/arrays/with-single-arrayish-items.json @@ -0,0 +1,23 @@ +{ + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "msg": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "required": [ + "code", + "msg" + ] + } + ] +} diff --git a/src/__fixtures__/allOf/allOf-schema.json b/src/__fixtures__/combiners/allOfs/base.json similarity index 100% rename from src/__fixtures__/allOf/allOf-schema.json rename to src/__fixtures__/combiners/allOfs/base.json diff --git a/src/__fixtures__/complex-allOf-model.json b/src/__fixtures__/combiners/allOfs/complex.json similarity index 100% rename from src/__fixtures__/complex-allOf-model.json rename to src/__fixtures__/combiners/allOfs/complex.json diff --git a/src/__fixtures__/combiner-schema.json b/src/__fixtures__/combiners/allOfs/todo-full-2.json similarity index 100% rename from src/__fixtures__/combiner-schema.json rename to src/__fixtures__/combiners/allOfs/todo-full-2.json diff --git a/src/__fixtures__/todo-allof.schema.json b/src/__fixtures__/combiners/allOfs/todo-full.json similarity index 100% rename from src/__fixtures__/todo-allof.schema.json rename to src/__fixtures__/combiners/allOfs/todo-full.json diff --git a/src/__fixtures__/allof-with-type.json b/src/__fixtures__/combiners/allOfs/with-type.json similarity index 100% rename from src/__fixtures__/allof-with-type.json rename to src/__fixtures__/combiners/allOfs/with-type.json diff --git a/src/__fixtures__/oneof-with-array-type.json b/src/__fixtures__/combiners/oneof-with-array-type.json similarity index 100% rename from src/__fixtures__/oneof-with-array-type.json rename to src/__fixtures__/combiners/oneof-with-array-type.json diff --git a/src/__fixtures__/combiners/oneof-within-array-item.json b/src/__fixtures__/combiners/oneof-within-array-item.json new file mode 100644 index 00000000..79a0b3dd --- /dev/null +++ b/src/__fixtures__/combiners/oneof-within-array-item.json @@ -0,0 +1,31 @@ +{ + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "title": "A", + "properties": { + "foo": { + "type": "string", + "enum": [ + "test" + ] + } + } + }, + { + "type": "object", + "title": "B", + "properties": { + "foo": { + "type": "number" + }, + "bar": { + "type": "string" + } + } + } + ] + } +} diff --git a/src/__fixtures__/default-schema.json b/src/__fixtures__/default-schema.json index 42b5320a..7f61a2b2 100644 --- a/src/__fixtures__/default-schema.json +++ b/src/__fixtures__/default-schema.json @@ -4,34 +4,40 @@ "properties": { "name": { "type": "string", + "const": "Constant name", + "examples": ["Example name", "Different name"], "description": "The user's full name. This description can be long and should truncate once it reaches the end of the row. If it's not truncating then theres and issue that needs to be fixed. Help!" }, "age": { "type": "number", - "minimum": 0, - "maximum": 150, + "minimum": 10, + "maximum": 40, "multipleOf": 10, - "exclusiveMinimum": true, - "exclusiveMaximum": true, + "default": 20, + "enum": [10, 20, 30, 40], "readOnly": true }, "completed_at": { "type": "string", "format": "date-time", - "writeOnly": true + "writeOnly": true, + "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$" }, "items": { "type": ["null", "array"], "items": { "type": ["string", "number"] }, + "minItems": 1, + "maxItems": 4, "description": "This description can be long and should truncate once it reaches the end of the row. If it's not truncating then theres and issue that needs to be fixed. Help!" }, "email": { "type": "string", "format": "email", - "example": "email@email.com", + "examples": ["one@email.com", "two@email.com"], "deprecated": true, + "default": "default@email.com", "minLength": 2 }, "plan": { diff --git a/src/__fixtures__/nullish-ref.schema.json b/src/__fixtures__/nullish-ref.schema.json deleted file mode 100644 index 61dc3cea..00000000 --- a/src/__fixtures__/nullish-ref.schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "$ref": null -} diff --git a/src/__fixtures__/ref/resolved.json b/src/__fixtures__/ref/resolved.json deleted file mode 100644 index 796b3586..00000000 --- a/src/__fixtures__/ref/resolved.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "definitions": { - "address": { - "type": "object", - "properties": { - "street_address": { - "type": "string" - }, - "city": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "street_address", - "city", - "state" - ] - } - }, - "type": "object", - "properties": { - "billing_address": { - "type": "object", - "properties": { - "street_address": { - "type": "string" - }, - "city": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "street_address", - "city", - "state" - ] - }, - "shipping_address": { - "type": "object", - "properties": { - "street_address": { - "type": "string" - }, - "city": { - "type": "string" - }, - "state": { - "type": "string" - } - }, - "required": [ - "street_address", - "city", - "state" - ] - } - } -} diff --git a/src/__fixtures__/ref/original.json b/src/__fixtures__/references/base.json similarity index 100% rename from src/__fixtures__/ref/original.json rename to src/__fixtures__/references/base.json diff --git a/src/__fixtures__/references/nested.json b/src/__fixtures__/references/nested.json new file mode 100644 index 00000000..a318cec4 --- /dev/null +++ b/src/__fixtures__/references/nested.json @@ -0,0 +1,21 @@ +{ + "$ref": "#/__bundled__/repo", + "__bundled__": { + "repo": { + "properties": { + "parent": { + "allOf": [ + { + "$ref": "#/__bundled__/repo" + }, + { + "description": "something" + } + ] + } + }, + "type": "object" + } + } +} + \ No newline at end of file diff --git a/src/__fixtures__/references/nullish.json b/src/__fixtures__/references/nullish.json new file mode 100644 index 00000000..0bde5189 --- /dev/null +++ b/src/__fixtures__/references/nullish.json @@ -0,0 +1,7 @@ +{ + "properties": { + "empty-ref": { + "$ref": null + } + } +} diff --git a/src/__stories__/JsonSchemaViewer.tsx b/src/__stories__/JsonSchemaViewer.tsx index b05e6ab1..c586d6d7 100644 --- a/src/__stories__/JsonSchemaViewer.tsx +++ b/src/__stories__/JsonSchemaViewer.tsx @@ -1,29 +1,32 @@ -import * as React from 'react'; - -import { Button, Checkbox, Icon } from '@stoplight/ui-kit'; +import { Button, Flex, InvertTheme, subscribeTheme } from '@stoplight/mosaic'; import { action } from '@storybook/addon-actions'; -import { boolean, number, object, select, text, withKnobs } from '@storybook/addon-knobs'; +import { boolean, number, object, select, withKnobs } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; import { JSONSchema4 } from 'json-schema'; -import { JsonSchemaViewer, RowRenderer, SchemaRow } from '../'; +import * as React from 'react'; -const allOfSchemaResolved = require('../__fixtures__/allOf/allOf-resolved.json'); +import { JsonSchemaViewer, RowAddonRenderer } from '../'; +import { Wrapper } from './utils/Wrapper'; + +const allOfSchema = require('../__fixtures__/combiners/allOfs/base.json'); const schema = require('../__fixtures__/default-schema.json'); const stressSchema = require('../__fixtures__/stress-schema.json'); -import { Wrapper } from './utils/Wrapper'; +const refSchema = require('../__fixtures__/references/base.json'); +const nullRefSchema = require('../__fixtures__/references/nullish.json'); +const brokenRefArraySchema = require('../__fixtures__/arrays/of-refs.json'); +const oneOfWithArraySchema = require('../__fixtures__/combiners/oneof-with-array-type.json'); +const oneOfWithArraySchema2 = require('../__fixtures__/combiners/oneof-within-array-item.json'); +const arrayOfComplexObjects = require('../__fixtures__/arrays/of-complex-objects.json'); + +subscribeTheme({ mode: 'light' }); storiesOf('JsonSchemaViewer', module) .addDecorator(withKnobs) .addDecorator(storyFn => {storyFn()}) .add('default', () => ( )) .add('custom schema', () => ( )) - .add('custom row renderer', () => { - const customRowRenderer: RowRenderer = (node, rowOptions) => { + .add('custom row addon', () => { + const customRowAddonRenderer: RowAddonRenderer = () => { return ( - <> - -
-
- + + + + + + + + +
+ +
+
+
+
+
+
+
+
foo
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
bar
+ string +
+ required +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
permissions
+
+ string + or + object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ids
+ array of integers +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ref
+ #/properties/permissions +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
^id_
+ number +
(pattern property)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ integer +
(pattern property)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
_name$
+ string +
(pattern property)
+
+
+
+
+
+
+
+ -
-
-
-
-
or
-
+
+" +`; + +exports[`HTML Output should match arrays/of-objects.json 1`] = ` +"
+
+
+
+
+
+
+
+
+
+
+
propertyIsArrayOfObjects
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+
+
ArrayObjectProperty
+ string +
+
+
+
+
+
+
+
-
array[number]
-
@@ -486,39 +1452,34 @@ exports[`HTML Output given array with oneOf containing items, should merge it co " `; -exports[`HTML Output given complex type that includes array and complex array subtype, should not ignore subtype 1`] = ` -"
-
+exports[`HTML Output should match arrays/of-refs.json 1`] = ` +"
+
-
+
- object -
{1}
+
+
+
+
$ref(./models/todo-full.json)[]
+
+
-
-
-
-
-
+
-
items
- null - or - array[string,number] -
- - -
- This description can be long and should truncate once it reaches the end of the row. If it's not - truncating then theres and issue that needs to be fixed. Help! +
+
+
+
./models/todo-full.json
+
- - +
+
+
-
@@ -526,31 +1487,99 @@ exports[`HTML Output given complex type that includes array and complex array su " `; -exports[`HTML Output given multiple object and string type, should process properties 1`] = ` -"
-
+exports[`HTML Output should match arrays/with-multiple-arrayish-items.json 1`] = ` +"
+
-
+
- string - or - object +
+
+
array
+
-
{1}
-
-
-
-
-
+
-
ids
- array[integer] +
+
+
+
+
number
+
+
+
+
+
+
+
+
+
+
+
+
object
+
+
+
+
+
+
+
+
+
+
+
+
+
code
+ number +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
msg
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
ref
+ string +
+
+
+
+
+
+
+
+
@@ -558,282 +1587,47 @@ exports[`HTML Output given multiple object and string type, should process prope " `; -exports[`HTML Output given oneOf combiner placed next to allOf given allOf merging disabled, should still merge 1`] = ` -"
-
+exports[`HTML Output should match arrays/with-ordered-items.json 1`] = ` +"
+
-
-
oneOf
-
-
-
-
-
-
-
- - - -
allOf
-
-
-
-
-
-
-
- - - +
- object -
{2}
+
+
+
+
array
+
+
-
-
-
-
-
-
-
type
- string -
- - -
- required - +1 -
-
-
-
-
-
-
-
-
-
-
enabled
- boolean - - -
Is this account enabled
-
-
-
-
-
-
-
-
-
-
- - - -
-
and
-
-
-
- Admin -
{3}
-
-
-
-
-
-
-
-
-
-
root
- boolean -
-
-
-
-
-
-
-
-
-
group
- string -
-
-
-
-
-
-
-
-
-
expirationDate
- string -
-
-
-
-
-
-
-
- - - -
-
or
-
-
-
allOf
-
-
-
-
-
-
-
- - - -
- object -
{2}
-
-
-
-
-
-
-
-
+
-
type
- string -
- - +
- required - +1 +
+
+
number
+
+
- - -
-
-
-
-
-
-
-
enabled
- boolean - - -
Is this account enabled
-
-
-
-
-
-
-
-
-
-
- - - -
-
and
-
-
-
- Editor -
{2}
-
-
-
-
-
-
-
-
-
-
supervisor
- string -
-
-
-
-
-
-
-
-
-
key
- string -
-
-
-
-
-
-
-
-
allOf
-
-
-
-
-
-
-
- - - -
- object -
{2}
+
+
-
-
-
-
-
-
-
type
- string -
- - +
- required - +1 +
+
+
string
+
+
- - -
-
-
-
-
-
-
-
enabled
- boolean - - -
Is this account enabled
-
-
+
+
-
@@ -841,168 +1635,63 @@ exports[`HTML Output given oneOf combiner placed next to allOf given allOf mergi " `; -exports[`HTML Output given oneOf combiner placed next to allOf given allOf merging enabled, should merge contents of allOf combiners 1`] = ` -"
-
-
-
-
oneOf
-
-
-
-
-
-
-
- - - -
- Admin -
{5}
-
-
-
-
-
-
-
-
-
-
type
- string -
- - +exports[`HTML Output should match arrays/with-single-arrayish-items.json 1`] = ` +"
+
+
+
+
array of:
+
+
- required - +1 +
+
+
+
+
code
+ number +
+ required +
+
+
+
- - -
-
-
-
-
-
-
-
enabled
- boolean - - -
Is this account enabled
-
-
-
-
-
-
-
-
-
-
-
-
root
- boolean -
-
-
-
-
-
-
-
-
-
group
- string -
-
-
-
-
-
-
-
-
-
expirationDate
- string -
-
-
-
-
-
-
-
- - - -
-
or
-
-
-
- Editor -
{4}
-
-
-
-
-
-
-
-
-
-
type
- string -
- - +
+
+
- required - +1 +
+
+
+
+
msg
+ string +
+ required +
+
+
+
- - -
-
-
-
-
-
-
-
enabled
- boolean - - -
Is this account enabled
-
-
-
-
-
-
-
-
-
-
-
-
supervisor
- string -
-
-
-
-
-
-
-
-
-
key
- string +
+
+
+
+
+
+
+
+
ref
+ string +
+
+
+
+
+
+
-
@@ -1010,1236 +1699,493 @@ exports[`HTML Output given oneOf combiner placed next to allOf given allOf mergi " `; -exports[`HTML Output given read mode, should populate proper nodes 1`] = ` -"
-
-
-
+exports[`HTML Output should match combiners/allOfs/base.json 1`] = ` +"
+
+
+
- string - or - object +
+
+
+
+
+
AllOfMergeObjects
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
Object1Property
+ string +
+
+
+
>= 1 characters
+
+
+
+
+
+
+
+
+
+
+
+
Object2Property
+ number +
+
+
+
<= 2
+
+
+
+
-
{2}
-
-
-
-
-
-
-
id
- string +
+
+
+
+
+
AllOfMergeValidations
+ string +
+
+
+
+ >= 1 characters + <= 2 characters +
+
+
+
- read-only
-
-
-
-
-
-
-
description
- string +
+
+
+
+
+
AllOfMergeTakeMoreLogicalValidation
+ number +
+
+
+
<= 1
+
+
+
- write-only
-
-
-
-
-" -`; - -exports[`HTML Output given standalone mode, should populate proper nodes 1`] = ` -"
-
-
-
- string - or - object +
+
+
+
+
+
AllOfMergeObjectPropertyValidations
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
Property
+ string +
+
+
+
+ >= 1 characters + <= 2 characters +
+
+
+
+
-
{2}
-
-
-
-
-
-
-
id
- string -
- read-only -
-
-
-
-
-
-
-
-
description
- string -
- write-only -
-
-
-
-
-" -`; - -exports[`HTML Output given visible $ref node, should try to inject the title immediately 1`] = ` -"
-
-
-
-
- object -
{2}
-
-
-
-
-
-
-
-
- - - -
-
foo
- User -
-
-
-
-
-
-
-
- - - -
-
user
- User -
{1}
-
-
-
-
-
-
-
-
-
-
name
- string -
-
-
-
-
-
-" -`; - -exports[`HTML Output given write mode, should populate proper nodes 1`] = ` -"
-
-
-
-
-
- string - or - object -
-
{2}
-
-
-
-
-
-
-
-
-
-
id
- string -
- read-only -
-
-
-
-
-
-
-
-
description
- string -
- write-only -
-
-
-
-
-" -`; - -exports[`HTML Output should match allof-with-type.json 1`] = ` -"
-
-
-
-
- oneOf - - -
An example model to demonstrate a bug.
-
-
-
-
-
-
-
-
-
-
- - - -
- BugExample -
{6}
- - -
An example model to demonstrate a bug.
-
-
-
-
-
-
-
-
-
-
-
-
actionType
- string -
- - -
- required - +1 -
-
-
-
-
-
-
-
-
-
-
id
- string - - -
The identifier of the existing reservation.
-
-
-
-
required
-
-
-
-
-
-
-
-
externalId
- string -
-
-
-
-
-
-
-
-
-
calculateCosts
- boolean -
-
-
-
-
-
-
-
-
-
calculateDates
- boolean -
-
-
-
-
-
-
-
-
-
items
- array[string] -
-
required
-
-
-
-
-
-
- - - -
-
or
-
-
-
- BugExample -
{6}
- - -
An example model to demonstrate a bug.
-
-
-
-
-
-
-
-
-
-
-
-
actionType
- string -
- - -
- required - +1 -
-
-
-
-
-
-
-
-
-
-
id
- string - - -
The identifier of the existing reservation.
-
-
-
-
-
-
-
-
-
-
-
-
externalId
- string -
-
-
-
-
-
-
-
-
-
calculateCosts
- boolean -
-
-
-
-
-
-
-
-
-
calculateDates
- boolean -
-
-
-
-
-
-
-
-
-
items
- array[string] -
-
required
-
-
-
-
-" -`; - -exports[`HTML Output should match array-of-allofs.json 1`] = ` -"
-
-
-
-
- Test -
{1}
-
-
-
-
-
-
-
-
- - - -
-
array-all-objects
- array[object] -
-
-
-
-
-
-
-
-
-
foo
- string -
-
-
-
-
-
-
-
-
-
bar
- string -
-
-
-
-
-
-" -`; - -exports[`HTML Output should match array-of-objects.json 1`] = ` -"
-
-
-
-
- object -
{1}
-
- - -
+1
-
-
-
-
-
-
-
-
- - - -
-
propertyIsArrayOfObjects
-
array[object]
-
{1}
-
-
-
-
-
-
-
-
-
-
ArrayObjectProperty
- string -
-
-
-
-
-
-" -`; - -exports[`HTML Output should match array-of-refs.json 1`] = ` -"
-
-
-
- - - -
$ref(./models/todo-full.json)[]
-
-
-
-
-
-" -`; - -exports[`HTML Output should match combiner-schema.json 1`] = ` -"
-
-
-
-
- Todo Full -
{5}
-
-
-
-
-
-
-
-
-
-
test
- string -
-
-
-
-
-
-
-
-
-
id
- integer -
- - -
- required - +2 -
-
-
-
-
-
-
-
-
-
-
completed_at
-
- string - or - null -
-
<date-time>
-
-
-
-
-
-
-
-
-
-
created_at
- string -
<date-time>
-
-
-
-
-
-
-
-
-
-
updated_at
- string -
<date-time>
-
-
-
-
-
-
-" -`; - -exports[`HTML Output should match complex-allOf-model.json 1`] = ` -"
-
-
-
-
- object -
{2}
-
-
-
-
-
-
-
-
- - - -
-
foo
- object -
{1}
-
-
-
-
-
-
-
-
- - - -
-
user
- allOf -
-
-
-
-
-
-
-
- - - -
- object -
{2}
-
-
-
-
-
-
-
-
- - - -
-
names
- - $ref(#/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name)[] - -
-
-
-
-
-
-
-
- - - -
-
users
- array[object] -
{3}
-
-
-
-
-
-
-
-
- - - -
-
creation
- #/allOf/0/allOf/0/properties/foo -
-
-
-
-
-
-
-
- - - -
-
foo
- - #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - -
-
-
-
-
-
-
-
- - - -
-
products
- - #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - -
-
-
-
-
-
-
-
- - - -
-
bar
- object -
{1}
-
-
-
-
-
-
-
-
- - - -
-
foo
- object -
{1}
-
-
-
-
-
-
-
-
- - - -
-
user
- allOf -
-
-
-
-
-
-
-
- - - -
- object -
{2}
-
-
-
-
-
-
-
-
- - - -
-
names
- - $ref(#/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name)[] - -
-
-
-
-
-
-
-
- - - -
-
users
- array[object] -
{3}
-
-
-
-
-
-
-
-
- - - -
-
creation
- #/allOf/0/allOf/0/properties/foo -
-
-
-
-
-
-
-
- - - -
-
foo
- - #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - -
-
-
-
-
-
-
-
- - - -
-
products
- - #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - -
-
-
-
-
-
-" -`; - -exports[`HTML Output should match default-schema.json 1`] = ` -"
-
-
-
-
- User -
{8}
-
-
-
-
-
-
-
-
-
-
name
- string - - -
- The user's full name. This description can be long and should truncate once it reaches the end of the - row. If it's not truncating then theres and issue that needs to be fixed. Help! -
-
-
-
-
required
-
-
-
-
-
-
-
-
age
- number -
- read-only - - -
- required - +5 -
-
-
-
-
-
-
-
-
-
-
completed_at
- string -
<date-time>
-
- write-only -
required
-
-
-
-
-
-
-
-
items
- null - or - array[string,number] -
- - -
- This description can be long and should truncate once it reaches the end of the row. If it's not - truncating then theres and issue that needs to be fixed. Help! +
+
+
+
+
+
AllOfMergeRefs
+ object +
+
- - -
-
-
-
-
-
-
-
-
-
email
- string -
<email>
-
- deprecated - - -
+2
-
-
-
-
-
-
-
-
- - - -
-
plan
- anyOf -
-
-
-
-
-
-
-
- - - -
- object -
{2}
-
- - -
+1
-
-
-
-
-
-
-
-
-
-
foo
- string -
-
required
-
-
-
-
-
-
-
-
bar
- string -
-
required
-
-
-
-
-
-
-
-
and/or
-
-
-
array[integer]
-
-
-
-
-
-
-
- - - -
-
permissions
-
- string - or - object -
-
{1}
-
-
-
-
-
-
-
-
-
-
ids
- array[integer] -
-
-
-
-
-
-
-
- - - -
-
ref
- #/properties/permissions -
-
-
-
-
-
-
-
-
-
^id_
- number -
(pattern property)
-
-
-
-
-
-
-
-
-
-
foo
- integer -
(pattern property)
-
-
-
-
-
-
-
-
-
-
_name$
- string -
(pattern property)
-
-
-
-
-
-
-" -`; - -exports[`HTML Output should match formats-schema.json 1`] = ` -"
-
-
-
-
- model-with-formats -
{5}
-
-
-
-
-
-
-
-
-
-
date-of-birth
-
- number - or - string - or - array +
+
+
+
+
+
+
+
+
+
+
street_address
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
city
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
state
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
zipCode
+ string +
+
+
+
+
+
+
-
<date-time>
-
-
-
-
-
-
-
-
-
-
name
- string -
-
-
-
-
-
-
-
-
-
id
- number -
<float>
-
-
-
-
-
-
-
-
notype
-
-
-
-
- - - +
+" +`; + +exports[`HTML Output should match combiners/allOfs/complex.json 1`] = ` +"
+
+
+
-
permissions
- string - or - object +
+
+
+
+
+
foo
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
user
+ allOf +
+
+
+
+
+
+
+
+
+
+
+
+
+
object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
names
+ + $ref(#/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name)[] + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
users
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
creation
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
user
+ allOf +
+
+
+
+
+
+
+
+
+
+
+
+
+
object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ + #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
products
+ + #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts + +
+
+
+
+
+
+
+
+
+
+
+
+
-
{1}
-
<password>
-
-
-
-
-
-
-
ids
- array[integer] +
+
+
+
+
+
+
bar
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
user
+ allOf +
+
+
+
+
+
+
+
+
+
+
+
+
+
object
+
+
+
+
+
+
+
+
+
+
+
-
@@ -2247,16 +2193,187 @@ exports[`HTML Output should match formats-schema.json 1`] = ` " `; -exports[`HTML Output should match nullish-ref.schema.json 1`] = ` -"
-
-
-
- - - -
$ref
-
+exports[`HTML Output should match combiners/allOfs/todo-full.json 1`] = ` +"
+
+
+
+
array of:
+
+
+
+
+
+
+
+
name
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
completed
+
+ boolean + or + null +
+
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
id
+ integer +
+ required +
+
+
+ >= 0 + <= 1000000 +
+
+
+
+
+
+
+
+
+
+
+
+
completed_at
+
+ string + or + null +
+ <date-time> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
created_at
+ string + <date-time> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
updated_at
+ string + <date-time> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
user
+ User +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
name
+ string +
+ required +
+
+

The user's full name.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
age
+ number +
+ required +
+
+
+ >= 0 + <= 150 +
+
+
+
+
+
+
+
@@ -2264,104 +2381,102 @@ exports[`HTML Output should match nullish-ref.schema.json 1`] = ` " `; -exports[`HTML Output should match oneof-with-array-type.json 1`] = ` -"
-
-
-
-
oneOf
-
-
-
-
-
-
-
- - - -
- array[object] -
{2}
-
-
-
-
-
-
-
-
-
-
foo
- string -
- - -
+1
-
-
-
-
-
-
-
-
+exports[`HTML Output should match combiners/allOfs/todo-full-2.json 1`] = ` +"
+
+
+
-
baz
- integer +
+
+
+
+
+
test
+ string +
+
+
+
+
+
-
-
-
-
-
-
- - - -
-
or
-
-
- array[object] -
{3}
+
+
+
+
+
+
id
+ integer +
+ required +
+
+
+ >= 0 + <= 1000000 +
+
+
+
-
-
-
-
-
-
-
foo
- number +
+
+
+
+
+
completed_at
+
+ string + or + null +
+ <date-time> +
+
+
+
+
+
-
-
-
-
-
-
-
baz
- integer +
+
+
+
+
+
created_at
+ string + <date-time> +
+
+
+
+
+
-
-
-
-
-
-
-
bar
- string +
+
+
+
+
+
updated_at
+ string + <date-time> +
+
+
+
+
+
-
@@ -2369,44 +2484,158 @@ exports[`HTML Output should match oneof-with-array-type.json 1`] = ` " `; -exports[`HTML Output should match ref/original.json 1`] = ` -"
-
-
-
-
- object -
{2}
-
-
-
-
-
-
-
-
- - - -
-
billing_address
- #/definitions/address +exports[`HTML Output should match combiners/allOfs/with-type.json 1`] = ` +"
+
+
+
+
+
+ + +
+
+ 1. BugExample +
+
-
-
-
-
-
-
-
- - - -
-
shipping_address
- #/definitions/address +
+
+
+
+
+
+
+
actionType
+ string +
+ required +
+
+
+ Allowed values: + \\"Cancel\\" + \\"Confirm\\" + \\"Update\\" +
+
+
+
+
+
+
+
+
+
+
+
+
id
+ string +
+ required +
+
+
+

The identifier of the existing reservation.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
externalId
+ string +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
calculateCosts
+ boolean +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
calculateDates
+ boolean +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
items
+ array of strings +
+ required +
+
+
+
+
+
-
@@ -2414,306 +2643,518 @@ exports[`HTML Output should match ref/original.json 1`] = ` " `; -exports[`HTML Output should match tickets.schema.json 1`] = ` -"
-
-
-
-
- object -
{3}
- - -
- This section allows the selection of the ticketing options for all sales of the order. -
-
-
+exports[`HTML Output should match combiners/oneof-with-array-type.json 1`] = ` +"
+
+
+
+
+
+ + +
+
+ 1. array of objects +
+
-
-
-
-
-
-
-
- - - -
-
availableTicketingOptions
- - $ref(../TicketingOptionInfo/TicketingOptionInfo.v1-0.yaml)[] - - - -
List of ticketing options of the order.
-
-
+
+
+
+
+
+
+
+
foo
+ string +
+
+
+
+ Allowed value: + \\"test\\" +
+
+
+
+
+
+
+
+
+
+
+
+
baz
+ integer +
+
+
+
+
+
+
-
-
-
-
-
-
commonTicketingOptions
- array[string] - - -
Common ticketing options to all order items.
-
-
+
+" +`; + +exports[`HTML Output should match combiners/oneof-within-array-item.json 1`] = ` +"
+
+
+
+
+
+ + +
+
+ 1. array of A-s +
+
-
-
-
-
-
-
-
- - - -
-
ticketingOptionChoice
- array[object] -
{2}
- - -
Ticketing option selection per order item.
-
-
+
+
+
+
+
+
+
+
foo
+ string +
+
+
+
+ Allowed value: + \\"test\\" +
+
+
+
+
-
-
-
-
-
-
state
- string - - -
- The status that addresses if a specific ticket option is active or not. The status active is used before - ticketing or before exchange confirmation. After ticketing, the status changes in completed. This allows - to store ticketing options already used at ticketing time and to clean up all non selected options after - ticketing or exchanged confirmation. -
-
-
-
- - -
+2
-
-
-
-
-
-
-
-
- - - -
-
orderItemBreakdown
- array[object] -
{2}
- - -
- Structure that contains ticketing options per order item. -
-
-
+
+" +`; + +exports[`HTML Output should match default-schema.json 1`] = ` +"
+
+
+
+
+
+
+
+
+
+
name
+ string +
+ required +
+
+
+

+ The user's full name. This description can be long and should truncate once it reaches the end of + the row. If it's not truncating then theres and issue that needs to be fixed. Help! +

+
+
+
+
+ Allowed value: + \\"Constant name\\" +
+
+ Example values: + \\"Example name\\" + \\"Different name\\" +
+
+
+
-
-
-
-
-
-
-
orderItemId
- string -
<uuid>
+
+
+
+
+
+
age
+ number +
+ read-only + required +
+
+
+ >= 10 + <= 40 +
+
+ Allowed values: + 10 + 20 + 30 + 40 +
+
+ Default value: + 20 +
+
+ Multiple of: + 10 +
+
+
+
-
-
-
-
-
-
- - - -
-
options
- array[object] -
{4}
- - -
Available ticketing options for a given order item.
-
-
+
+
+
+
+
+
+
completed_at
+ string + <date-time> +
+ write-only + required +
+
+
+ Match pattern: + ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ +
+
+
+
-
-
-
-
-
-
-
-
title
- string - - -
Ticketing option short-description.
-
-
-
- read-only - - -
+1
-
-
-
-
-
-
-
-
-
-
selected
- boolean - - -
- Flag to specify which ticketing option is selected. Only one option is allowed to be selected. -
-
-
-
- - -
+1
-
-
-
-
-
-
-
-
-
additionalRequiredInfo
- string - - -
- Additional passenger required info specific to the given ticketing option. +
+
+
+
+
+
items
+
+ null + or + array of strings/numbers +
+
+
+
+
+

+ This description can be long and should truncate once it reaches the end of the row. If it's not + truncating then theres and issue that needs to be fixed. Help! +

+
+
- - +
+ >= 1 items + <= 4 items +
+
+
+
-
-
-
-
-
-
- - - -
-
deliveryInfo
- object -
{5}
- - -
Data for ticket delivery.
-
-
+
+
+
+
+
+
+
email
+ string + <email> +
+ deprecated +
+
+
>= 2 characters
+
+ Default value: + \\"default@email.com\\" +
+
+ Example values: + \\"one@email.com\\" + \\"two@email.com\\" +
+
+
+
-
-
-
-
-
-
-
availableDeliveryTypes
- array[string] +
+
+
+
+
+
+
plan
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
bar
+ string +
+ required +
+
+
+
+
+
+
-
-
-
-
-
-
-
ticketRecipients
- array[string] +
+
+
+
+
+
+
permissions
+
+ string + or + object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ids
+ array of integers +
+
+
+
+
+
+
+
-
-
-
-
-
-
-
ccEmail
- string -
<email>
+
+
+
+
+
+
+
ref
+
+ string + or + object +
+
+
+
+
+
+
-
-
-
-
-
-
- - -
-
postalAddress
- ../Address/Address.v0-1.yaml +
+
+
+
+
+
^id_
+ number +
(pattern property)
+
+
+
+
+
+
-
-
-
-
-
-
-
pickUpAtStation
- string - - -
- The name of the Station in case you select pick up at station as a delivery type +
+
+
+
+
+
foo
+ integer +
(pattern property)
+
+
- - +
+
+
+
+
+
+
+
+
+
_name$
+ string +
(pattern property)
+
+
+
+
+
+
+
@@ -2721,143 +3162,670 @@ exports[`HTML Output should match tickets.schema.json 1`] = ` " `; -exports[`HTML Output should match todo-allof.schema.json 1`] = ` -"
-
-
-
-
array
-
-
-
-
-
-
-
+exports[`HTML Output should match formats-schema.json 1`] = ` +"
+
+
+
-
name
- string +
+
+
+
+
+
date-of-birth
+
+ number + or + string + or + array +
+ <date-time> +
+
+
+
+
+
-
-
-
-
-
-
-
completed
- boolean - or - null +
+
+
+
+
name
+ string +
+
+
+
+
-
-
-
-
-
-
-
id
- integer +
+
+
+
+
+
id
+ number + <float> +
+
+
+
+
+
- - -
+2
-
-
-
-
-
-
-
-
+
-
completed_at
- string - or - null +
+
+
+
+
notype
+ <date-time> +
+
+
+
+
-
<date-time>
-
-
-
-
-
-
-
created_at
- string -
<date-time>
+
+
+
+
+
+
+
permissions
+
+ string + or + object +
+ <password> +
+
+
+
+
+
+
+
+
+
+
+
+
+
ids
+ array of integers +
+
+
+
+
+
+
+
-
-
-
-
+
+" +`; + +exports[`HTML Output should match references/base.json 1`] = ` +"
+
+
+
-
updated_at
- string -
<date-time>
+
+
+
+
+
+
+
billing_address
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
street_address
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
city
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
state
+ string +
+ required +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
shipping_address
+ object +
+
+
+
+
+
+
-
-
-
- - - +
+" +`; + +exports[`HTML Output should match references/nested.json 1`] = ` +"
+
+
+
-
user
- User -
{2}
+
+
+
+
+
+
+
parent
+ object +
+
+
+

something

+
+
+
+
+
+
+
+
+
+
+
+
+
+
parent
+ object +
+
+
+

something

+
+
+
+
+
+
+
-
-
-
-
+
+" +`; + +exports[`HTML Output should match references/nullish.json 1`] = ` +"
+
+
+
-
name
- string - - -
The user's full name.
-
-
+
+
+
+
+
+
empty-ref
+ $ref +
+
+
+
+
+
-
required
-
-
-
+
+" +`; + +exports[`HTML Output should match tickets.schema.json 1`] = ` +"
+
+
+
+
+
+
+
+
+
+
+
availableTicketingOptions
+ $ref(../TicketingOptionInfo/TicketingOptionInfo.v1-0.yaml)[] +
+
+
+
+

List of ticketing options of the order.

+
+
+
+
+
+
+
+
+
+
+
+
+
../TicketingOptionInfo/TicketingOptionInfo.v1-0.yaml
+
+
+
+
+
+
+
+
+
-
age
- number +
+
+
+
+
+
commonTicketingOptions
+ array of strings +
+
+
+
+

Common ticketing options to all order items.

+
+
+
+
+
+
- - +
+
+
+
+
+
+
+
+
ticketingOptionChoice
+ array of objects +
+
+
+
+

Ticketing option selection per order item.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
state
+ string +
+
+
+
+

+ The status that addresses if a specific ticket option is active or not. The status active is + used before ticketing or before exchange confirmation. After ticketing, the status changes in + completed. This allows to store ticketing options already used at ticketing time and to clean + up all non selected options after ticketing or exchanged confirmation. +

+
+
+
+
+ Allowed values: + \\"COMPLETED\\" + \\"ACTIVE\\" +
+
+ Default value: + \\"ACTIVE\\" +
+
+
+
+
+
- required - +2 +
+
+
+
+
+
+
orderItemBreakdown
+ array of objects +
+
+
+
+

Structure that contains ticketing options per order item.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
orderItemId
+ string + <uuid> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
options
+ array of objects +
+
+
+
+

Available ticketing options for a given order item.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
title
+ string +
+ read-only +
+
+
+

Ticketing option short-description.

+
+
+
+
+ Allowed values: + \\"HOMEPRINT\\" + \\"TICKETLESS\\" + \\"PRINT_AT_KIOSK\\" + \\"SECURE_PAPER\\" +
+
+
+
+
+
+
+
+
+
+
+
+
selected
+ boolean +
+
+
+
+

+ Flag to specify which ticketing option is selected. Only one option is allowed to be + selected. +

+
+
+
+
examples
+
+
+
+
+
+
+
+
+
+
+
+
additionalRequiredInfo
+ string +
+
+
+
+

Additional passenger required info specific to the given ticketing option.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
deliveryInfo
+ object +
+
+
+

Data for ticket delivery.

+
+
+
+
+
+
+
+
+
+
+
+
+
availableDeliveryTypes
+ array of strings +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ticketRecipients
+ array of strings +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ccEmail
+ string + <email> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
postalAddress
+ ../Address/Address.v0-1.yaml +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
pickUpAtStation
+ string +
+
+
+
+

+ The name of the Station in case you select pick up at station as a delivery type +

+
+
+
+
+
+
+
+
+
+
+
+
- - +
+
diff --git a/src/__tests__/index.spec.tsx b/src/__tests__/index.spec.tsx index bbc0f613..1ed4b358 100644 --- a/src/__tests__/index.spec.tsx +++ b/src/__tests__/index.spec.tsx @@ -1,29 +1,26 @@ +import 'jest-enzyme'; + +import { mount, ReactWrapper } from 'enzyme'; +import * as fastGlob from 'fast-glob'; import * as fs from 'fs'; import { JSONSchema4 } from 'json-schema'; import * as path from 'path'; import * as React from 'react'; + import { JsonSchemaViewer } from '../components'; +import { ViewMode } from '../types'; import { dumpDom } from './utils/dumpDom'; describe('HTML Output', () => { - test.each([ - 'ref/original.json', - 'allof-with-type.json', - 'array-of-allofs.json', - 'array-of-objects.json', - 'array-of-refs.json', - 'combiner-schema.json', - 'complex-allOf-model.json', - 'default-schema.json', - 'formats-schema.json', - 'nullish-ref.schema.json', - 'oneof-with-array-type.json', - 'todo-allof.schema.json', - 'tickets.schema.json', - ])('should match %s', filename => { + it.each( + fastGlob.sync('**/*.json', { + cwd: path.join(__dirname, '../__fixtures__'), + ignore: ['stress-schema.json'], + }), + )('should match %s', filename => { const schema = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../__fixtures__/', filename), 'utf8')); - expect(dumpDom()).toMatchSnapshot(); + expect(dumpDom()).toMatchSnapshot(); }); describe.each(['anyOf', 'oneOf'])('given %s combiner placed next to allOf', combiner => { @@ -81,16 +78,12 @@ describe('HTML Output', () => { }; }); - test('given allOf merging disabled, should still merge', () => { - expect(dumpDom()).toMatchSnapshot(); - }); - - test('given allOf merging enabled, should merge contents of allOf combiners', () => { - expect(dumpDom()).toMatchSnapshot(); + it('given allOf merging enabled, should merge contents of allOf combiners', () => { + expect(dumpDom()).toMatchSnapshot(); }); }); - test('given array with oneOf containing items, should merge it correctly', () => { + it('given array with oneOf containing items, should merge it correctly', () => { const schema: JSONSchema4 = { oneOf: [ { @@ -107,10 +100,10 @@ describe('HTML Output', () => { type: 'array', }; - expect(dumpDom()).toMatchSnapshot(); + expect(dumpDom()).toMatchSnapshot(); }); - test.each(['standalone', 'read', 'write'])('given %s mode, should populate proper nodes', mode => { + it.each(['standalone', 'read', 'write'])('given %s mode, should populate proper nodes', mode => { const schema: JSONSchema4 = { type: ['string', 'object'], properties: { @@ -125,10 +118,12 @@ describe('HTML Output', () => { }, }; - expect(dumpDom()).toMatchSnapshot(); + expect( + dumpDom(), + ).toMatchSnapshot(); }); - test('given multiple object and string type, should process properties', () => { + it('given multiple object and string type, should process properties', () => { const schema: JSONSchema4 = { type: ['string', 'object'], properties: { @@ -141,10 +136,10 @@ describe('HTML Output', () => { }, }; - expect(dumpDom()).toMatchSnapshot(); + expect(dumpDom()).toMatchSnapshot(); }); - test('given complex type that includes array and complex array subtype, should not ignore subtype', () => { + it('given complex type that includes array and complex array subtype, should not ignore subtype', () => { const schema: JSONSchema4 = { type: 'object', properties: { @@ -159,10 +154,10 @@ describe('HTML Output', () => { }, }; - expect(dumpDom()).toMatchSnapshot(); + expect(dumpDom()).toMatchSnapshot(); }); - test('given visible $ref node, should try to inject the title immediately', () => { + it('given visible $ref node, should try to inject the title immediately', () => { const schema: JSONSchema4 = { type: 'object', properties: { @@ -184,3 +179,592 @@ describe('HTML Output', () => { expect(dumpDom()).toMatchSnapshot(); }); }); + +describe.each([{}, { unknown: '' }, { $ref: null }])('given empty schema, should render empty text', schema => { + const wrapper = mount(); + expect(wrapper).toHaveText('No schema defined'); + wrapper.unmount(); +}); + +describe('Expanded depth', () => { + const toUnmount: ReactWrapper[] = []; + + function mountWithAutoUnmount(node: React.ReactElement) { + const wrapper = mount(node); + toUnmount.push(wrapper); + return wrapper; + } + + afterEach(() => { + while (toUnmount.length > 0) { + toUnmount.pop()?.unmount(); + } + }); + + describe('merged array with object', () => { + let schema: JSONSchema4; + + beforeEach(() => { + schema = { + type: 'array', + items: { + type: 'object', + properties: { + foo: { + type: 'array', + items: { + type: 'object', + properties: { + bar: { + type: 'object', + properties: { + baz: { + type: 'integer', + }, + }, + }, + }, + }, + }, + }, + }, + }; + }); + + describe('static', () => { + it('given initial level set to -1, should render only top-level property', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('given initial level set to 0, should render top 2 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('given initial level set to 1, should render top 3 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
bar
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + }); + }); + + describe('merged array with object #2', () => { + let schema: JSONSchema4; + + beforeEach(() => { + schema = { + type: 'array', + items: { + type: 'object', + properties: { + bar: { + type: 'integer', + }, + foo: { + type: 'array', + items: { + type: 'object', + properties: { + bar: { + type: 'string', + }, + foo: { + type: 'number', + }, + }, + }, + }, + }, + }, + }; + }); + + describe('static', () => { + it('given initial level set to -1, should render only top-level property', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
bar
+ integer +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('given initial level set to 0, should render top 2 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
bar
+ integer +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('given initial level set to 1, should render top 3 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
array of:
+
+
+
+
+
+
+
+
bar
+ integer +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+
+
+
bar
+ string +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ number +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + }); + }); + + describe('nested object', () => { + let schema: JSONSchema4; + + beforeEach(() => { + schema = { + type: 'object', + properties: { + bar: { + type: 'object', + properties: { + barFoo: { + type: 'object', + properties: { + barFooBar: { + type: 'object', + }, + }, + }, + barBar: { + type: 'string', + }, + barBaz: { + type: 'boolean', + }, + }, + }, + foo: { + type: 'array', + items: { + type: 'object', + properties: { + fooBar: { + type: 'string', + }, + fooFoo: { + type: 'number', + }, + }, + }, + }, + }, + }; + }); + + describe('static', () => { + it('given initial level set to -1, should render only top-level property', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchInlineSnapshot(` + "
+
+
+
+
+
+
+
+
+
+
+
bar
+ object +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
foo
+ array of objects +
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('given initial level set to 0, should render top 2 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchSnapshot(); + }); + + it('given initial level set to 1, should render top 3 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchSnapshot(); + }); + + it('given initial level set to 2, should render top 4 levels', () => { + const wrapper = mountWithAutoUnmount(); + + expect(dumpDom(wrapper.getElement())).toMatchSnapshot(); + }); + }); + }); +}); + +describe('$ref resolving', () => { + it('should render caret for schema with top-level $ref pointing at complex type', () => { + const schema: JSONSchema4 = { + $ref: '#/definitions/foo', + definitions: { + foo: { + type: 'string', + }, + }, + }; + + expect(dumpDom()).toMatchInlineSnapshot(` + "
+
+
+
+
+
+
+
string
+
+
+
+
+
+
+
+
+ " + `); + }); + + it('should render caret for top-level array with $ref items', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + $ref: '#/foo', + }, + }; + + expect(dumpDom()).toMatchInlineSnapshot(` + "
+
+
+
+
+
+
+
+
$ref(#/foo)[]
+
+
+
+
+
+
+
+
+
+
+
+
#/foo
+
+
+
+
+
+
+
+
+
+
+ " + `); + }); +}); diff --git a/src/__tests__/utils/dumpDom.ts b/src/__tests__/utils/dumpDom.ts index 0c74fa22..017f3b4b 100644 --- a/src/__tests__/utils/dumpDom.ts +++ b/src/__tests__/utils/dumpDom.ts @@ -1,27 +1,15 @@ import { mount } from 'enzyme'; import { ReactElement } from 'react'; -const prettier = require('prettier'); +import { JsonSchemaViewer } from '../../components'; +import { prettifyHtml } from './prettifyHtml'; -const TAILWIND_CLASSES = [ - /-?p[xytblr]?-(?:\d+|auto)/, - /-?m[xytblr]?-(?:\d+|auto)/, - /((max|min)-)?[wh]-(full|screen)/, - /flex-1|flex/, - /items-(baseline|center)/, - /justify-center/, - /cursor-pointer/, - /relative|absolute/, - /truncate/, - /uppercase/, - /rounded/, - /text-(xs|sm|md|lg)/, -].map(pattern => new RegExp(`^${pattern.source}$`)); +const MOSAIC_CLASSES_EXP = /^sl-.*$/; function stripTailwindClasses(node: HTMLElement) { for (const child of node.children) { for (const _class of [...child.classList]) { - if (TAILWIND_CLASSES.some(tailwindClass => tailwindClass.test(_class))) { + if (MOSAIC_CLASSES_EXP.test(_class)) { child.classList.remove(_class); } } @@ -39,7 +27,7 @@ function stripTailwindClasses(node: HTMLElement) { export function dumpDom(element: ReactElement) { const wrapper = mount(element); - const root = wrapper.find('.ScrollbarsCustom-Content > div'); + const root = wrapper.find(JsonSchemaViewer); root.getDOMNode().removeAttribute('style'); stripTailwindClasses(root.getDOMNode()); @@ -68,9 +56,5 @@ export function dumpDom(element: ReactElement) { const html = root.html(); wrapper.unmount(); - return prettier.format(html, { - printWidth: 120, - parser: 'html', - htmlWhitespaceSensitivity: 'ignore', - }); + return prettifyHtml(html); } diff --git a/src/__tests__/utils/prettifyHtml.ts b/src/__tests__/utils/prettifyHtml.ts new file mode 100644 index 00000000..662ae0e7 --- /dev/null +++ b/src/__tests__/utils/prettifyHtml.ts @@ -0,0 +1,9 @@ +const prettier = require('prettier'); + +export function prettifyHtml(html: string) { + return prettier.format(html, { + printWidth: 120, + parser: 'html', + htmlWhitespaceSensitivity: 'ignore', + }); +} diff --git a/src/components/JsonSchemaViewer.tsx b/src/components/JsonSchemaViewer.tsx index 20221497..126a68be 100644 --- a/src/components/JsonSchemaViewer.tsx +++ b/src/components/JsonSchemaViewer.tsx @@ -1,146 +1,92 @@ -import { ErrorBoundaryForwardedProps, FallbackComponent, withErrorBoundary } from '@stoplight/react-error-boundary'; -import { Tree, TreeState, TreeStore } from '@stoplight/tree-list'; +import { isRegularNode, SchemaTree as JsonSchemaTree, SchemaTreeRefDereferenceFn } from '@stoplight/json-schema-tree'; +import { Box, Provider as MosaicProvider } from '@stoplight/mosaic'; +import { ErrorBoundaryForwardedProps, FallbackProps, withErrorBoundary } from '@stoplight/react-error-boundary'; import cn from 'classnames'; -import { action } from 'mobx'; import * as React from 'react'; -import { JSONSchema4 } from 'json-schema'; -import { SchemaTree, SchemaTreeOptions, SchemaTreePopulateHandler, SchemaTreeRefDereferenceFn } from '../tree/tree'; -import { GoToRefHandler, RowRenderer, ViewMode } from '../types'; -import { isSchemaViewerEmpty } from '../utils/isSchemaViewerEmpty'; -import { SchemaTree as SchemaTreeComponent } from './SchemaTree'; +import { JSVOptions, JSVOptionsContextProvider } from '../contexts'; +import type { JSONSchema } from '../types'; +import { TopLevelSchemaRow } from './SchemaRow'; +import { ChildStack } from './shared/ChildStack'; -export interface IJsonSchemaViewer { - schema: JSONSchema4; - style?: object; +export type JsonSchemaProps = Partial & { + schema: JSONSchema; emptyText?: string; - defaultExpandedDepth?: number; - expanded?: boolean; className?: string; - name?: string; - hideTopBar?: boolean; - maxRows?: number; - onGoToRef?: GoToRefHandler; - mergeAllOf?: boolean; - FallbackComponent?: typeof FallbackComponent; - rowRenderer?: RowRenderer; - onTreePopulate?: SchemaTreePopulateHandler; resolveRef?: SchemaTreeRefDereferenceFn; - shouldResolveEagerly?: boolean; - viewMode?: ViewMode; -} - -export const ViewModeContext = React.createContext('standalone'); -ViewModeContext.displayName = 'ViewModeContext'; - -export class JsonSchemaViewerComponent extends React.PureComponent { - protected readonly treeStore: TreeStore; - protected readonly tree: SchemaTree; - protected readonly treeState: TreeState; - - constructor(props: IJsonSchemaViewer & ErrorBoundaryForwardedProps) { - super(props); +}; - this.treeState = new TreeState(); - this.tree = new SchemaTree(props.schema, this.treeState, this.treeOptions); - this.treeStore = new TreeStore(this.tree, this.treeState, { - defaultExpandedDepth: this.expandedDepth, +const JsonSchemaViewerComponent: React.FC = ({ + schema, + viewMode = 'standalone', + className, + resolveRef, + emptyText = 'No schema defined', + defaultExpandedDepth = 2, + onGoToRef, + renderRowAddon, + hideExamples, +}) => { + const jsonSchemaTreeRoot = React.useMemo(() => { + const jsonSchemaTree = new JsonSchemaTree(schema, { + mergeAllOf: true, + refResolver: resolveRef, }); - } + jsonSchemaTree.walker.hookInto('filter', node => { + if (!isRegularNode(node)) return true; - protected get treeOptions(): SchemaTreeOptions { - return { - expandedDepth: this.expandedDepth, - mergeAllOf: this.mergeAllOf, - resolveRef: this.props.resolveRef, - shouldResolveEagerly: !!this.props.shouldResolveEagerly, - onPopulate: this.props.onTreePopulate, - viewMode: this.props.viewMode, - }; - } + const { validations } = node; - protected get mergeAllOf() { - return this.props.mergeAllOf !== false; - } + if (!!validations.writeOnly === !!validations.readOnly) { + return true; + } - protected get expandedDepth(): number { - if (this.props.expanded) { - return Infinity; // tree-list kind of equivalent of expanded: all - } - - if (this.props.defaultExpandedDepth !== undefined) { - return this.props.defaultExpandedDepth; - } - - return 1; - } - - protected renderSchema() { - if (this.tree.count > 0) { - this.tree.setRoot(Tree.createArtificialRoot()); - } - - this.tree.populate(); - } - - public componentDidMount() { - this.renderSchema(); - } - - @action - public componentDidUpdate(prevProps: Readonly) { - if (prevProps.resolveRef !== this.props.resolveRef) { - this.tree.treeOptions.resolveRef = this.props.resolveRef; - } - - if (prevProps.onTreePopulate !== this.props.onTreePopulate) { - this.tree.treeOptions.onPopulate = this.props.onTreePopulate; - } - - if ( - this.treeStore.defaultExpandedDepth !== this.expandedDepth || - prevProps.schema !== this.props.schema || - prevProps.mergeAllOf !== this.props.mergeAllOf || - prevProps.shouldResolveEagerly !== this.props.shouldResolveEagerly || - prevProps.viewMode !== this.props.viewMode - ) { - this.treeStore.defaultExpandedDepth = this.expandedDepth; - this.tree.treeOptions = this.treeOptions; - this.tree.schema = this.props.schema; - this.renderSchema(); - } + return !((viewMode === 'read' && !!validations.writeOnly) || (viewMode === 'write' && !!validations.readOnly)); + }); + jsonSchemaTree.populate(); + return jsonSchemaTree.root; + }, [schema, resolveRef, viewMode]); + + const isEmpty = React.useMemo(() => jsonSchemaTreeRoot.children.every(node => !isRegularNode(node) || node.unknown), [ + jsonSchemaTreeRoot, + ]); + + const options = React.useMemo(() => ({ defaultExpandedDepth, viewMode, onGoToRef, renderRowAddon, hideExamples }), [ + defaultExpandedDepth, + viewMode, + onGoToRef, + renderRowAddon, + hideExamples, + ]); + + if (isEmpty) { + return {emptyText}; } - public render() { - const { - props: { emptyText = 'No schema defined', name, schema, expanded, defaultExpandedDepth, className, ...props }, - } = this; - - // an empty array or object is still a valid response, schema is ONLY really empty when a combiner type has no information - if (isSchemaViewerEmpty(schema)) { - return
{emptyText}
; - } - - return ( -
- - - -
- ); - } -} + return ( + + + + + + ); +}; -const JsonSchemaFallbackComponent: typeof FallbackComponent = ({ error }) => { +const JsonSchemaFallbackComponent: React.FC = ({ error }) => { return ( -
+ Error - {error && `: ${error.message}`} -
+ {error !== null ? `: ${error.message}` : null} + ); }; -export const JsonSchemaViewer = withErrorBoundary(JsonSchemaViewerComponent, { +export const JsonSchemaViewer = withErrorBoundary(JsonSchemaViewerComponent, { FallbackComponent: JsonSchemaFallbackComponent, recoverableProps: ['schema'], reportErrors: false, diff --git a/src/components/SchemaRow.tsx b/src/components/SchemaRow.tsx deleted file mode 100644 index 1f5a213b..00000000 --- a/src/components/SchemaRow.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import { IRowRendererOptions, isParentNode, Tree } from '@stoplight/tree-list'; -import cn from 'classnames'; -import { JSONSchema4 } from 'json-schema'; -import * as React from 'react'; - -import { getNodeMetadata, getSchemaNodeMetadata } from '../tree/metadata'; -import { GoToRefHandler, SchemaKind, SchemaTreeListNode } from '../types'; -import { getPrimaryType } from '../utils/getPrimaryType'; -import { hasRefItems, isArrayNodeWithItems, isRefNode } from '../utils/guards'; -import { Caret, Description, Divider, Format, Property, Validations } from './shared'; - -export interface ISchemaRow { - className?: string; - node: SchemaTreeListNode; - rowOptions: IRowRendererOptions; - onGoToRef?: GoToRefHandler; -} - -const ICON_SIZE = 12; -const ICON_DIMENSION = 20; -const ROW_OFFSET = 7; - -function getRelevantSchemaForRequireCheck(treeNode: SchemaTreeListNode): JSONSchema4 | JSONSchema4[] | null { - const metadata = getNodeMetadata(treeNode); - if (!('schemaNode' in metadata)) return null; - if (isArrayNodeWithItems(metadata.schemaNode)) { - return metadata.schemaNode.items; - } - - return metadata.schema; -} - -function isRequired(treeNode: SchemaTreeListNode) { - if (treeNode.parent === null) return false; - try { - const { path } = getSchemaNodeMetadata(treeNode); - if (path.length === 0) { - return false; - } - - const schema = getRelevantSchemaForRequireCheck(treeNode.parent); - - return ( - schema !== null && - !Array.isArray(schema) && - getPrimaryType(schema) === SchemaKind.Object && - Array.isArray(schema.required) && - schema.required.includes(String(path[path.length - 1])) - ); - } catch { - return false; - } -} - -export const SchemaPropertyRow: typeof SchemaRow = ({ node, onGoToRef, rowOptions }) => { - const metadata = getSchemaNodeMetadata(node); - const { schemaNode } = metadata; - - const parentSchemaNode = - (node.parent !== null && Tree.getLevel(node.parent) >= 0 && getSchemaNodeMetadata(node.parent)?.schemaNode) || null; - const description = 'annotations' in schemaNode ? schemaNode.annotations.description : null; - - const has$Ref = isRefNode(schemaNode) || (getPrimaryType(schemaNode) === SchemaKind.Array && hasRefItems(schemaNode)); - - return ( - <> - {has$Ref || (isParentNode(node) && Tree.getLevel(node) > 0) ? ( - - ) : null} - - {node.parent !== null && - node.parent.children.length > 0 && - parentSchemaNode !== null && - 'combiner' in parentSchemaNode && - node.parent.children[0] !== node && } - -
- - {metadata.schema.type && typeof metadata.schema.format === 'string' && } - {description && } -
- - - - ); -}; -SchemaPropertyRow.displayName = 'JsonSchemaViewer.SchemaPropertyRow'; - -export const SchemaErrorRow: React.FunctionComponent<{ message: string }> = ({ message }) => ( - {message} -); -SchemaErrorRow.displayName = 'JsonSchemaViewer.SchemaErrorRow'; - -export const SchemaRow: React.FunctionComponent = ({ className, node, rowOptions, onGoToRef }) => { - const metadata = getNodeMetadata(node); - - return ( -
-
- {'schema' in metadata ? ( - - ) : ( - - )} -
-
- ); -}; -SchemaRow.displayName = 'JsonSchemaViewer.SchemaRow'; diff --git a/src/components/SchemaRow/SchemaRow.tsx b/src/components/SchemaRow/SchemaRow.tsx new file mode 100644 index 00000000..e2e46a2d --- /dev/null +++ b/src/components/SchemaRow/SchemaRow.tsx @@ -0,0 +1,151 @@ +import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle.js'; +import { + isMirroredNode, + isReferenceNode, + isRegularNode, + ReferenceNode, + SchemaNode, + SchemaNodeKind, +} from '@stoplight/json-schema-tree'; +import { Icon, Select } from '@stoplight/mosaic'; +import cn from 'classnames'; +import last from 'lodash/last.js'; +import * as React from 'react'; + +import { useJSVOptionsContext } from '../../contexts'; +import { calculateChildrenToShow, isFlattenableNode, isPropertyRequired } from '../../tree'; +import { Caret, Description, Format, getValidationsFromSchema, Types, Validations } from '../shared'; +import { ChildStack } from '../shared/ChildStack'; +import { Properties } from '../shared/Properties'; +import { useChoices } from './useChoices'; + +export interface SchemaRowProps { + schemaNode: SchemaNode; + nestingLevel: number; +} + +export const SchemaRow: React.FunctionComponent = ({ schemaNode, nestingLevel }) => { + const description = isRegularNode(schemaNode) ? schemaNode.annotations.description : null; + + const { defaultExpandedDepth, renderRowAddon, onGoToRef, hideExamples } = useJSVOptionsContext(); + + const [isExpanded, setExpanded] = React.useState( + !isMirroredNode(schemaNode) && nestingLevel <= defaultExpandedDepth, + ); + + const { selectedChoice, setSelectedChoice, choices } = useChoices(schemaNode); + const typeToShow = selectedChoice.type; + + const refNode = React.useMemo(() => { + if (isReferenceNode(schemaNode)) { + return schemaNode; + } + + if ( + isRegularNode(schemaNode) && + (isFlattenableNode(schemaNode) || + (schemaNode.primaryType === SchemaNodeKind.Array && schemaNode.children?.length === 1)) + ) { + return (schemaNode.children?.find(isReferenceNode) as ReferenceNode | undefined) ?? null; + } + + return null; + }, [schemaNode]); + + const isBrokenRef = typeof refNode?.error === 'string'; + + const childNodes = React.useMemo(() => calculateChildrenToShow(typeToShow), [typeToShow]); + return ( +
+
+
+
0 ? () => setExpanded(!isExpanded) : undefined} + className={cn({ 'sl-cursor-pointer': childNodes.length > 0 })} + > +
+ {childNodes.length > 0 ? : null} + +
+ {schemaNode.subpath.length > 0 && shouldShowPropertyName(schemaNode) && ( +
{last(schemaNode.subpath)}
+ )} + + {choices.length === 1 && ( + <> + + + + )} + + {onGoToRef && isReferenceNode(schemaNode) && schemaNode.external ? ( + { + e.preventDefault(); + e.stopPropagation(); + onGoToRef(schemaNode); + }} + > + (go to ref) + + ) : null} + + {schemaNode.subpath.length > 1 && schemaNode.subpath[0] === 'patternProperties' ? ( +
(pattern property)
+ ) : null} + {choices.length > 1 && ( + ({ + value: String(index), + label: choice.title, + }))} + value={ + String(choices.indexOf(selectedChoice)) + /* String to work around https://github.com/stoplightio/mosaic/issues/162 */ + } + onChange={selectedIndex => setSelectedChoice(choices[selectedIndex as number])} + renderTrigger={props => ( + +
+ {selectedChoice.title} +
+ +
+
+
+ )} + /> + + {childNodes.length > 0 ? : null} +
+ + ); + } + + if (isComplexArray(schemaNode) && isPureObjectNode(schemaNode.children[0])) { + return ( + +
+
array of:
+ {childNodes.length > 0 ? : null} +
+
+ ); + } + + return ; +}; + +function isPureObjectNode(schemaNode: RegularNode) { + return schemaNode.primaryType === 'object' && schemaNode.types?.length === 1; +} + +const DecreaseIndentation: React.FC = ({ children }) =>
{children}
; diff --git a/src/components/SchemaRow/index.ts b/src/components/SchemaRow/index.ts new file mode 100644 index 00000000..acd25a4c --- /dev/null +++ b/src/components/SchemaRow/index.ts @@ -0,0 +1,2 @@ +export * from './SchemaRow'; +export * from './TopLevelSchemaRow'; diff --git a/src/components/SchemaRow/useChoices.ts b/src/components/SchemaRow/useChoices.ts new file mode 100644 index 00000000..d58b73ec --- /dev/null +++ b/src/components/SchemaRow/useChoices.ts @@ -0,0 +1,93 @@ +import { extractPointerFromRef, pointerToPath } from '@stoplight/json'; +import { isReferenceNode, isRegularNode, SchemaNode } from '@stoplight/json-schema-tree'; +import last from 'lodash/last.js'; +import * as React from 'react'; + +import { isComplexArray, isNonEmptyParentNode } from '../../tree'; +import { printName } from '../../utils'; + +type Choice = { + title: string; + type: SchemaNode; +}; + +function calculateChoiceTitle(node: SchemaNode, isPlural: boolean): string { + const complexObjectSuffix = isPlural ? '-s' : ''; + const primitiveSuffix = isPlural ? 's' : ''; + if (isRegularNode(node)) { + const realName = printName(node); + if (realName) { + return realName + complexObjectSuffix; + } + return node.primaryType !== null ? node.primaryType + primitiveSuffix : 'any'; + } + if (isReferenceNode(node)) { + if (node.value) { + const value = extractPointerFromRef(node.value); + const lastPiece = !node.error && value ? last(pointerToPath(value)) : null; + if (typeof lastPiece === 'string') { + return lastPiece.split('.')[0] + complexObjectSuffix; + } + } + return '$ref' + primitiveSuffix; + } + + return 'any'; +} + +function makeChoice(node: SchemaNode, index: number): Choice { + return { + type: node, + title: `${index + 1}. ${calculateChoiceTitle(node, false)}`, + }; +} + +function makeArrayChoice(node: SchemaNode, index: number): Choice { + const itemTitle = calculateChoiceTitle(node, true); + const title = itemTitle !== 'any' ? `array of ${itemTitle}` : 'array'; + return { + type: node, + title: `${index + 1}. ${title}`, + }; +} + +/** + * Calculates type choices for a given node. + * + * Usually a node has one choice - only one possible type -, itself. + * If a node is an oneOf or anyOf combiner, the possible types are the sub-types of the combiner. + */ +export const useChoices = (schemaNode: SchemaNode) => { + const choices: Choice[] = React.useMemo(() => { + // handle flattening of arrays that contain oneOfs, same logic as below + if ( + isComplexArray(schemaNode) && + isNonEmptyParentNode(schemaNode.children[0]) && + shouldShowChildSelector(schemaNode.children[0]) + ) { + return schemaNode.children[0].children.map(makeArrayChoice); + } + + // if current node is a combiner, offer its children + if (isNonEmptyParentNode(schemaNode) && shouldShowChildSelector(schemaNode)) { + return schemaNode.children.map(makeChoice); + } + // regular node, single choice - itself + return [makeChoice(schemaNode, 0)]; + }, [schemaNode]); + + const defaultChoice = choices[0]; + + const [selectedChoice, setSelectedChoice] = React.useState(defaultChoice); + + React.useEffect(() => { + setSelectedChoice(defaultChoice); + }, [defaultChoice]); + + const actualSelectedChoice = selectedChoice && choices.includes(selectedChoice) ? selectedChoice : defaultChoice; + + return { selectedChoice: actualSelectedChoice, setSelectedChoice, choices }; +}; + +const shouldShowChildSelector = (schemaNode: SchemaNode) => + isNonEmptyParentNode(schemaNode) && ['anyOf', 'oneOf'].includes(schemaNode.combiners?.[0] ?? ''); diff --git a/src/components/SchemaTree.tsx b/src/components/SchemaTree.tsx deleted file mode 100644 index 1928a3a1..00000000 --- a/src/components/SchemaTree.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { TreeList, TreeListEvents, TreeStore } from '@stoplight/tree-list'; -import { JSONSchema4 } from 'json-schema'; -import { observer } from 'mobx-react-lite'; -import * as React from 'react'; - -import { GoToRefHandler, RowRenderer } from '../types'; -import { SchemaRow } from './SchemaRow'; - -export interface ISchemaTree { - treeStore: TreeStore; - schema: JSONSchema4; - name?: string; - hideTopBar?: boolean; - expanded?: boolean; - maxRows?: number; - onGoToRef?: GoToRefHandler; - rowRenderer?: RowRenderer; -} - -const canDrag = () => false; - -export const SchemaTree = observer(props => { - const { hideTopBar, name, treeStore, maxRows, onGoToRef, rowRenderer: customRowRenderer } = props; - - React.useEffect(() => { - treeStore.events.on(TreeListEvents.NodeClick, (e, node) => { - if ('children' in node) { - treeStore.toggleExpand(node); - } - }); - - return () => { - treeStore.dispose(); - }; - }, [treeStore]); - - const rowRenderer = React.useCallback( - (node, rowOptions) => { - if (customRowRenderer !== undefined) { - return customRowRenderer(node, rowOptions, treeStore); - } - - return ; - }, - [onGoToRef, customRowRenderer, treeStore], - ); - - return ( - <> - {name && !hideTopBar && ( -
- {name} -
- )} - - - - ); -}); -SchemaTree.displayName = 'JsonSchemaViewer.SchemaTree'; diff --git a/src/components/__tests__/JsonSchemaViewer.spec.tsx b/src/components/__tests__/JsonSchemaViewer.spec.tsx deleted file mode 100644 index 245421f1..00000000 --- a/src/components/__tests__/JsonSchemaViewer.spec.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { shallow } from 'enzyme'; -import 'jest-enzyme'; -import * as React from 'react'; - -import { JSONSchema4 } from 'json-schema'; -import { JsonSchemaViewer, SchemaTree } from '../../components'; -import { isSchemaViewerEmpty } from '../../utils/isSchemaViewerEmpty'; - -jest.mock('../../utils/isSchemaViewerEmpty'); -jest.mock('../../components/SchemaTree', () => ({ - SchemaTree() { - return
; - }, -})); - -const schema: JSONSchema4 = { - properties: { - data: { - items: { - $ref: '#/definitions/Gif', - }, - type: 'array', - }, - meta: { - $ref: '#/definitions/Meta', - }, - pagination: { - $ref: '#/definitions/Pagination', - }, - }, -}; - -describe('JSON Schema Viewer component', () => { - beforeEach(() => { - (isSchemaViewerEmpty as jest.Mock).mockReturnValue(false); - }); - - test('should render empty message if schema is empty', () => { - (isSchemaViewerEmpty as jest.Mock).mockReturnValue(true); - const wrapper = shallow() - .dive() - .dive(); - expect(isSchemaViewerEmpty).toHaveBeenCalledWith({}); - expect(wrapper.find(SchemaTree)).not.toExist(); - }); - - test('should render SchemaView if schema is provided', () => { - const wrapper = shallow() - .dive() - .dive(); - expect(isSchemaViewerEmpty).toHaveBeenCalledWith(schema); - expect(wrapper.find(SchemaTree)).toExist(); - }); -}); diff --git a/src/components/__tests__/Property.spec.tsx b/src/components/__tests__/Property.spec.tsx deleted file mode 100644 index b3c3ad57..00000000 --- a/src/components/__tests__/Property.spec.tsx +++ /dev/null @@ -1,557 +0,0 @@ -import { TreeListParentNode, TreeState } from '@stoplight/tree-list'; -import { shallow } from 'enzyme'; -import 'jest-enzyme'; -import { JSONSchema4 } from 'json-schema'; -import * as React from 'react'; -import { SchemaTree } from '../../tree'; -import { metadataStore } from '../../tree/metadata'; -import { walk } from '../../tree/utils/walk'; -import { SchemaTreeListNode } from '../../types'; -import { Property, Types } from '../shared'; - -describe('Property component', () => { - it('should render Types with proper type and subtype', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: 'array', - items: { - type: 'string', - }, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.find(Types)).toExist(); - expect(wrapper.find(Types)).toHaveProp('type', 'array'); - expect(wrapper.find(Types)).toHaveProp('subtype', 'string'); - }); - - it('should handle nullish items', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: 'array', - items: null as any, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper).not.toBeEmptyRender(); - }); - - it('should handle nullish $ref', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - $ref: null as any, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper).not.toBeEmptyRender(); - }); - - describe('properties counter', () => { - test('given an object among other types, should still display the counter', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: ['string', 'object'], - properties: { - foo: { - type: 'array', - items: { - type: 'integer', - }, - }, - }, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.findWhere(el => /^{\d\}$/.test(el.text())).first()).toHaveText('{1}'); - }); - - it('given missing properties property, should not display the counter', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: 'object', - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.findWhere(el => /^{\d\}$/.test(el.text()))).not.toExist(); - }); - - it('given nullish properties property, should not display the counter', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: 'object', - properties: null as any, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.findWhere(el => /^{\d\}$/.test(el.text()))).not.toExist(); - }); - - it('given object properties property, should display the counter', () => { - const treeNode: SchemaTreeListNode = { - id: 'foo', - name: '', - parent: null, - }; - - const schema: JSONSchema4 = { - type: 'object', - properties: {}, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.findWhere(el => /^{\d\}$/.test(el.text())).first()).toHaveText('{0}'); - }); - }); - - describe('properties names', () => { - test('given an object, should display names its properties', () => { - const schema: JSONSchema4 = { - properties: { - foo: { - type: 'string', - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - const wrapper = shallow(); - expect(wrapper.find('div').first()).toHaveText('foo'); - }); - - test('given an object among other types, should still display its properties', () => { - const schema: JSONSchema4 = { - type: ['string', 'object'], - properties: { - foo: { - type: 'array', - items: { - type: 'integer', - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - const wrapper = shallow(); - expect(wrapper.find('div').first()).toHaveText('foo'); - }); - - test('given an array of objects, should display names of those properties', () => { - const schema: JSONSchema4 = { - type: 'array', - items: { - properties: { - foo: { - type: 'string', - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - const wrapper = shallow(); - expect(wrapper.find('div').first()).toHaveText('foo'); - }); - - test('given an array with a combiner inside, should just render the type of combiner', () => { - const schema: JSONSchema4 = { - type: 'array', - items: { - oneOf: [ - { - properties: {}, - }, - ], - type: 'object', - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - const wrapper = shallow(); - expect(wrapper).toHaveHTML('oneOf'); - }); - - test('given an array with an allOf inside and enabled allOf merging, should display the name of properties', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - 'array-all-objects': { - type: 'array', - items: { - allOf: [ - { - properties: { - foo: { - type: 'string', - }, - }, - }, - { - properties: { - bar: { - type: 'string', - }, - }, - }, - ], - type: 'object', - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - expect(shallow()).toHaveHTML( - '
foo
string', - ); - expect(shallow()).toHaveHTML( - '
bar
string', - ); - }); - - test('given a ref pointing at primitive type, should not display property name', () => { - const schema: JSONSchema4 = { - properties: { - foo: { - $ref: '#/properties/bar', - }, - bar: { - type: 'string', - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - tree.unwrap(Array.from(tree)[1] as TreeListParentNode); - - const wrapper = shallow(); - expect(wrapper.find('div').first()).not.toExist(); - }); - - test('given a ref pointing at complex type, should not display property name', () => { - const schema: JSONSchema4 = { - properties: { - foo: { - $ref: '#/properties/bar', - }, - bar: { - type: 'object', - }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - tree.unwrap(Array.from(tree)[1] as TreeListParentNode); - - const wrapper = shallow(); - expect(wrapper.find('div').first()).not.toExist(); - }); - }); - - describe('properties titles', () => { - let treeNode: SchemaTreeListNode; - - beforeEach(() => { - treeNode = { - id: 'foo', - name: '', - parent: null, - }; - }); - - it('given object type, should render title', () => { - const schema: JSONSchema4 = { - title: 'User', - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.find(Types)).toExist(); - expect(wrapper.find(Types)).toHaveProp('type', 'object'); - expect(wrapper.find(Types)).toHaveProp('subtype', void 0); - expect(wrapper.find(Types)).toHaveProp('title', 'User'); - }); - - it('given array type with non-array items, should render title', () => { - const schema: JSONSchema4 = { - type: 'array', - items: { - title: 'User', - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.find(Types)).toExist(); - expect(wrapper.find(Types)).toHaveProp('type', 'array'); - expect(wrapper.find(Types)).toHaveProp('subtype', 'object'); - expect(wrapper.find(Types)).toHaveProp('title', 'User'); - }); - - it('given array with no items, should render title', () => { - const schema: JSONSchema4 = { - type: 'array', - title: 'User', - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.find(Types)).toExist(); - expect(wrapper.find(Types)).toHaveProp('type', 'array'); - expect(wrapper.find(Types)).toHaveProp('subtype', void 0); - expect(wrapper.find(Types)).toHaveProp('title', 'User'); - }); - - it('given array with defined items, should not render title', () => { - const schema: JSONSchema4 = { - type: 'array', - items: [ - { - title: 'foo', - type: 'string', - }, - { - title: 'bar', - type: 'number', - }, - ], - }; - - metadataStore.set(treeNode, { - schemaNode: walk(schema).next().value.node, - path: [], - schema, - }); - - const wrapper = shallow(); - expect(wrapper.find(Types)).toExist(); - expect(wrapper.find(Types)).toHaveProp('type', 'array'); - expect(wrapper.find(Types)).toHaveProp('subtype', void 0); - expect(wrapper.find(Types)).toHaveProp('title', void 0); - }); - }); - - test("no title for combiner's children", () => { - const schema: JSONSchema4 = { - type: 'object', - title: 'Account', - allOf: [ - { - type: 'object', - properties: { - type: { - type: 'string', - enum: ['admin', 'editor'], - }, - enabled: { - type: 'boolean', - description: 'Is this account enabled', - }, - }, - required: ['type'], - }, - ], - oneOf: [ - { - type: 'object', - title: 'Admin', - properties: { - root: { - type: 'boolean', - }, - group: { - type: 'string', - }, - expirationDate: { - type: 'string', - }, - }, - }, - { - type: 'object', - title: 'Editor', - properties: { - supervisor: { - type: 'string', - }, - key: { - type: 'string', - }, - }, - }, - ], - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - const wrapper = shallow(); - expect(wrapper.children().first()).toEqual(wrapper.find(Types)); - }); -}); diff --git a/src/components/__tests__/SchemaRow.spec.tsx b/src/components/__tests__/SchemaRow.spec.tsx index 91438ee2..2f818dff 100644 --- a/src/components/__tests__/SchemaRow.spec.tsx +++ b/src/components/__tests__/SchemaRow.spec.tsx @@ -1,172 +1,71 @@ -import { TreeListParentNode, TreeState } from '@stoplight/tree-list'; -import { Popover } from '@stoplight/ui-kit'; -import { shallow } from 'enzyme'; import 'jest-enzyme'; + +import { RootNode } from '@stoplight/json-schema-tree'; +import { Icon } from '@stoplight/mosaic'; +import { mount } from 'enzyme'; import { JSONSchema4 } from 'json-schema'; import * as React from 'react'; -import { SchemaTree } from '../../tree'; -import { metadataStore } from '../../tree/metadata'; -import { SchemaKind, SchemaTreeListNode } from '../../types'; -import { SchemaErrorRow, SchemaPropertyRow, SchemaRow } from '../SchemaRow'; -import { Caret } from '../shared'; -import { Validations } from '../shared/Validations'; - -describe('SchemaRow component', () => { - test('should render falsy validations', () => { - const node: SchemaTreeListNode = { - id: '0.n1f7tvhzoj', - name: '', - parent: null, - }; - - metadataStore.set(node, { - schemaNode: { - name: '', - id: '232', - type: SchemaKind.Object, - validations: { - enum: [null, 0, false], - }, - annotations: {}, - enum: [null, 0, false], - } as any, - schema: {} as any, - path: [], - }); - - const rowOptions = { - isEdited: false, - isExpanded: true, - }; - const wrapper = shallow( - shallow() - .find(SchemaPropertyRow) - .shallow() - .find(Validations) - .shallow() - .find(Popover) - .prop('content') as React.ReactElement, - ); +import { SchemaRow } from '../SchemaRow'; +import { buildTree, findNodeWithPath } from '../shared/__tests__/utils'; +import { Properties } from '../shared/Properties'; - expect(wrapper).toHaveText('enum:null,0,false'); - }); +describe('SchemaRow component', () => { + describe('resolving error', () => { + let tree: RootNode; + let schema: JSONSchema4; - test('should render caret for top-level $ref', () => { - const schema: JSONSchema4 = { - $ref: '#/definitions/foo', - definitions: { - foo: { - type: 'string', + beforeEach(() => { + schema = { + type: 'object', + properties: { + user: { + $ref: '#/properties/foo', + }, }, - }, - }; - - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Caret)).toExist(); - expect(wrapper.find(Caret)).toHaveProp('style', { - height: 20, - position: 'relative', - width: 20, - }); - }); - - test('should render caret for top-level array with $ref items', () => { - const schema: JSONSchema4 = { - type: 'array', - items: { - $ref: '#/foo', - }, - }; + }; - const tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, + tree = buildTree(schema); }); - tree.populate(); - - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Caret)).toExist(); - expect(wrapper.find(Caret)).toHaveProp('style', { - height: 20, - position: 'relative', - width: 20, + it('given no custom resolver, should render a generic error message', () => { + const wrapper = mount(); + expect(wrapper.find(Icon).at(1)).toHaveProp('title', `Could not resolve '#/properties/foo'`); + wrapper.unmount(); }); - }); - - describe('expanding errors', () => { - describe('$refs', () => { - let tree: SchemaTree; - beforeEach(() => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - user: { - $ref: '#/properties/foo', - }, - }, - }; - - tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - }); + it('given a custom resolver, should render a message thrown by it', () => { + const message = "I don't know how to resolve it. Sorry"; - test('given no custom resolver, should render a generic error message', () => { - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - const wrapper = shallow() - .find(SchemaErrorRow) - .shallow(); - expect(wrapper).toHaveText(`Could not dereference "#/properties/foo"`); + tree = buildTree(schema, { + refResolver: () => { + throw new ReferenceError(message); + }, }); - test('given a custom resolver, should render a message thrown by it', () => { - const message = "I don't know how to resolve it. Sorry"; - tree.treeOptions.resolveRef = () => { - throw new Error(message); - }; - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - const wrapper = shallow() - .find(SchemaErrorRow) - .shallow(); - expect(wrapper).toHaveText(message); - }); + const wrapper = mount(); + expect(wrapper.find(Icon).at(1)).toHaveProp('title', message); + wrapper.unmount(); }); }); describe('required property', () => { - let tree: SchemaTree; + let schema: JSONSchema4; + + function isRequired(schema: JSONSchema4, nodePath: readonly string[], value: boolean) { + const tree = buildTree(schema); + + const schemaNode = findNodeWithPath(tree, nodePath); + if (!schemaNode) { + throw Error('Node not found, invalid configuration'); + } + const wrapper = mount(); + expect(wrapper.find(Properties)).toHaveProp('required', value); + wrapper.unmount(); + } beforeEach(() => { - const schema: JSONSchema4 = { + schema = { type: 'object', properties: { user: { @@ -186,55 +85,29 @@ describe('SchemaRow component', () => { }, }, }; - - tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - tree.unwrap(tree.itemAt(1) as TreeListParentNode); }); - test('should preserve the required validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - expect(wrapper.find(Validations)).toHaveProp('required', true); + it('should preserve the required validation', () => { + isRequired(schema, ['properties', 'id', 'properties', 'foo'], true); }); - test('should preserve the optional validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Validations)).toHaveProp('required', false); + it('should preserve the optional validation', () => { + isRequired(schema, ['properties', 'id', 'properties', 'bar'], false); }); describe('given a referenced object', () => { - test('should preserve the required validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Validations)).toHaveProp('required', true); + it('should preserve the required validation', () => { + isRequired(schema, ['properties', 'user', 'properties', 'foo'], true); }); - test('should preserve the optional validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Validations)).toHaveProp('required', false); + it('should preserve the optional validation', () => { + isRequired(schema, ['properties', 'user', 'properties', 'bar'], false); }); }); describe('given array with items', () => { beforeEach(() => { - const schema: JSONSchema4 = { + schema = { title: 'test', type: 'array', items: { @@ -253,38 +126,24 @@ describe('SchemaRow component', () => { required: ['code', 'msg'], }, }; - - tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); }); - test.each([1, 2])('should preserve the required validation for %i item', pos => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Validations)).toHaveProp('required', true); + it('should preserve the required validation for code item', () => { + isRequired(schema, ['items', 'properties', 'code'], true); }); - test('should preserve the optional validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); + it('should preserve the required validation for msg item', () => { + isRequired(schema, ['items', 'properties', 'msg'], true); + }); - expect(wrapper.find(Validations)).toHaveProp('required', false); + it('should preserve the optional validation', () => { + isRequired(schema, ['items', 'properties', 'ref'], false); }); }); describe('given array with arrayish items', () => { beforeEach(() => { - const schema: JSONSchema4 = { + schema = { title: 'test', type: 'array', items: [ @@ -305,32 +164,18 @@ describe('SchemaRow component', () => { }, ], }; - - tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); }); - test.each([2, 3])('should preserve the required validation for %i item', pos => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper.find(Validations)).toHaveProp('required', true); + it('should preserve the required validation for code item', () => { + isRequired(schema, ['items', '0', 'properties', 'code'], true); }); - test('should preserve the optional validation', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); + it('should preserve the required validation for msg item', () => { + isRequired(schema, ['items', '0', 'properties', 'msg'], true); + }); - expect(wrapper.find(Validations)).toHaveProp('required', false); + it('should preserve the optional validation', () => { + isRequired(schema, ['items', '0', 'properties', 'ref'], false); }); }); }); diff --git a/src/components/__tests__/SchemaTree.spec.tsx b/src/components/__tests__/SchemaTree.spec.tsx deleted file mode 100644 index 6c43f683..00000000 --- a/src/components/__tests__/SchemaTree.spec.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { Tree, TreeList, TreeState, TreeStore } from '@stoplight/tree-list'; -import { shallow } from 'enzyme'; -import 'jest-enzyme'; -import { JSONSchema4 } from 'json-schema'; -import * as React from 'react'; -import { useMetadata } from '../../hooks/useMetadata'; -import { SchemaTree } from '../index'; - -jest.mock('mobx-react-lite', () => ({ - observer: (children: any) => children, -})); -jest.mock('../../hooks/useMetadata'); - -const schema: JSONSchema4 = { - type: 'object', - properties: { - data: { - items: { - $ref: '#/definitions/Gif', - }, - type: 'array', - }, - meta: { - $ref: '#/definitions/Meta', - }, - pagination: { - $ref: '#/definitions/Pagination', - }, - }, -}; - -describe('SchemaTree component', () => { - let useCallbackSpy: jest.SpyInstance; - let useStateSpy: jest.SpyInstance; - let setStateActionSpy: jest.Mock; - let store: TreeStore; - - beforeEach(() => { - setStateActionSpy = jest.fn(); - useStateSpy = jest.spyOn(React, 'useState').mockImplementation(() => [{}, setStateActionSpy]); - useCallbackSpy = jest.spyOn(React, 'useCallback'); - (useMetadata as jest.Mock).mockReturnValue({}); - store = new TreeStore(new Tree(), new TreeState()); - }); - - afterEach(() => { - (useMetadata as jest.Mock).mockReset(); - useStateSpy.mockRestore(); - useCallbackSpy.mockRestore(); - }); - - describe('tree-list', () => { - test('should be rendered', () => { - const wrapper = shallow(); - - expect(wrapper.find(TreeList)).toExist(); - expect(wrapper.find(TreeList)).toHaveProp({ - store, - }); - }); - - test('should be not draggable', () => { - const treeList = shallow().find(TreeList); - - expect(treeList.prop('canDrag')).toHaveLength(0); - expect(treeList.prop('canDrag')!({} as any)).toBe(false); - }); - }); -}); diff --git a/src/components/__tests__/Type.spec.tsx b/src/components/__tests__/Type.spec.tsx deleted file mode 100644 index a951d939..00000000 --- a/src/components/__tests__/Type.spec.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { shallow } from 'enzyme'; -import 'jest-enzyme'; -import * as React from 'react'; -import { SchemaKind } from '../../types'; -import { IType, PropertyTypeColors, Type } from '../shared/Types'; - -describe('Type component', () => { - it.each(Object.keys(PropertyTypeColors))('should handle $s type', type => { - const wrapper = shallow(); - - expect(wrapper).toHaveText(type); - }); - - it('should handle unknown types', () => { - // @ts-ignore - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo'); - }); - - it('should display non-array subtype for array', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('array[object]'); - }); - - it('should not display array subtype for array', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('array'); - }); - - describe('titles', () => { - describe('when main type equals array', () => { - it('given object type, should display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo[]'); - }); - - it('given array type, should display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo[]'); - }); - - it('given primitive type, should not display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('array[string]'); - }); - - it('given mixed types, should not display title', () => { - const wrapper = shallow( - , - ); - - expect(wrapper).toHaveText('array[string,object]'); - }); - - it('given $ref type, should display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo[]'); - }); - }); - - it('given object type, should always display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo'); - }); - - it('given $ref type, should always display title', () => { - const wrapper = shallow(); - - expect(wrapper).toHaveText('foo'); - }); - - it.each([SchemaKind.Null, SchemaKind.Integer, SchemaKind.Number, SchemaKind.Boolean, SchemaKind.String])( - 'given primitive %s type, should not display title', - type => { - const wrapper = shallow(); - - expect(wrapper).toHaveText(type); - }, - ); - }); -}); diff --git a/src/components/__tests__/Validations.spec.tsx b/src/components/__tests__/Validations.spec.tsx deleted file mode 100644 index 5bca3e7d..00000000 --- a/src/components/__tests__/Validations.spec.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { TreeState } from '@stoplight/tree-list'; -import { Dictionary } from '@stoplight/types'; -import { Popover } from '@stoplight/ui-kit'; -import { shallow } from 'enzyme'; -import 'jest-enzyme'; -import { JSONSchema4 } from 'json-schema'; -import * as React from 'react'; -import { SchemaTree } from '../../tree'; - -import { getValidations } from '../../utils/getValidations'; -import { SchemaPropertyRow, SchemaRow } from '../SchemaRow'; -import { Format, Validations } from '../shared/Validations'; - -describe('Validations component', () => { - describe('when property is deprecated', () => { - let validations: Dictionary; - - beforeEach(() => { - validations = getValidations({ 'x-deprecated': true, type: 'string', minLength: 2, default: 'foo' }); - }); - - test('should exclude deprecated from general validations', () => { - const wrapper = shallow().find(Popover); - - expect(shallow(wrapper.prop('content') as React.ReactElement)).toHaveText('default:"foo"minLength:2'); - expect(shallow(wrapper.prop('target') as React.ReactElement)).toHaveText('+2'); - }); - - test('should render deprecated box next to popover', () => { - const wrapper = shallow().childAt(0); - - expect(wrapper).toHaveText('deprecated'); - }); - }); -}); - -describe('Format', () => { - let tree: SchemaTree; - - beforeEach(() => { - const schema: JSONSchema4 = require('../../__fixtures__/formats-schema.json'); - - tree = new SchemaTree(schema, new TreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - }); - - test('should render next to a single type with and inherit its color', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow() - .find(Format) - .shallow(); - - expect(wrapper).toHaveProp('className', 'ml-2 text-red-7 dark:text-red-6'); - }); - - test('should render next to an array of types in default (black) color', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow() - .find(Format) - .shallow(); - - expect(wrapper).toHaveProp('className', 'ml-2'); - }); - - test('should not render when the type(s) is/are missing', () => { - const wrapper = shallow() - .find(SchemaPropertyRow) - .shallow(); - - expect(wrapper).not.toContain(Format); - }); -}); diff --git a/src/components/index.tsx b/src/components/index.tsx index f77b5926..0d97e164 100644 --- a/src/components/index.tsx +++ b/src/components/index.tsx @@ -1,4 +1,3 @@ export * from './JsonSchemaViewer'; export * from './SchemaRow'; -export * from './SchemaTree'; export * from './shared'; diff --git a/src/components/shared/Caret.tsx b/src/components/shared/Caret.tsx index d2a17471..01bb7a14 100644 --- a/src/components/shared/Caret.tsx +++ b/src/components/shared/Caret.tsx @@ -1,22 +1,26 @@ -import { Icon, IIconProps } from '@stoplight/ui-kit'; +import { faChevronDown } from '@fortawesome/free-solid-svg-icons/faChevronDown.js'; +import { faChevronRight } from '@fortawesome/free-solid-svg-icons/faChevronRight.js'; +import { Icon } from '@stoplight/mosaic'; import * as React from 'react'; +import { CARET_ICON_BOX_DIMENSION, CARET_ICON_SIZE, CARET_OFFSET } from '../../consts'; + export interface ICaret { isExpanded: boolean; - style?: React.CSSProperties; - size?: IIconProps['iconSize']; } -export const Caret: React.FunctionComponent = ({ style, size, isExpanded }) => ( - = ({ isExpanded }) => ( +
- - + +
); diff --git a/src/components/shared/ChildStack.tsx b/src/components/shared/ChildStack.tsx new file mode 100644 index 00000000..25920bb5 --- /dev/null +++ b/src/components/shared/ChildStack.tsx @@ -0,0 +1,30 @@ +import { SchemaNode } from '@stoplight/json-schema-tree'; +import { Box } from '@stoplight/mosaic'; +import * as React from 'react'; + +import { NESTING_OFFSET } from '../../consts'; +import { SchemaRow, SchemaRowProps } from '../SchemaRow'; + +const childStackStyle = { paddingLeft: NESTING_OFFSET }; + +type ChildStackProps = { + childNodes: readonly SchemaNode[]; + currentNestingLevel: number; + className?: string; + RowComponent?: React.FC; +}; +export const ChildStack = ({ + childNodes, + currentNestingLevel, + className, + RowComponent = SchemaRow, +}: ChildStackProps) => ( + + {childNodes.map((childNode: SchemaNode, index) => ( + + {index > 0 && } + + + ))} + +); diff --git a/src/components/shared/Description.tsx b/src/components/shared/Description.tsx index 1f486f6d..feacc7fc 100644 --- a/src/components/shared/Description.tsx +++ b/src/components/shared/Description.tsx @@ -1,18 +1,13 @@ import { MarkdownViewer } from '@stoplight/markdown-viewer'; -import { Popover } from '@stoplight/ui-kit'; +import { Box } from '@stoplight/mosaic'; import * as React from 'react'; export const Description: React.FunctionComponent<{ value: string }> = ({ value }) => ( - {value}
} - targetClassName="text-darken-7 dark:text-lighten-6 w-full truncate" - content={ -
- -
- } + ); diff --git a/src/components/shared/Divider.tsx b/src/components/shared/Divider.tsx deleted file mode 100644 index e3899607..00000000 --- a/src/components/shared/Divider.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Dictionary } from '@stoplight/types'; -import * as React from 'react'; -import { JSONSchema4CombinerName } from '../../types'; - -const DIVIDERS: Dictionary = { - allOf: 'and', - anyOf: 'and/or', - oneOf: 'or', -}; - -export const Divider: React.FunctionComponent<{ kind: JSONSchema4CombinerName }> = ({ kind }) => ( -
-
{DIVIDERS[kind]}
-
-
-); diff --git a/src/components/shared/Format.tsx b/src/components/shared/Format.tsx new file mode 100644 index 00000000..6867e76b --- /dev/null +++ b/src/components/shared/Format.tsx @@ -0,0 +1,14 @@ +import { isRegularNode, SchemaNode } from '@stoplight/json-schema-tree'; +import * as React from 'react'; + +type FormatProps = { + schemaNode: SchemaNode; +}; + +export const Format: React.FunctionComponent = ({ schemaNode }) => { + if (!isRegularNode(schemaNode) || schemaNode.format === null) { + return null; + } + + return {`<${schemaNode.format}>`}; +}; diff --git a/src/components/shared/Properties.tsx b/src/components/shared/Properties.tsx new file mode 100644 index 00000000..39956a2d --- /dev/null +++ b/src/components/shared/Properties.tsx @@ -0,0 +1,36 @@ +import { Dictionary } from '@stoplight/types'; +import * as React from 'react'; + +import { useJSVOptionsContext } from '../../contexts'; + +export interface IProperties { + required: boolean; + deprecated: boolean; + validations: Dictionary; +} + +export const Properties: React.FunctionComponent = ({ + required, + deprecated, + validations: { readOnly, writeOnly }, +}) => { + const { viewMode } = useJSVOptionsContext(); + + // Show readOnly writeOnly validations only in standalone mode and only if just one of them is present + const showVisibilityValidations = viewMode === 'standalone' && !!readOnly !== !!writeOnly; + const visibility = showVisibilityValidations ? ( + readOnly ? ( + read-only + ) : ( + write-only + ) + ) : null; + + return ( + <> + {deprecated ? deprecated : null} + {visibility} + {required && required} + + ); +}; diff --git a/src/components/shared/Property.tsx b/src/components/shared/Property.tsx deleted file mode 100644 index bd60d090..00000000 --- a/src/components/shared/Property.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { isLocalRef } from '@stoplight/json'; -import { Optional } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { isObject as _isObject, size as _size } from 'lodash'; -import * as React from 'react'; -import { getSchemaNodeMetadata } from '../../tree/metadata'; -import { GoToRefHandler, IArrayNode, IObjectNode, SchemaKind, SchemaNode, SchemaTreeListNode } from '../../types'; -import { getPrimaryType } from '../../utils/getPrimaryType'; -import { hasRefItems, isArrayNodeWithItems, isCombinerNode, isRefNode } from '../../utils/guards'; -import { inferType } from '../../utils/inferType'; -import { Types } from './Types'; - -export interface IProperty { - node: SchemaTreeListNode; - onGoToRef?: GoToRefHandler; -} - -function count(obj: Optional): number | null { - if (_isObject(obj)) { - return _size(obj); - } - - return null; -} - -function shouldShowPropertyName(treeNode: SchemaTreeListNode) { - if (treeNode.parent === null) return false; - try { - const { schemaNode } = getSchemaNodeMetadata(treeNode.parent); - if (!('type' in schemaNode) || 'combiner' in schemaNode) { - return false; - } - - const type = getPrimaryType(schemaNode); - - if (type === SchemaKind.Array && (schemaNode as IArrayNode).items) { - const { schemaNode: itemsSchemaNode } = getSchemaNodeMetadata(treeNode); - return !('combiner' in itemsSchemaNode); - } - - return type === SchemaKind.Object; - } catch { - return false; - } -} - -function isExternalRefSchemaNode(schemaNode: SchemaNode) { - return isRefNode(schemaNode) && schemaNode.$ref !== null && !isLocalRef(schemaNode.$ref); -} - -function retrieve$ref(node: SchemaNode): Optional { - if (isRefNode(node) && node.$ref !== null) { - return node.$ref; - } - - if (hasRefItems(node) && node.items.$ref !== null) { - return `$ref(${node.items.$ref})`; - } - - return; -} - -function getTitle(node: SchemaNode): Optional { - if (isArrayNodeWithItems(node)) { - if (Array.isArray(node.items) || !node.items.title) { - return retrieve$ref(node); - } - - return node.items.title; - } - - return node.title || retrieve$ref(node); -} - -export const Property: React.FunctionComponent = ({ node: treeNode, onGoToRef }) => { - const { path, schemaNode: node } = getSchemaNodeMetadata(treeNode); - const type = isRefNode(node) ? '$ref' : isCombinerNode(node) ? node.combiner : node.type; - const subtype = isArrayNodeWithItems(node) ? (hasRefItems(node) ? '$ref' : inferType(node.items)) : void 0; - const title = getTitle(node); - - const childrenCount = React.useMemo(() => { - if (type === SchemaKind.Object || (Array.isArray(type) && type.includes(SchemaKind.Object))) { - return count((node as IObjectNode).properties); - } - - if (subtype === SchemaKind.Object) { - return count(((node as IArrayNode).items as IObjectNode).properties); - } - - if (subtype === SchemaKind.Array) { - return count((node as IArrayNode).items as IArrayNode); - } - - return null; - }, [node]); - - const handleGoToRef = React.useCallback(() => { - if (onGoToRef && isRefNode(node) && node.$ref !== null) { - onGoToRef(node.$ref, node); - } - }, [onGoToRef, node]); - - return ( - <> - {path.length > 0 && shouldShowPropertyName(treeNode) &&
{path[path.length - 1]}
} - - - - {onGoToRef && isExternalRefSchemaNode(node) ? ( - - (go to ref) - - ) : null} - - {childrenCount !== null &&
{`{${childrenCount}}`}
} - - {path.length > 1 && path[path.length - 2] === 'patternProperties' ? ( -
(pattern property)
- ) : null} - - ); -}; diff --git a/src/components/shared/Types.tsx b/src/components/shared/Types.tsx index 2195f104..6ef3353b 100644 --- a/src/components/shared/Types.tsx +++ b/src/components/shared/Types.tsx @@ -1,113 +1,57 @@ -import { Dictionary, Optional } from '@stoplight/types'; -import cn from 'classnames'; -import { JSONSchema4TypeName } from 'json-schema'; +import { + isReferenceNode, + isRegularNode, + RegularNode, + SchemaCombinerName, + SchemaNode, + SchemaNodeKind, +} from '@stoplight/json-schema-tree'; import * as React from 'react'; -import { JSONSchema4CombinerName, SchemaKind } from '../../types'; +import { printName } from '../../utils'; -/** - * TYPE - */ -export interface IType { - type: JSONSchema4TypeName | JSONSchema4CombinerName | 'binary' | '$ref'; - subtype: Optional | '$ref'; - className?: string; - title: Optional; +function shouldRenderName(type: SchemaNodeKind | SchemaCombinerName | '$ref'): boolean { + return type === SchemaNodeKind.Array || type === SchemaNodeKind.Object || type === '$ref'; } -function shouldRenderTitle(type: string): boolean { - return type === SchemaKind.Array || type === SchemaKind.Object || type === '$ref'; +function getTypes(schemaNode: RegularNode): Array { + return [schemaNode.types, schemaNode.combiners].reduce>( + (values, value) => { + if (value === null) { + return values; + } + + values.push(...value); + return values; + }, + [], + ); } -function getPrintableArrayType(subtype: IType['subtype'], title: IType['title']): string { - if (!subtype) return SchemaKind.Array; - - if (Array.isArray(subtype)) { - return `${SchemaKind.Array}[${subtype.join(',')}]`; +export const Types: React.FunctionComponent<{ schemaNode: SchemaNode }> = ({ schemaNode }) => { + if (isReferenceNode(schemaNode)) { + return {schemaNode.value ?? '$ref'}; } - if (title && shouldRenderTitle(subtype)) { - return `${title}[]`; + if (!isRegularNode(schemaNode)) { + return null; } - if (subtype !== SchemaKind.Array && subtype !== '$ref') { - return `${SchemaKind.Array}[${subtype}]`; - } - - return SchemaKind.Array; -} - -function getPrintableType(type: IType['type'], subtype: IType['subtype'], title: IType['title']): string { - if (type === SchemaKind.Array) { - return getPrintableArrayType(subtype, title); - } else if (title && shouldRenderTitle(type)) { - return title; - } else { - return type; - } -} - -export const Type: React.FunctionComponent = ({ className, title, type, subtype }) => { - return ( - - {getPrintableType(type, subtype, title)} - - ); -}; -Type.displayName = 'JsonSchemaViewer.Type'; + const types = getTypes(schemaNode); -/** - * TYPES - */ -interface ITypes { - className?: string; - type: Optional; - subtype: Optional; - title: Optional; -} + if (types.length === 0) return null; -export const Types: React.FunctionComponent = ({ className, title, type, subtype }) => { - if (type === void 0) return null; - - if (!Array.isArray(type)) { - return ; - } + const rendered = types.map((type, i, { length }) => ( + + {shouldRenderName(type) ? printName(schemaNode) ?? type : type} + {i < length - 1 && ( + + {' or '} + + )} + + )); - return ( -
- <> - {type.map((name, i, { length }) => ( - - - - {i < length - 1 && ( - - {' or '} - - )} - - ))} - -
- ); + return rendered.length > 1 ?
{rendered}
: <>{rendered}; }; Types.displayName = 'JsonSchemaViewer.Types'; - -/** - * HELPERS - */ -export const PropertyTypeColors: Dictionary = { - object: 'text-blue-6 dark:text-blue-4', - any: 'text-blue-5', - array: 'text-green-6 dark:text-green-4', - allOf: 'text-orange-5', - anyOf: 'text-orange-5', - oneOf: 'text-orange-5', - null: 'text-orange-5', - integer: 'text-red-7 dark:text-red-6', - number: 'text-red-7 dark:text-red-6', - boolean: 'text-red-4', - binary: 'text-green-4', - string: 'text-green-7 dark:text-green-5', - $ref: 'text-purple-6 dark:text-purple-4', -}; diff --git a/src/components/shared/Validations.tsx b/src/components/shared/Validations.tsx index 376d714c..f9e36ccf 100644 --- a/src/components/shared/Validations.tsx +++ b/src/components/shared/Validations.tsx @@ -1,106 +1,222 @@ -import { safeStringify } from '@stoplight/json'; +import { RegularNode } from '@stoplight/json-schema-tree'; +import { Flex, Text } from '@stoplight/mosaic'; import { Dictionary } from '@stoplight/types'; -import { Popover } from '@stoplight/ui-kit'; -import { JSONSchema4 } from 'json-schema'; +import capitalize from 'lodash/capitalize.js'; +import keys from 'lodash/keys.js'; +import omit from 'lodash/omit.js'; +import pick from 'lodash/pick.js'; +import pickBy from 'lodash/pickBy.js'; +import uniq from 'lodash/uniq.js'; import * as React from 'react'; -import { ViewModeContext } from '../JsonSchemaViewer'; -import { PropertyTypeColors } from './Types'; export interface IValidations { - required: boolean; - validations: (Dictionary | {}) & { - deprecated?: boolean; - readOnly?: unknown; - writeOnly?: unknown; - format?: unknown; - }; + validations: Dictionary; + hideExamples?: boolean; } -export const Validations: React.FunctionComponent = ({ - required, - validations: { deprecated, readOnly, writeOnly, format, ...validations }, -}) => { - const viewMode = React.useContext(ViewModeContext); - const validationCount = Object.keys(validations).length; - - const requiredElem = ( -
- {required && required} - {validationCount ? +{validationCount} : null} -
- ); +type ValidationFormat = { + name: string; + values: string[]; +}; + +export const numberValidationNames = [ + 'minimum', + 'maximum', + 'minLength', + 'maxLength', + 'minItems', + 'maxItems', + 'exclusiveMinimum', + 'exclusiveMaximum', +]; + +const exampleValidationNames = ['examples']; + +const excludedValidations = ['exclusiveMinimum', 'exclusiveMaximum', 'readOnly', 'writeOnly']; + +const numberValidationFormatters: Record string> = { + minimum: value => `>= ${value}`, + exclusiveMinimum: value => `> ${value}`, + minItems: value => `>= ${value} items`, + minLength: value => `>= ${value} characters`, + maximum: value => `<= ${value}`, + exclusiveMaximum: value => `< ${value}`, + maxItems: value => `<= ${value} items`, + maxLength: value => `<= ${value} characters`, +}; + +const createStringFormatter = (nowrap: boolean | undefined) => (value: unknown) => { + return nowrap && typeof value === 'string' ? value : JSON.stringify(value); +}; + +const createValidationsFormatter = (name: string, options?: { exact?: boolean; nowrap?: boolean }) => ( + value: unknown[] | unknown, +): ValidationFormat | null => { + const values = Array.isArray(value) ? value : [value]; + if (values.length) { + return { + name: options?.exact ? name : values.length > 1 ? `${name} values` : `${name} value`, + values: values.map(createStringFormatter(options?.nowrap)), + }; + } + return null; +}; + +const validationFormatters: Record ValidationFormat | null> = { + enum: createValidationsFormatter('Allowed'), + examples: createValidationsFormatter('Example'), + multipleOf: createValidationsFormatter('Multiple of', { exact: true }), + pattern: createValidationsFormatter('Match pattern', { exact: true, nowrap: true }), + default: createValidationsFormatter('Default'), +}; - // Show readOnly writeOnly validations only in standalone mode and only if just one of them is present - const showVisibilityValidations = viewMode === 'standalone' && !!readOnly !== !!writeOnly; - const visibility = showVisibilityValidations ? ( - readOnly ? ( - read-only - ) : ( - write-only - ) - ) : null; +const oasFormats = { + int32: { + minimum: 0 - 2 ** 31, + maximum: 2 ** 31 - 1, + }, + int64: { + minimum: 0 - 2 ** 63, + maximum: 2 ** 63 - 1, + }, + float: { + minimum: 0 - 2 ** 128, + maximum: 2 ** 128 - 1, + }, + double: { + minimum: 0 - Number.MAX_VALUE, + maximum: Number.MAX_VALUE, + }, + byte: { + pattern: '^[\\w\\d+\\/=]*$', + }, +}; + +function filterOutOasFormatValidations(format: string, values: Dictionary) { + if (!(format in oasFormats)) return values; + + const newValues = { ...values }; + + for (const [key, value] of Object.entries(oasFormats[format])) { + if (value === newValues[key]) { + delete newValues[key]; + } + } + + return newValues; +} + +export const Validations: React.FunctionComponent = ({ validations, hideExamples }) => { + const numberValidations = pick(validations, numberValidationNames); + const booleanValidations = omit( + pickBy(validations, v => ['true', 'false'].includes(String(v))), + excludedValidations, + ); + const keyValueValidations = omit(validations, [ + ...keys(numberValidations), + ...keys(booleanValidations), + ...excludedValidations, + ...(hideExamples ? exampleValidationNames : []), + ]); return ( <> - {deprecated ? deprecated : null} - {visibility} - {validationCount ? ( - - {Object.keys(validations).map((key, index) => { - const validation = validations[key]; - - let elem = null; - if (Array.isArray(validation)) { - elem = validation.map((v, i) => ( -
-
{String(v)}
- {i < validation.length - 1 ?
,
: null} -
- )); - } else if (typeof validation === 'object') { - elem = ( -
- {'{...}'} -
- ); - } else { - elem = ( -
- {typeof validation === 'string' ? `"${validation}"` : safeStringify(validation)} -
- ); - } - - return ( -
-
{key}:
-
{elem}
-
- ); - })} -
- } - target={requiredElem} - /> - ) : ( - requiredElem - )} + + + ); }; -export const Format: React.FunctionComponent<{ schema: JSONSchema4 }> = ({ schema }) => { +const NumberValidations = ({ + validations, +}: { + validations: Partial>; +}) => { + const entries = Object.entries(validations); + if (!entries.length) { + return null; + } + return ( + + {entries + .map(([key, value]) => numberValidationFormatters[key](value)) + .map((value, i) => ( + + ))} + + ); +}; + +const KeyValueValidations = ({ validations }: { validations: Dictionary }) => ( + <> + {keys(validations) + .filter(key => Object.keys(validationFormatters).includes(key)) + .map(key => { + const validation = validationFormatters[key](validations[key]); + if (validation) { + return ; + } else { + return null; + } + })} + +); + +const KeyValueValidation = ({ name, values }: { name: string; values: string[] }) => { return ( -
- {`<${schema.format}>`} -
+ + {capitalize(name)}: + {uniq(values).map(value => ( + + ))} + ); }; + +const NameValidations = ({ validations }: { validations: Dictionary }) => ( + <> + {keys(validations).length ? ( + + {keys(validations) + .filter(key => validations[key]) + .map(key => ( + + ))} + + ) : null} + +); + +const Value = ({ name, className }: { name: string; className?: string }) => ( + + {name} + +); + +export function validationCount(schemaNode: RegularNode) { + const validations = getValidationsFromSchema(schemaNode); + const validationKeys = keys(omit(validations, excludedValidations)); + return uniq(validationKeys.map(key => ([...numberValidationNames].includes(key) ? 'number' : key))).length; +} + +export function getValidationsFromSchema(schemaNode: RegularNode) { + return { + ...(schemaNode.enum !== null ? { enum: schemaNode.enum } : null), + ...('annotations' in schemaNode + ? { + ...(schemaNode.annotations.default ? { default: schemaNode.annotations.default } : null), + ...(schemaNode.annotations.examples ? { examples: schemaNode.annotations.examples } : null), + } + : null), + ...getFilteredValidations(schemaNode), + }; +} + +function getFilteredValidations(schemaNode: RegularNode) { + if (schemaNode.format !== null) { + return filterOutOasFormatValidations(schemaNode.format, schemaNode.validations); + } + + return schemaNode.validations; +} diff --git a/src/components/shared/__tests__/Format.spec.tsx b/src/components/shared/__tests__/Format.spec.tsx new file mode 100644 index 00000000..465e5a3b --- /dev/null +++ b/src/components/shared/__tests__/Format.spec.tsx @@ -0,0 +1,36 @@ +import 'jest-enzyme'; + +import { mount } from 'enzyme'; +import { JSONSchema4 } from 'json-schema'; +import * as React from 'react'; + +import { SchemaRow } from '../../SchemaRow'; +import { Format } from '../Format'; +import { buildTree, findNodeWithPath } from './utils'; + +describe('Format component', () => { + const schema: JSONSchema4 = require('../../../__fixtures__/formats-schema.json'); + let tree = buildTree(schema); + + it('should render next to a single type', () => { + const wrapper = mount(); + expect(wrapper.find(Format)).toHaveText(''); + wrapper.unmount(); + }); + + it('should render next to an array of types', () => { + const wrapper = mount( + , + ); + expect(wrapper.find(Format)).toHaveText(''); + wrapper.unmount(); + }); + + it('should render even when the type(s) is/are missing', () => { + const wrapper = mount( + , + ); + expect(wrapper.find(Format)).toHaveText(''); + wrapper.unmount(); + }); +}); diff --git a/src/components/shared/__tests__/Properties.spec.tsx b/src/components/shared/__tests__/Properties.spec.tsx new file mode 100644 index 00000000..7dc98496 --- /dev/null +++ b/src/components/shared/__tests__/Properties.spec.tsx @@ -0,0 +1,32 @@ +import 'jest-enzyme'; + +import { RegularNode } from '@stoplight/json-schema-tree'; +import { Dictionary } from '@stoplight/types'; +import { shallow } from 'enzyme'; +import * as React from 'react'; + +import { Properties } from '../Properties'; + +describe('Properties component', () => { + describe('when property is deprecated', () => { + let validations: Dictionary; + let deprecated: boolean; + + beforeEach(() => { + ({ validations, deprecated } = new RegularNode({ + 'x-deprecated': true, + type: 'string', + minLength: 2, + default: 'foo', + })); + }); + + it('should render deprecated box', () => { + const wrapper = shallow( + , + ).childAt(0); + + expect(wrapper).toHaveText('deprecated'); + }); + }); +}); diff --git a/src/components/shared/__tests__/Property.spec.tsx b/src/components/shared/__tests__/Property.spec.tsx new file mode 100644 index 00000000..51814194 --- /dev/null +++ b/src/components/shared/__tests__/Property.spec.tsx @@ -0,0 +1,304 @@ +import 'jest-enzyme'; + +import { Provider as MosaicProvider } from '@stoplight/mosaic'; +import { mount, ReactWrapper } from 'enzyme'; +import { JSONSchema4 } from 'json-schema'; +import * as React from 'react'; + +import { SchemaRow, Types } from '../..'; +import { buildTree, findNodeWithPath } from './utils'; + +describe('Property component', () => { + const toUnmount: ReactWrapper[] = []; + + function render(schema: JSONSchema4, nodePath?: readonly string[]) { + const tree = buildTree(schema); + + const node = nodePath ? findNodeWithPath(tree, nodePath) : tree.children[0]; + + if (node === undefined) { + throw new Error('Schema node not found in tree'); + } + const wrapper = mount( + + + , + ); + + toUnmount.push(wrapper); + + return wrapper; + } + + afterEach(() => { + while (toUnmount.length > 0) { + toUnmount.pop()?.unmount(); + } + }); + + it('should render Types with proper type and subtype', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + type: 'string', + }, + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"array of strings"`, + ); + }); + + it('should handle nullish items', () => { + const schema: JSONSchema4 = { + type: 'array', + items: null as any, + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"array"`, + ); + }); + + it('should handle nullish $ref', () => { + const schema: JSONSchema4 = { + $ref: null as any, + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot(`"$ref"`); + }); + + describe('properties names', () => { + it('given an object, should display the names of its properties', () => { + const schema: JSONSchema4 = { + properties: { + foo: { + type: 'string', + }, + }, + }; + + const wrapper = render(schema, ['properties', 'foo']); + expect(wrapper.find(SchemaRow).html()).toMatchInlineSnapshot( + `"
foo
string
"`, + ); + }); + + it('given an object among other types, should still display its properties', () => { + const schema: JSONSchema4 = { + type: ['string', 'object'], + properties: { + foo: { + type: 'array', + items: { + type: 'integer', + }, + }, + }, + }; + + const wrapper = render(schema, ['properties', 'foo']); + expect(wrapper.find(SchemaRow).html()).toMatchInlineSnapshot( + `"
foo
array of integers
"`, + ); + }); + + it('given an array of objects, should display names of those properties', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + properties: { + foo: { + type: 'string', + }, + }, + }, + }; + + const wrapper = render(schema, ['items', 'properties', 'foo']); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
foo
string
"`, + ); + }); + + it('given an array with a combiner inside, should merge it', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + oneOf: [ + { + type: 'string', + }, + { + type: 'number', + }, + ], + }, + }; + + const wrapper = render(schema); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
"`, + ); + }); + + it('given an array with a mergeable combiner inside, should merge it', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + oneOf: [ + { + properties: { + foo: {}, + bar: {}, + baz: {}, + }, + }, + ], + type: 'object', + }, + }; + + const wrapper = render(schema); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
array of objects
foo
bar
baz
"`, + ); + }); + + it('given an array with an allOf inside and enabled allOf merging, should display the name of properties', () => { + const schema: JSONSchema4 = { + type: 'object', + properties: { + 'array-all-objects': { + type: 'array', + items: { + allOf: [ + { + properties: { + foo: { + type: 'string', + }, + }, + }, + { + properties: { + bar: { + type: 'string', + }, + }, + }, + ], + type: 'object', + }, + }, + }, + }; + + let wrapper = render(schema, ['properties', 'array-all-objects', 'items', 'properties', 'foo']); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
foo
string
"`, + ); + + wrapper = render(schema, ['properties', 'array-all-objects', 'items', 'properties', 'bar']); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
bar
string
"`, + ); + }); + + it('given a ref pointing at complex type, should display property name', () => { + const schema: JSONSchema4 = { + properties: { + foo: { + $ref: '#/properties/bar', + }, + bar: { + type: 'object', + }, + }, + }; + + const tree = buildTree(schema); + + const wrapper = mount(); + expect(wrapper.html()).toMatchInlineSnapshot( + `"
foo
object
"`, + ); + wrapper.unmount(); + }); + }); + + describe('properties titles', () => { + it('given object type, should render title', () => { + const schema: JSONSchema4 = { + title: 'User', + type: 'object', + properties: { + name: { + type: 'string', + }, + }, + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"User"`, + ); + }); + + it('given array type with non-array items, should render title', () => { + const schema: JSONSchema4 = { + type: 'array', + items: { + title: 'User', + type: 'object', + properties: { + name: { + type: 'string', + }, + }, + }, + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"array of User-s"`, + ); + }); + + it('given array with no items, should render title', () => { + const schema: JSONSchema4 = { + type: 'array', + title: 'User', + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"User"`, + ); + }); + + it('given array with defined items, should not render title', () => { + const schema: JSONSchema4 = { + type: 'array', + items: [ + { + title: 'foo', + type: 'string', + }, + { + title: 'bar', + type: 'number', + }, + ], + }; + + const wrapper = render(schema); + expect(wrapper.find(Types).first().html()).toMatchInlineSnapshot( + `"array"`, + ); + }); + }); +}); diff --git a/src/components/shared/__tests__/Validations.spec.tsx b/src/components/shared/__tests__/Validations.spec.tsx new file mode 100644 index 00000000..e7baf2f3 --- /dev/null +++ b/src/components/shared/__tests__/Validations.spec.tsx @@ -0,0 +1,94 @@ +import 'jest-enzyme'; + +import { RegularNode } from '@stoplight/json-schema-tree'; +import { mount } from 'enzyme'; +import * as React from 'react'; + +import { Validations } from '../../shared'; +import { getValidationsFromSchema } from '../Validations'; + +describe('Validations component', () => { + it('should render number type validations', () => { + const node = new RegularNode({ + type: 'number', + minimum: 10, + maximum: 40, + multipleOf: 10, + default: 20, + example: 20, + enum: [10, 20, 30, 40], + }); + + const validations = getValidationsFromSchema(node); + const wrapper = mount(); + + expect(wrapper).toIncludeText('>= 10<= 40'); + expect(wrapper).toIncludeText('Allowed values:10203040'); + expect(wrapper).toIncludeText('Default value:20'); + expect(wrapper).toIncludeText('Multiple of:10'); + expect(wrapper).toIncludeText('Example value:20'); + }); + + it('should render string type validations', () => { + const node = new RegularNode({ + type: 'string', + minLength: 2, + maxLength: 4, + default: 'foo', + examples: ['Example 1', 'Example 2'], + const: 'bar', + }); + + const validations = getValidationsFromSchema(node); + const wrapper = mount(); + + expect(wrapper).toIncludeText('>= 2 characters<= 4 characters'); + expect(wrapper).toIncludeText('Default value:"foo"'); + expect(wrapper).toIncludeText('Example values:"Example 1""Example 2"'); + expect(wrapper).toIncludeText('Allowed value:"bar"'); + }); + + it('should not render hidden example validations', () => { + const node = new RegularNode({ + type: 'number', + example: 42, + examples: [4, 2], + }); + + const validations = getValidationsFromSchema(node); + const wrapper = mount(); + + expect(wrapper).not.toIncludeText('Example value:42'); + expect(wrapper).not.toIncludeText('Example values:42'); + }); + + describe('OAS formats', () => { + it('given default range, should not render any validation', () => { + const node = new RegularNode({ + type: 'integer', + format: 'int32', + minimum: 0 - Math.pow(2, 31), + maximum: Math.pow(2, 31) - 1, + }); + + const validations = getValidationsFromSchema(node); + const wrapper = mount(); + + expect(wrapper).toBeEmptyRender(); + }); + + it('should render non-standard values', () => { + const node = new RegularNode({ + type: 'integer', + format: 'int64', + minimum: 0, + maximum: Math.pow(2, 63) - 1, + }); + + const validations = getValidationsFromSchema(node); + const wrapper = mount(); + + expect(wrapper).toIncludeText('>= 0'); + }); + }); +}); diff --git a/src/components/shared/__tests__/utils.ts b/src/components/shared/__tests__/utils.ts new file mode 100644 index 00000000..6c05485e --- /dev/null +++ b/src/components/shared/__tests__/utils.ts @@ -0,0 +1,36 @@ +import { + isRegularNode, + isRootNode, + SchemaNode, + SchemaTree as JsonSchemaTree, + SchemaTreeOptions, +} from '@stoplight/json-schema-tree'; +import { JSONSchema4 } from 'json-schema'; +import { isEqual } from 'lodash'; + +export function buildTree(schema: JSONSchema4, options: Partial = {}) { + const jsonSchemaTree = new JsonSchemaTree(schema, { + mergeAllOf: true, + ...options, + }); + jsonSchemaTree.populate(); + return jsonSchemaTree.root; +} + +export const findNodeWithPath = (node: SchemaNode, path: readonly string[]): SchemaNode | undefined => { + if (node.path.length > path.length) { + // too much circular recursion + return undefined; + } + if (isEqual(node.path, path)) return node; + + if ((isRegularNode(node) || isRootNode(node)) && node.children) { + for (const child of node.children) { + const foundNode = findNodeWithPath(child, path); + if (foundNode) return foundNode; + } + } + + // not found + return undefined; +}; diff --git a/src/components/shared/index.ts b/src/components/shared/index.ts index 76ff0306..676fbd43 100644 --- a/src/components/shared/index.ts +++ b/src/components/shared/index.ts @@ -1,6 +1,5 @@ export * from './Caret'; export * from './Description'; -export * from './Divider'; -export * from './Property'; +export * from './Format'; export * from './Types'; export * from './Validations'; diff --git a/src/consts.ts b/src/consts.ts new file mode 100644 index 00000000..d52255d6 --- /dev/null +++ b/src/consts.ts @@ -0,0 +1,13 @@ +import { SchemaCombinerName } from '@stoplight/json-schema-tree'; +import { Dictionary } from '@stoplight/types'; + +export const COMBINER_PRETTY_NAMES: Readonly> = { + [SchemaCombinerName.AllOf]: 'and', + [SchemaCombinerName.AnyOf]: 'and/or', + [SchemaCombinerName.OneOf]: 'or', +}; + +export const CARET_ICON_SIZE = 'xs'; +export const CARET_ICON_BOX_DIMENSION = 12; +export const NESTING_OFFSET = 25; +export const CARET_OFFSET = NESTING_OFFSET; diff --git a/src/contexts/index.ts b/src/contexts/index.ts new file mode 100644 index 00000000..7d705f79 --- /dev/null +++ b/src/contexts/index.ts @@ -0,0 +1 @@ +export * from './jsvOptions'; diff --git a/src/contexts/jsvOptions.tsx b/src/contexts/jsvOptions.tsx new file mode 100644 index 00000000..a117b1c0 --- /dev/null +++ b/src/contexts/jsvOptions.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; + +import { GoToRefHandler, RowAddonRenderer, ViewMode } from '../types'; + +export type JSVOptions = { + defaultExpandedDepth: number; + viewMode: ViewMode; + onGoToRef?: GoToRefHandler; + renderRowAddon?: RowAddonRenderer; + hideExamples?: boolean; +}; + +const JSVOptionsContext = React.createContext({ + defaultExpandedDepth: 0, + viewMode: 'standalone', + hideExamples: false, +}); + +export const useJSVOptionsContext = () => React.useContext(JSVOptionsContext); + +export const JSVOptionsContextProvider = JSVOptionsContext.Provider; diff --git a/src/errors.ts b/src/errors.ts deleted file mode 100644 index 2f20f7ef..00000000 --- a/src/errors.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class ResolvingError extends ReferenceError { - public readonly name = 'ResolvingError'; -} diff --git a/src/guards/isCombiner.ts b/src/guards/isCombiner.ts new file mode 100644 index 00000000..9d59e101 --- /dev/null +++ b/src/guards/isCombiner.ts @@ -0,0 +1,5 @@ +import { SchemaCombinerName } from '@stoplight/json-schema-tree'; + +export function isCombiner(value: string): value is SchemaCombinerName { + return value === SchemaCombinerName.OneOf || value === SchemaCombinerName.AnyOf || value === SchemaCombinerName.AllOf; +} diff --git a/src/guards/isNonNullable.ts b/src/guards/isNonNullable.ts new file mode 100644 index 00000000..39c41f90 --- /dev/null +++ b/src/guards/isNonNullable.ts @@ -0,0 +1,3 @@ +export function isNonNullable(maybeNullable: T): maybeNullable is NonNullable { + return maybeNullable !== void 0 && maybeNullable !== null; +} diff --git a/src/hooks/index.ts b/src/hooks/index.ts deleted file mode 100644 index 4c69c2b6..00000000 --- a/src/hooks/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './useMetadata'; diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts deleted file mode 100644 index 1e526e4d..00000000 --- a/src/hooks/useMetadata.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { useMemo } from 'react'; -import { getMetadata } from '../utils/getMetadata'; - -export const useMetadata = (schema: JSONSchema4) => { - return useMemo(() => getMetadata(schema), [schema]); -}; diff --git a/src/index.ts b/src/index.ts index 40528c41..f07e59b3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,2 @@ -export { JsonSchemaViewer, SchemaRow, SchemaTree as SchemaTreeComponent, PropertyTypeColors } from './components'; -export * from './tree'; +export { JsonSchemaViewer, Validations } from './components'; export * from './types'; -export * from './errors'; diff --git a/src/tree/__tests__/__snapshots__/tree.spec.ts.snap b/src/tree/__tests__/__snapshots__/tree.spec.ts.snap deleted file mode 100644 index a5b08bf7..00000000 --- a/src/tree/__tests__/__snapshots__/tree.spec.ts.snap +++ /dev/null @@ -1,388 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`SchemaTree expanding $refs in allOf given very complex model with circular references, should bail out and display unmerged allOf 1`] = ` -"└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/properties/user - │ ├─ combiner: allOf - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/properties/user/allOf/0 - │ ├─ type: object - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/properties/user/allOf/0/properties/names - │ │ ├─ type: array - │ │ ├─ subtype: $ref[#/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name] - │ │ └─ children - │ └─ 1 - │ └─ #/properties/foo/properties/user/allOf/0/properties/users - │ ├─ type: array - │ ├─ subtype: object - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/properties/user/allOf/0/properties/users/items/properties/creation - │ │ ├─ $ref: #/allOf/0/allOf/0/properties/foo - │ │ └─ children - │ ├─ 1 - │ │ └─ #/properties/foo/properties/user/allOf/0/properties/users/items/properties/foo - │ │ ├─ $ref: #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - │ │ └─ children - │ └─ 2 - │ └─ #/properties/foo/properties/user/allOf/0/properties/users/items/properties/products - │ ├─ $ref: #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - │ └─ children - └─ 1 - └─ #/properties/bar - ├─ type: object - └─ children - └─ 0 - └─ #/properties/bar/properties/foo - ├─ type: object - └─ children - └─ 0 - └─ #/properties/bar/properties/foo/properties/user - ├─ combiner: allOf - └─ children - └─ 0 - └─ #/properties/bar/properties/foo/properties/user/allOf/0 - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/bar/properties/foo/properties/user/allOf/0/properties/names - │ ├─ type: array - │ ├─ subtype: $ref[#/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/name] - │ └─ children - └─ 1 - └─ #/properties/bar/properties/foo/properties/user/allOf/0/properties/users - ├─ type: array - ├─ subtype: object - └─ children - ├─ 0 - │ └─ #/properties/bar/properties/foo/properties/user/allOf/0/properties/users/items/properties/creation - │ ├─ $ref: #/allOf/0/allOf/0/properties/foo - │ └─ children - ├─ 1 - │ └─ #/properties/bar/properties/foo/properties/user/allOf/0/properties/users/items/properties/foo - │ ├─ $ref: #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - │ └─ children - └─ 2 - └─ #/properties/bar/properties/foo/properties/user/allOf/0/properties/users/items/properties/products - ├─ $ref: #/allOf/0/allOf/0/properties/foo/definitions/event/allOf/0/properties/contacts - └─ children -" -`; - -exports[`SchemaTree tree correctness given anyOf combiner placed next to allOf given allOf merging disabled, should still merge 1`] = ` -"├─ 0 -│ └─ # -│ ├─ type: object -│ ├─ combiner: anyOf -│ └─ children -│ ├─ 0 -│ │ └─ #/anyOf/0 -│ │ ├─ type: object -│ │ ├─ combiner: allOf -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/anyOf/0/allOf/0 -│ │ │ ├─ type: object -│ │ │ ├─ required -│ │ │ │ └─ 0: type -│ │ │ └─ children -│ │ │ ├─ 0 -│ │ │ │ └─ #/anyOf/0/allOf/0/properties/type -│ │ │ │ ├─ type: string -│ │ │ │ └─ enum -│ │ │ │ ├─ 0: admin -│ │ │ │ └─ 1: editor -│ │ │ └─ 1 -│ │ │ └─ #/anyOf/0/allOf/0/properties/enabled -│ │ │ └─ type: boolean -│ │ └─ 1 -│ │ └─ #/anyOf/0/allOf/1 -│ │ ├─ type: object -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/anyOf/0/allOf/1/properties/root -│ │ │ └─ type: boolean -│ │ ├─ 1 -│ │ │ └─ #/anyOf/0/allOf/1/properties/group -│ │ │ └─ type: string -│ │ └─ 2 -│ │ └─ #/anyOf/0/allOf/1/properties/expirationDate -│ │ └─ type: string -│ └─ 1 -│ └─ #/anyOf/1 -│ ├─ type: object -│ ├─ combiner: allOf -│ └─ children -│ ├─ 0 -│ │ └─ #/anyOf/1/allOf/0 -│ │ ├─ type: object -│ │ ├─ required -│ │ │ └─ 0: type -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/anyOf/1/allOf/0/properties/type -│ │ │ ├─ type: string -│ │ │ └─ enum -│ │ │ ├─ 0: admin -│ │ │ └─ 1: editor -│ │ └─ 1 -│ │ └─ #/anyOf/1/allOf/0/properties/enabled -│ │ └─ type: boolean -│ └─ 1 -│ └─ #/anyOf/1/allOf/1 -│ ├─ type: object -│ └─ children -│ ├─ 0 -│ │ └─ #/anyOf/1/allOf/1/properties/supervisor -│ │ └─ type: string -│ └─ 1 -│ └─ #/anyOf/1/allOf/1/properties/key -│ └─ type: string -└─ 1 - └─ # - ├─ type: object - ├─ combiner: allOf - └─ children - └─ 0 - └─ #/allOf/0 - ├─ type: object - ├─ required - │ └─ 0: type - └─ children - ├─ 0 - │ └─ #/allOf/0/properties/type - │ ├─ type: string - │ └─ enum - │ ├─ 0: admin - │ └─ 1: editor - └─ 1 - └─ #/allOf/0/properties/enabled - └─ type: boolean -" -`; - -exports[`SchemaTree tree correctness given anyOf combiner placed next to allOf given allOf merging enabled, should merge contents of allOf combiners 1`] = ` -"└─ # - ├─ type: object - ├─ combiner: anyOf - └─ children - ├─ 0 - │ └─ #/anyOf/0 - │ ├─ type: object - │ ├─ required - │ │ └─ 0: type - │ └─ children - │ ├─ 0 - │ │ └─ #/anyOf/0/properties/type - │ │ ├─ type: string - │ │ └─ enum - │ │ ├─ 0: admin - │ │ └─ 1: editor - │ ├─ 1 - │ │ └─ #/anyOf/0/properties/enabled - │ │ └─ type: boolean - │ ├─ 2 - │ │ └─ #/anyOf/0/properties/root - │ │ └─ type: boolean - │ ├─ 3 - │ │ └─ #/anyOf/0/properties/group - │ │ └─ type: string - │ └─ 4 - │ └─ #/anyOf/0/properties/expirationDate - │ └─ type: string - └─ 1 - └─ #/anyOf/1 - ├─ type: object - ├─ required - │ └─ 0: type - └─ children - ├─ 0 - │ └─ #/anyOf/1/properties/type - │ ├─ type: string - │ └─ enum - │ ├─ 0: admin - │ └─ 1: editor - ├─ 1 - │ └─ #/anyOf/1/properties/enabled - │ └─ type: boolean - ├─ 2 - │ └─ #/anyOf/1/properties/supervisor - │ └─ type: string - └─ 3 - └─ #/anyOf/1/properties/key - └─ type: string -" -`; - -exports[`SchemaTree tree correctness given oneOf combiner placed next to allOf given allOf merging disabled, should still merge 1`] = ` -"├─ 0 -│ └─ # -│ ├─ type: object -│ ├─ combiner: oneOf -│ └─ children -│ ├─ 0 -│ │ └─ #/oneOf/0 -│ │ ├─ type: object -│ │ ├─ combiner: allOf -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/oneOf/0/allOf/0 -│ │ │ ├─ type: object -│ │ │ ├─ required -│ │ │ │ └─ 0: type -│ │ │ └─ children -│ │ │ ├─ 0 -│ │ │ │ └─ #/oneOf/0/allOf/0/properties/type -│ │ │ │ ├─ type: string -│ │ │ │ └─ enum -│ │ │ │ ├─ 0: admin -│ │ │ │ └─ 1: editor -│ │ │ └─ 1 -│ │ │ └─ #/oneOf/0/allOf/0/properties/enabled -│ │ │ └─ type: boolean -│ │ └─ 1 -│ │ └─ #/oneOf/0/allOf/1 -│ │ ├─ type: object -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/oneOf/0/allOf/1/properties/root -│ │ │ └─ type: boolean -│ │ ├─ 1 -│ │ │ └─ #/oneOf/0/allOf/1/properties/group -│ │ │ └─ type: string -│ │ └─ 2 -│ │ └─ #/oneOf/0/allOf/1/properties/expirationDate -│ │ └─ type: string -│ └─ 1 -│ └─ #/oneOf/1 -│ ├─ type: object -│ ├─ combiner: allOf -│ └─ children -│ ├─ 0 -│ │ └─ #/oneOf/1/allOf/0 -│ │ ├─ type: object -│ │ ├─ required -│ │ │ └─ 0: type -│ │ └─ children -│ │ ├─ 0 -│ │ │ └─ #/oneOf/1/allOf/0/properties/type -│ │ │ ├─ type: string -│ │ │ └─ enum -│ │ │ ├─ 0: admin -│ │ │ └─ 1: editor -│ │ └─ 1 -│ │ └─ #/oneOf/1/allOf/0/properties/enabled -│ │ └─ type: boolean -│ └─ 1 -│ └─ #/oneOf/1/allOf/1 -│ ├─ type: object -│ └─ children -│ ├─ 0 -│ │ └─ #/oneOf/1/allOf/1/properties/supervisor -│ │ └─ type: string -│ └─ 1 -│ └─ #/oneOf/1/allOf/1/properties/key -│ └─ type: string -└─ 1 - └─ # - ├─ type: object - ├─ combiner: allOf - └─ children - └─ 0 - └─ #/allOf/0 - ├─ type: object - ├─ required - │ └─ 0: type - └─ children - ├─ 0 - │ └─ #/allOf/0/properties/type - │ ├─ type: string - │ └─ enum - │ ├─ 0: admin - │ └─ 1: editor - └─ 1 - └─ #/allOf/0/properties/enabled - └─ type: boolean -" -`; - -exports[`SchemaTree tree correctness given oneOf combiner placed next to allOf given allOf merging enabled, should merge contents of allOf combiners 1`] = ` -"└─ # - ├─ type: object - ├─ combiner: oneOf - └─ children - ├─ 0 - │ └─ #/oneOf/0 - │ ├─ type: object - │ ├─ required - │ │ └─ 0: type - │ └─ children - │ ├─ 0 - │ │ └─ #/oneOf/0/properties/type - │ │ ├─ type: string - │ │ └─ enum - │ │ ├─ 0: admin - │ │ └─ 1: editor - │ ├─ 1 - │ │ └─ #/oneOf/0/properties/enabled - │ │ └─ type: boolean - │ ├─ 2 - │ │ └─ #/oneOf/0/properties/root - │ │ └─ type: boolean - │ ├─ 3 - │ │ └─ #/oneOf/0/properties/group - │ │ └─ type: string - │ └─ 4 - │ └─ #/oneOf/0/properties/expirationDate - │ └─ type: string - └─ 1 - └─ #/oneOf/1 - ├─ type: object - ├─ required - │ └─ 0: type - └─ children - ├─ 0 - │ └─ #/oneOf/1/properties/type - │ ├─ type: string - │ └─ enum - │ ├─ 0: admin - │ └─ 1: editor - ├─ 1 - │ └─ #/oneOf/1/properties/enabled - │ └─ type: boolean - ├─ 2 - │ └─ #/oneOf/1/properties/supervisor - │ └─ type: string - └─ 3 - └─ #/oneOf/1/properties/key - └─ type: string -" -`; - -exports[`SchemaTree tree correctness should match array-of-allofs.json 1`] = ` -"└─ # - ├─ type: object - └─ children - └─ 0 - └─ #/properties/array-all-objects - ├─ type: array - ├─ subtype: object - └─ children - ├─ 0 - │ └─ #/properties/array-all-objects/items/properties/foo - │ └─ type: string - └─ 1 - └─ #/properties/array-all-objects/items/properties/bar - └─ type: string -" -`; diff --git a/src/tree/__tests__/populateTree.spec.ts b/src/tree/__tests__/populateTree.spec.ts deleted file mode 100644 index d4e2fc60..00000000 --- a/src/tree/__tests__/populateTree.spec.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Tree, TreeListParentNode } from '@stoplight/tree-list'; -import { JSONSchema4 } from 'json-schema'; -import { getNodeMetadata } from '../metadata'; -import { populateTree } from '../utils/populateTree'; - -describe('populateTree util', () => { - it('given schema with complex types, throws', () => { - const schema: JSONSchema4 = { - type: [ - 'null' as any, - { - type: 'object', - properties: { - taskId: { - type: 'string', - format: 'uuid', - }, - }, - }, - ], - }; - - const root = Tree.createArtificialRoot(); - expect(() => - populateTree(schema, root, 0, [], { - mergeAllOf: false, - onNode: void 0, - shouldResolveEagerly: false, - stepIn: void 0, - resolveRef() { - return {}; - }, - }), - ).toThrow( - 'The "type" property must be a string, or an array of strings. Objects and array of objects are not valid.', - ); - }); - - it('includes properties with unknown types', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - __ERROR__: 'dd', - }, - }, - }; - - const root = Tree.createArtificialRoot(); - populateTree(schema, root, 0, [], { - mergeAllOf: false, - onNode: void 0, - shouldResolveEagerly: false, - stepIn: void 0, - resolveRef() { - return {}; - }, - }); - expect(getNodeMetadata((root.children[0] as TreeListParentNode).children[0])).toHaveProperty('schema', { - __ERROR__: 'dd', - }); - }); - - it('processes array with refed items correctly', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - user: { - type: 'array', - items: { - $ref: '#/properties/id', - }, - }, - id: { - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }, - }, - }; - - const root = Tree.createArtificialRoot(); - populateTree(schema, root, 0, [], { - mergeAllOf: false, - onNode: void 0, - shouldResolveEagerly: false, - stepIn: void 0, - resolveRef() { - return {}; - }, - }); - expect(((root.children[0] as TreeListParentNode).children[0] as TreeListParentNode).children).toHaveLength(0); - }); -}); diff --git a/src/tree/__tests__/tree.spec.ts b/src/tree/__tests__/tree.spec.ts deleted file mode 100644 index 3e8d730f..00000000 --- a/src/tree/__tests__/tree.spec.ts +++ /dev/null @@ -1,1650 +0,0 @@ -import { TreeListParentNode } from '@stoplight/tree-list'; -import * as fs from 'fs'; -import { JSONSchema4 } from 'json-schema'; -import * as path from 'path'; -import { ResolvingError } from '../../errors'; -import { ViewMode } from '../../types'; -import { getNodeMetadata } from '../metadata'; -import { SchemaTree, SchemaTreeState } from '../tree'; -import { printTree } from './utils/printTree'; - -describe('SchemaTree', () => { - describe('expanding', () => { - describe('internal $refs', () => { - describe('oneOf combiner', () => { - let tree: SchemaTree; - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - user: { - $ref: '#/properties/id', - }, - id: { - oneOf: [ - { - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - }); - - test('upon expanded $ref, should insert only oneOf combiner', () => { - expect(tree.count).toEqual(3); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - - expect(tree.count).toEqual(4); - expect(getNodeMetadata(tree.itemAt(2)!)).toHaveProperty( - 'schema', - expect.objectContaining({ - oneOf: [ - { - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }, - ], - }), - ); - }); - - test('upon expanded $ref and expanded oneOf combiner, should insert object', () => { - expect(tree.count).toEqual(3); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - tree.unwrap(tree.itemAt(2) as TreeListParentNode); - - expect(tree.count).toEqual(5); - expect(getNodeMetadata(tree.itemAt(3)!)).toHaveProperty( - 'schema', - expect.objectContaining({ - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }), - ); - }); - - test('upon expanded id property, should insert object', () => { - expect(tree.count).toEqual(3); - - tree.unwrap(tree.itemAt(2) as TreeListParentNode); - - expect(tree.count).toEqual(4); - expect(getNodeMetadata(tree.itemAt(3)!)).toHaveProperty( - 'schema', - expect.objectContaining({ - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }), - ); - }); - }); - - describe('array with $reffed items', () => { - let tree: SchemaTree; - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - user: { - type: 'array', - items: { - $ref: '#/properties/id', - }, - }, - id: { - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }, - }, - }; - - tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - }); - - test('upon expanded array, should insert object', () => { - expect(tree.count).toEqual(3); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - - expect(tree.count).toEqual(4); - expect(getNodeMetadata(tree.itemAt(2)!)).toHaveProperty( - 'schema', - expect.objectContaining({ - type: 'object', - required: ['foo'], - properties: { - foo: { - type: 'string', - }, - }, - }), - ); - }); - }); - - test('should try to inject the title', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - bar: { - type: 'object', - properties: { - foo: { - $ref: '#/properties/user', - }, - }, - }, - user: { - title: 'User', - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - - expect(getNodeMetadata(tree.itemAt(2)!)).toHaveProperty( - 'schemaNode', - expect.objectContaining({ - $ref: '#/properties/user', - title: 'User', - }), - ); - }); - }); - - describe('empty $ref', () => { - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - id: { - $ref: '', - }, - }, - }; - }); - - test('given no custom resolver, should generate an error', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(2) as TreeListParentNode)).toHaveProperty('error', 'The pointer is empty'); - }); - - test('given a custom resolver, should attempt to resolve the reference', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef() { - throw new ResolvingError('Seems like you do not want this to be empty.'); - }, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(2) as TreeListParentNode)).toHaveProperty( - 'error', - 'Seems like you do not want this to be empty.', - ); - }); - }); - - describe('external $refs', () => { - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - user: { - type: 'array', - items: { - $ref: '../test#', - }, - }, - id: { - $ref: '../foo#id', - }, - }, - }; - }); - - test('given no custom resolver, should generate an error', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(2) as TreeListParentNode)).toHaveProperty( - 'error', - 'Cannot dereference external references', - ); - - tree.unwrap(tree.itemAt(3) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(4) as TreeListParentNode)).toHaveProperty( - 'error', - 'Cannot dereference external references', - ); - }); - - test('given a custom resolver, should attempt to resolve the reference', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef({ source, pointer }) { - if (source === '../test') { - throw new ResolvingError(`Could not read "${source}"`); - } - - throw new ResolvingError(`Pointer "${pointer}" is missing`); - }, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(2) as TreeListParentNode)).toHaveProperty( - 'error', - 'Could not read "../test"', - ); - - tree.unwrap(tree.itemAt(3) as TreeListParentNode); - expect(getNodeMetadata(tree.itemAt(4) as TreeListParentNode)).toHaveProperty( - 'error', - 'Pointer "#id" is missing', - ); - }); - }); - - describe('$refs in allOf', () => { - test('given $ref in allOf', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - type: 'object', - properties: { - name: { - type: 'string', - }, - id: { - type: 'number', - }, - }, - }, - bar: { - allOf: [ - { - $ref: '#/properties/foo', - }, - { - type: 'object', - properties: { - address: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ type: object - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/properties/name - │ │ └─ type: string - │ └─ 1 - │ └─ #/properties/foo/properties/id - │ └─ type: number - └─ 1 - └─ #/properties/bar - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/bar/properties/name - │ └─ type: string - ├─ 1 - │ └─ #/properties/bar/properties/id - │ └─ type: number - └─ 2 - └─ #/properties/bar/properties/address - └─ type: string - " - `); - }); - - test('given $ref in allOf pointing at another allOf, should keep merging', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - baz: { - type: 'object', - }, - foo: { - allOf: [ - { - type: 'object', - properties: { - name: { - type: 'string', - }, - id: { - type: 'number', - }, - }, - }, - { - $ref: '#/properties/baz', - }, - ], - }, - bar: { - allOf: [ - { - $ref: '#/properties/foo', - }, - { - type: 'object', - properties: { - address: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/baz - │ └─ type: object - ├─ 1 - │ └─ #/properties/foo - │ ├─ type: object - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/properties/name - │ │ └─ type: string - │ └─ 1 - │ └─ #/properties/foo/properties/id - │ └─ type: number - └─ 2 - └─ #/properties/bar - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/bar/properties/address - │ └─ type: string - ├─ 1 - │ └─ #/properties/bar/properties/name - │ └─ type: string - └─ 2 - └─ #/properties/bar/properties/id - └─ type: number - " - `); - }); - - test('given direct circular reference pointing at allOf, should bail out and display unmerged allOf', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - allOf: [ - { - $ref: '#/properties/bar', - }, - ], - }, - bar: { - allOf: [ - { - $ref: '#/properties/foo', - }, - { - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ combiner: allOf - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/allOf/0 - │ │ ├─ $ref: #/properties/foo - │ │ └─ children - │ └─ 1 - │ └─ #/properties/foo/allOf/1 - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/allOf/1/properties/name - │ └─ type: string - └─ 1 - └─ #/properties/bar - ├─ type: object - ├─ combiner: allOf - └─ children - └─ 0 - └─ #/properties/bar/allOf/0 - ├─ $ref: #/properties/bar - └─ children - " - `); - }); - - test('given indirect circular reference pointing at allOf, should bail out and display unmerged allOf', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - baz: { - allOf: [ - { - $ref: '#/properties/bar', - }, - ], - }, - foo: { - allOf: [ - { - $ref: '#/properties/baz', - }, - ], - }, - bar: { - allOf: [ - { - $ref: '#/properties/foo', - }, - { - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/baz - │ ├─ type: object - │ ├─ combiner: allOf - │ └─ children - │ └─ 0 - │ └─ #/properties/baz/allOf/0 - │ ├─ $ref: #/properties/baz - │ └─ children - ├─ 1 - │ └─ #/properties/foo - │ ├─ combiner: allOf - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/allOf/0 - │ │ ├─ $ref: #/properties/foo - │ │ └─ children - │ └─ 1 - │ └─ #/properties/foo/allOf/1 - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/allOf/1/properties/name - │ └─ type: string - └─ 2 - └─ #/properties/bar - ├─ type: object - ├─ combiner: allOf - └─ children - └─ 0 - └─ #/properties/bar/allOf/0 - ├─ $ref: #/properties/bar - └─ children - " - `); - }); - - test('given circular reference inside of resolved allOf member, should bail out and display unmerged allOf', () => { - const schema: JSONSchema4 = { - components: { - schemas: { - Campaign: { - type: 'object', - allOf: [ - { - $ref: '#/components/schemas/Discount', - }, - { - properties: { - startDate: { - type: 'number', - }, - }, - }, - ], - }, - Coupon: { - type: 'object', - allOf: [ - { - $ref: '#/components/schemas/Discount', - }, - { - properties: { - endDate: { - type: 'number', - }, - }, - }, - ], - }, - Discount: { - oneOf: [ - { - $ref: '#/components/schemas/Coupon', - }, - { - $ref: '#/components/schemas/Campaign', - }, - ], - }, - }, - }, - properties: { - Discount: { - $ref: '#/components/schemas/Discount', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - tree.unwrap(tree.itemAt(2) as TreeListParentNode); - - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - └─ 0 - └─ #/properties/Discount - ├─ $ref: #/components/schemas/Discount - └─ children - └─ 0 - └─ #/properties/Discount - ├─ combiner: oneOf - └─ children - ├─ 0 - │ └─ #/properties/Discount/oneOf/0 - │ ├─ type: object - │ ├─ combiner: allOf - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/Discount/oneOf/0/allOf/0 - │ │ ├─ $ref: #/components/schemas/Discount - │ │ └─ children - │ └─ 1 - │ └─ #/properties/Discount/oneOf/0/allOf/1 - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/Discount/oneOf/0/allOf/1/properties/endDate - │ └─ type: number - └─ 1 - └─ #/properties/Discount/oneOf/1 - ├─ type: object - ├─ combiner: allOf - └─ children - ├─ 0 - │ └─ #/properties/Discount/oneOf/1/allOf/0 - │ ├─ $ref: #/components/schemas/Discount - │ └─ children - └─ 1 - └─ #/properties/Discount/oneOf/1/allOf/1 - ├─ type: object - └─ children - └─ 0 - └─ #/properties/Discount/oneOf/1/allOf/1/properties/startDate - └─ type: number - " - `); - }); - - test('given very complex model with circular references, should bail out and display unmerged allOf', () => { - const schema = require('../../__fixtures__/complex-allOf-model.json'); - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - expect(printTree(tree)).toMatchSnapshot(); - }); - - test('given circular reference pointing at allOf that are not at top-level, should merge top-level allOf normally', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - baz: { - allOf: [ - { - $ref: '#/properties/bar', - }, - ], - }, - foo: { - allOf: [ - { - $ref: '#/properties/baz', - }, - ], - }, - bar: { - allOf: [ - { - type: 'object', - properties: { - id: { - type: 'string', - }, - address: { - type: 'object', - properties: { - street: { - $ref: '#/properties/foo', - }, - }, - }, - }, - }, - { - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - ], - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/baz - │ ├─ type: object - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/baz/properties/id - │ │ └─ type: string - │ ├─ 1 - │ │ └─ #/properties/baz/properties/address - │ │ ├─ type: object - │ │ └─ children - │ │ └─ 0 - │ │ └─ #/properties/baz/properties/address/properties/street - │ │ ├─ combiner: allOf - │ │ └─ children - │ │ └─ 0 - │ │ └─ #/properties/baz/properties/address/properties/street/allOf/0 - │ │ ├─ $ref: #/properties/baz - │ │ └─ children - │ └─ 2 - │ └─ #/properties/baz/properties/name - │ └─ type: string - ├─ 1 - │ └─ #/properties/foo - │ ├─ combiner: allOf - │ └─ children - │ ├─ 0 - │ │ └─ #/properties/foo/allOf/0 - │ │ ├─ type: object - │ │ └─ children - │ │ ├─ 0 - │ │ │ └─ #/properties/foo/allOf/0/properties/id - │ │ │ └─ type: string - │ │ └─ 1 - │ │ └─ #/properties/foo/allOf/0/properties/address - │ │ ├─ type: object - │ │ └─ children - │ │ └─ 0 - │ │ └─ #/properties/foo/allOf/0/properties/address/properties/street - │ │ ├─ $ref: #/properties/foo - │ │ └─ children - │ └─ 1 - │ └─ #/properties/foo/allOf/1 - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/allOf/1/properties/name - │ └─ type: string - └─ 2 - └─ #/properties/bar - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/bar/properties/id - │ └─ type: string - ├─ 1 - │ └─ #/properties/bar/properties/address - │ ├─ type: object - │ └─ children - │ └─ 0 - │ └─ #/properties/bar/properties/address/properties/street - │ ├─ combiner: allOf - │ └─ children - │ └─ 0 - │ └─ #/properties/bar/properties/address/properties/street/allOf/0 - │ ├─ $ref: #/properties/bar - │ └─ children - └─ 2 - └─ #/properties/bar/properties/name - └─ type: string - " - `); - }); - }); - }); - - describe('allOf failures', () => { - test('given incompatible values, should bail out and display unmerged allOf', () => { - const schema: JSONSchema4 = { - allOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - { - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - ], - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - expect(tree.populate.bind(tree)).not.toThrow(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ combiner: allOf - └─ children - ├─ 0 - │ └─ #/allOf/0 - │ └─ type: string - ├─ 1 - │ └─ #/allOf/1 - │ └─ type: number - └─ 2 - └─ #/allOf/2 - ├─ type: object - └─ children - └─ 0 - └─ #/allOf/2/properties/name - └─ type: string - " - `); - }); - }); - - describe('paths generation', () => { - let schema: JSONSchema4; - let tree: SchemaTree; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - user: { - type: 'object', - properties: { - name: { - type: 'string', - }, - address: { - type: 'string', - }, - }, - }, - permissions: { - type: 'array', - items: { - $ref: '#/properties/user', - }, - }, - }, - }; - - tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - }); - - test('for root', () => { - tree.populate(); - - expect(getNodeMetadata(tree.itemAt(0)!)).toHaveProperty('path', []); - }); - - test('for plain object member', () => { - tree.populate(); - - expect(getNodeMetadata(tree.itemAt(1)!)).toHaveProperty('path', ['properties', 'user']); - }); - - test('for deep object member', () => { - tree.populate(); - - expect(getNodeMetadata(tree.itemAt(2)!)).toHaveProperty('path', ['properties', 'user', 'properties', 'name']); - }); - - test('for array items', () => { - tree.populate(); - - expect(getNodeMetadata(tree.itemAt(tree.count - 1)!)).toHaveProperty('path', ['properties', 'permissions']); - }); - - test('for $reffed array items', () => { - tree.populate(); - tree.unwrap(tree.itemAt(tree.count - 1) as TreeListParentNode); - - expect(getNodeMetadata(tree.itemAt(tree.count - 3)!)).toHaveProperty('path', [ - 'properties', - 'permissions', - 'items', - ]); - - expect(getNodeMetadata(tree.itemAt(tree.count - 2)!)).toHaveProperty('path', [ - 'properties', - 'permissions', - 'items', - 'properties', - 'name', - ]); - - expect(getNodeMetadata(tree.itemAt(tree.count - 1)!)).toHaveProperty('path', [ - 'properties', - 'permissions', - 'items', - 'properties', - 'address', - ]); - }); - }); - - describe('eager $ref resolving', () => { - test('given a plain object with properties, should resolve', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - $ref: '#/properties/bar', - }, - bar: { - type: 'boolean', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ └─ type: boolean - └─ 1 - └─ #/properties/bar - └─ type: boolean - " - `); - }); - - test('given an array with $reffed items, should resolve', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - type: 'array', - items: { - $ref: '#/properties/bar', - }, - }, - bar: { - type: 'boolean', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ type: array - │ └─ subtype: boolean - └─ 1 - └─ #/properties/bar - └─ type: boolean - " - `); - }); - - test('should leave broken $refs', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - type: 'array', - items: { - $ref: '#/properties/baz', - }, - }, - bar: { - $ref: '#/properties/bazinga', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ type: array - │ ├─ subtype: $ref[#/properties/baz] - │ └─ children - └─ 1 - └─ #/properties/bar - ├─ $ref: #/properties/bazinga - └─ children - " - `); - }); - - test('should handle circular references', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - type: 'array', - items: { - type: 'object', - properties: { - user: { - $ref: '#/properties/bar', - }, - }, - }, - }, - bar: { - $ref: '#/properties/baz', - }, - baz: { - $ref: '#/properties/foo', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - ├─ 0 - │ └─ #/properties/foo - │ ├─ type: array - │ ├─ subtype: object - │ └─ children - │ └─ 0 - │ └─ #/properties/foo/items/properties/user - │ ├─ $ref: #/properties/baz - │ └─ children - ├─ 1 - │ └─ #/properties/bar - │ ├─ $ref: #/properties/foo - │ └─ children - └─ 2 - └─ #/properties/baz - ├─ type: array - ├─ subtype: object - └─ children - └─ 0 - └─ #/properties/baz/items/properties/user - ├─ $ref: #/properties/baz - └─ children - " - `); - }); - - test('should handle resolving errors', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - type: 'string', - }, - bar: { - $ref: 'http://localhost:8080/some/not/existing/path', - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: () => { - throw new Error('resolving error'); - }, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - - expect(tree.count).toEqual(4); - expect(getNodeMetadata(tree.itemAt(3)!)).toHaveProperty('error', 'resolving error'); - }); - }); - - describe('onPopulate handler', () => { - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - properties: { - foo: { - type: 'array', - items: { - $ref: '#/properties/bar', - }, - }, - bar: { - type: 'boolean', - }, - }, - }; - }); - - test('should be called when tree is computed for a first time', () => { - const onPopulate = jest.fn(); - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate, - }); - - expect(onPopulate).not.toBeCalled(); - - tree.populate(); - - expect(onPopulate).toBeCalledTimes(1); - expect(onPopulate).toBeCalledWith(tree, tree.root); - }); - - test('given $ref resolution, should be called', () => { - const onPopulate = jest.fn(); - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate, - }); - - expect(onPopulate).not.toBeCalled(); - - tree.populate(); - - tree.unwrap(tree.itemAt(1) as TreeListParentNode); - - expect(onPopulate).toBeCalledTimes(2); - expect(onPopulate).nthCalledWith(1, tree, tree.root); - expect(onPopulate).nthCalledWith(2, tree, tree.itemAt(1)); - }); - - test('given expanding, should be called', () => { - const onPopulate = jest.fn(); - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: -1, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate, - }); - - expect(onPopulate).not.toBeCalled(); - - tree.populate(); - - tree.unwrap(tree.itemAt(0) as TreeListParentNode); - - expect(onPopulate).toBeCalledTimes(2); - expect(onPopulate).nthCalledWith(1, tree, tree.root); - expect(onPopulate).nthCalledWith(2, tree, tree.itemAt(0)); - }); - }); - - describe('tree correctness', () => { - // you can put tests verifying whether we generate expected tree - test('given multiple object and string type, should process properties', () => { - const schema: JSONSchema4 = { - type: ['string', 'object'], - properties: { - ids: { - type: 'array', - items: { - type: 'integer', - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type - │ ├─ 0: string - │ └─ 1: object - └─ children - └─ 0 - └─ #/properties/ids - ├─ type: array - └─ subtype: integer - " - `); - }); - - test('given complex type that includes array and complex array subtype, should not ignore subtype', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - items: { - type: ['null', 'array'], - items: { - type: ['string', 'number'], - }, - description: - "This description can be long and should truncate once it reaches the end of the row. If it's not truncating then theres and issue that needs to be fixed. Help!", - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: object - └─ children - └─ 0 - └─ #/properties/items - ├─ type - │ ├─ 0: null - │ └─ 1: array - └─ subtype - ├─ 0: string - └─ 1: number - " - `); - }); - - describe.each(['anyOf', 'oneOf'])('given %s combiner placed next to allOf', combiner => { - let schema: JSONSchema4; - - beforeEach(() => { - schema = { - type: 'object', - title: 'Account', - allOf: [ - { - type: 'object', - properties: { - type: { - type: 'string', - enum: ['admin', 'editor'], - }, - enabled: { - type: 'boolean', - description: 'Is this account enabled', - }, - }, - required: ['type'], - }, - ], - [combiner]: [ - { - type: 'object', - title: 'Admin', - properties: { - root: { - type: 'boolean', - }, - group: { - type: 'string', - }, - expirationDate: { - type: 'string', - }, - }, - }, - { - type: 'object', - title: 'Editor', - properties: { - supervisor: { - type: 'string', - }, - key: { - type: 'string', - }, - }, - }, - ], - }; - }); - - test('given allOf merging disabled, should still merge', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchSnapshot(); - }); - - test('given allOf merging enabled, should merge contents of allOf combiners', () => { - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchSnapshot(); - }); - }); - - test('given array with oneOf containing items, should merge it correctly', () => { - const schema: JSONSchema4 = { - oneOf: [ - { - items: { - type: 'string', - }, - }, - { - items: { - type: 'number', - }, - }, - ], - type: 'array', - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchInlineSnapshot(` - "└─ # - ├─ type: array - ├─ combiner: oneOf - └─ children - ├─ 0 - │ └─ #/oneOf/0 - │ ├─ type: array - │ └─ subtype: string - └─ 1 - └─ #/oneOf/1 - ├─ type: array - └─ subtype: number - " - `); - }); - - test.each(['standalone', 'read', 'write'])('given %s mode, should populate proper nodes', mode => { - const schema: JSONSchema4 = { - type: ['string', 'object'], - properties: { - id: { - type: 'string', - readOnly: true, - }, - description: { - type: 'string', - writeOnly: true, - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - viewMode: mode as ViewMode, - }); - - tree.populate(); - expect(tree.count).toEqual(mode === 'standalone' ? 3 : 2); - }); - - test.each(['array-of-allofs.json'])('should match %s', filename => { - const schema = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../__fixtures__', filename), 'utf8')); - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: Infinity, - mergeAllOf: true, - resolveRef: void 0, - shouldResolveEagerly: true, - onPopulate: void 0, - }); - - tree.populate(); - expect(printTree(tree)).toMatchSnapshot(); - }); - }); - - test('given visible $ref node, should try to inject the title immediately', () => { - const schema: JSONSchema4 = { - type: 'object', - properties: { - foo: { - $ref: '#/properties/user', - }, - user: { - title: 'User', - type: 'object', - properties: { - name: { - type: 'string', - }, - }, - }, - }, - }; - - const tree = new SchemaTree(schema, new SchemaTreeState(), { - expandedDepth: 0, - mergeAllOf: false, - resolveRef: void 0, - shouldResolveEagerly: false, - onPopulate: void 0, - }); - - tree.populate(); - // tree.unwrap(tree.itemAt(0) as TreeListParentNode); - - expect(getNodeMetadata(tree.itemAt(1)!)).toHaveProperty( - 'schemaNode', - expect.objectContaining({ - $ref: '#/properties/user', - title: 'User', - }), - ); - }); -}); diff --git a/src/tree/__tests__/utils/printTree.ts b/src/tree/__tests__/utils/printTree.ts deleted file mode 100644 index 48c957fd..00000000 --- a/src/tree/__tests__/utils/printTree.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { pathToPointer } from '@stoplight/json'; -import * as treeify from 'treeify'; - -import { TreeListNode } from '@stoplight/tree-list'; -import { JSONSchema4CombinerName } from '../../../types'; -import { hasRefItems, isArrayNodeWithItems } from '../../../utils/guards'; -import { inferType } from '../../../utils/inferType'; -import { getNodeMetadata } from '../../metadata'; -import { SchemaTree } from '../../tree'; - -export function printTree(tree: SchemaTree) { - const root: unknown = - tree.root.children.length > 1 ? tree.root.children.map(prepareTree) : prepareTree(tree.root.children[0]); - - return treeify.asTree(root as treeify.TreeObject, true, true); -} - -type PrintableNode = { - [key in string]: { - type?: unknown; - combiner?: JSONSchema4CombinerName; - enum?: unknown; - required?: unknown; - subtype?: unknown; - $ref?: unknown; - children?: PrintableNode[]; - }; -}; - -function prepareTree(node: TreeListNode): PrintableNode { - const metadata = getNodeMetadata(node); - const schema = 'schemaNode' in metadata ? metadata.schemaNode : null; - const type = schema && 'type' in schema ? schema.type : null; - // taken from Property component - const subtype = - schema && isArrayNodeWithItems(schema) - ? hasRefItems(schema) - ? `$ref[${schema.items.$ref}]` - : inferType(schema.items) - : null; - - return { - [pathToPointer(metadata.path)]: { - ...(type && { type }), - ...(subtype && { subtype }), - ...(schema && { - ...('$ref' in schema && { $ref: schema.$ref }), - ...('combiner' in schema && { combiner: schema.combiner }), - ...('enum' in schema && schema.enum !== void 0 && { enum: schema.enum }), - ...('required' in schema && schema.required !== void 0 && { required: schema.required }), - }), - ...('children' in node && { children: node.children.map(prepareTree) }), - }, - }; -} diff --git a/src/tree/index.ts b/src/tree/index.ts index be12a8a5..6d5a6ef4 100644 --- a/src/tree/index.ts +++ b/src/tree/index.ts @@ -1,2 +1,2 @@ -export { getNodeMetadata } from './metadata'; -export { SchemaTree, SchemaTreeState, SchemaTreeRefDereferenceFn } from './tree'; +export * from './types'; +export * from './utils'; diff --git a/src/tree/metadata.ts b/src/tree/metadata.ts deleted file mode 100644 index 6b2ea4c6..00000000 --- a/src/tree/metadata.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { TreeListNode } from '@stoplight/tree-list'; -import { JsonPath } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { SchemaNode, SchemaTreeListNode } from '../types'; - -export interface ITreeNodeMetaSchema { - path: JsonPath; - schemaNode: SchemaNode; - schema: JSONSchema4; -} - -export interface ITreeNodeMetaError { - path: JsonPath; - error: string; -} - -export type TreeNodeMeta = ITreeNodeMetaSchema | ITreeNodeMetaError; - -export const metadataStore = new WeakMap(); - -export const getNodeMetadata = (node: TreeListNode): TreeNodeMeta => { - const metadata = metadataStore.get(node); - if (metadata === void 0) { - throw new Error('Missing metadata'); - } - - return metadata; -}; - -export const getSchemaNodeMetadata = (node: TreeListNode): ITreeNodeMetaSchema => { - const metadata = getNodeMetadata(node); - - if (!('schema' in metadata)) { - throw new TypeError('Schema node expected'); - } - - return metadata; -}; diff --git a/src/tree/tree.ts b/src/tree/tree.ts deleted file mode 100644 index 7aff300e..00000000 --- a/src/tree/tree.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { extractPointerFromRef, extractSourceFromRef, pointerToPath } from '@stoplight/json'; -import { Tree, TreeListParentNode, TreeState } from '@stoplight/tree-list'; -import { JsonPath, Optional } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { get as _get, isEqual as _isEqual, isObject as _isObject } from 'lodash'; -import { ResolvingError } from '../errors'; -import { ViewMode } from '../types'; -import { hasRefItems, isRefNode } from '../utils/guards'; -import { getSchemaNodeMetadata } from './metadata'; -import { canStepIn } from './utils/canStepIn'; -import { createErrorTreeNode } from './utils/createErrorTreeNode'; -import { populateTree, WalkerRefResolver } from './utils/populateTree'; - -export type SchemaTreeRefInfo = { - source: string | null; - pointer: string | null; -}; - -export type SchemaTreeRefDereferenceFn = ( - ref: SchemaTreeRefInfo, - propertyPath: JsonPath | null, - schema: JSONSchema4, -) => Optional; - -export type SchemaTreePopulateHandler = (tree: SchemaTree, node: TreeListParentNode) => void; - -export type SchemaTreeOptions = { - expandedDepth: number; - mergeAllOf: boolean; - resolveRef: Optional; - shouldResolveEagerly: boolean; - onPopulate: Optional; - viewMode?: ViewMode; -}; - -export { TreeState as SchemaTreeState }; - -export class SchemaTree extends Tree { - public treeOptions: SchemaTreeOptions; - - constructor(public schema: JSONSchema4, public state: TreeState, opts: SchemaTreeOptions) { - super({ - expanded: node => - (!(node.id in state.expanded) && SchemaTree.getLevel(node) <= opts.expandedDepth) || - state.expanded[node.id] === true, - }); - - this.treeOptions = opts; - } - - protected readonly visited = new WeakSet(); - - public populate() { - const expanded = {}; - populateTree(this.schema, this.root, 0, [], { - mergeAllOf: this.treeOptions.mergeAllOf, - onNode: (fragment, node, parentTreeNode, level): boolean => { - if ( - !!fragment.writeOnly !== !!fragment.readOnly && - ((this.treeOptions.viewMode === 'read' && fragment.writeOnly) || - (this.treeOptions.viewMode === 'write' && fragment.readOnly)) - ) { - return false; - } - if ( - !this.treeOptions.shouldResolveEagerly && - ((isRefNode(node) && node.$ref !== null) || (hasRefItems(node) && node.items.$ref !== null)) - ) { - expanded[node.id] = false; - } - - const metadata = Tree.getLevel(parentTreeNode) >= 0 ? getSchemaNodeMetadata(parentTreeNode) : void 0; - - if (metadata !== void 0 && isRefNode(metadata.schemaNode)) return false; - return level <= this.treeOptions.expandedDepth + 1; - }, - resolveRef: this.resolveRef, - shouldResolveEagerly: this.treeOptions.shouldResolveEagerly, - }); - this.state.expanded = expanded; - this.invalidate(); - this.treeOptions.onPopulate?.(this, this.root); - } - - public populateTreeFragment(parent: TreeListParentNode, schema: JSONSchema4, path: JsonPath, stepIn: boolean) { - const initialLevel = Tree.getLevel(parent); - const artificialRoot = Tree.createArtificialRoot(); - populateTree(schema, artificialRoot, initialLevel, path, { - mergeAllOf: this.treeOptions.mergeAllOf, - onNode: (fragment, node, parentTreeNode, level) => { - if (level <= this.treeOptions.expandedDepth || level <= initialLevel) return true; - return stepIn && level <= initialLevel + 1 && canStepIn(getSchemaNodeMetadata(parentTreeNode).schema); - }, - resolveRef: this.resolveRef, - shouldResolveEagerly: this.treeOptions.shouldResolveEagerly, - }); - - if (artificialRoot.children.length === 0) { - throw new Error(`Could not expand node ${path.join('.')}`); - } - - this.insertTreeFragment(stepIn ? this.stepIn(artificialRoot, parent) : artificialRoot.children, parent); - - this.treeOptions.onPopulate?.(this, parent); - } - - protected insertErrorNode(parent: TreeListParentNode, error: string) { - this.insertNode(createErrorTreeNode(parent, error), parent); - } - - protected stepIn(root: TreeListParentNode, parent: TreeListParentNode) { - if ( - root.children.length > 0 && - 'children' in root.children[0] && - _isEqual(getSchemaNodeMetadata(parent).path, getSchemaNodeMetadata(root.children[0]).path) - ) { - return root.children[0].children; - } - - return root.children; - } - - public unwrap(node: TreeListParentNode) { - if (node.children.length !== 0 || this.visited.has(node)) { - return super.unwrap(node); - } - const metadata = getSchemaNodeMetadata(node); - const { path, schemaNode, schema } = metadata; - try { - if (!isRefNode(schemaNode) && !hasRefItems(schemaNode)) { - this.populateTreeFragment(node, schema, path, true); - } else if (isRefNode(schemaNode)) { - this.populateRefFragment(node, path, schemaNode.$ref); - } else if (hasRefItems(schemaNode)) { - this.populateRefFragment(node, [...path, 'items'], schemaNode.items.$ref); - } else { - throw new Error(`I do know not how to expand this node ${path.join('.')}`); - } - } catch (ex) { - this.insertErrorNode(node, ex.message); - } - - this.visited.add(node); - return super.unwrap(node); - } - - protected resolveRef: WalkerRefResolver = (path, $ref) => { - const source = extractSourceFromRef($ref); - const pointer = extractPointerFromRef($ref); - - if (this.treeOptions.resolveRef !== void 0) { - return this.treeOptions.resolveRef({ source, pointer }, path, this.schema); - } else if (source !== null) { - throw new ResolvingError('Cannot dereference external references'); - } else if (pointer === null) { - throw new ResolvingError('The pointer is empty'); - } else { - return _get(this.schema, pointerToPath(pointer)); - } - }; - - protected populateRefFragment(node: TreeListParentNode, path: JsonPath, $ref: string | null) { - if ($ref === null) { - throw new Error('Unknown $ref value'); - } - - const schemaFragment = this.resolveRef(path, $ref); - - if (!_isObject(schemaFragment)) { - throw new ResolvingError(`Could not dereference "${$ref}"`); - } - - this.populateTreeFragment(node, schemaFragment, path, false); - } -} diff --git a/src/tree/types.ts b/src/tree/types.ts new file mode 100644 index 00000000..3cf9e3b0 --- /dev/null +++ b/src/tree/types.ts @@ -0,0 +1,39 @@ +import type { + ReferenceNode, + RegularNode, + SchemaNodeKind, + SchemaTreeRefDereferenceFn, +} from '@stoplight/json-schema-tree'; +import type { Optional } from '@stoplight/types'; + +import type { ViewMode } from '../types'; + +export type SchemaTreeRefInfo = { + source: string | null; + pointer: string | null; +}; + +export type SchemaTreeOptions = { + expandedDepth: number; + mergeAllOf: boolean; + resolveRef: Optional; + viewMode?: ViewMode; +}; + +export type ArrayNode = RegularNode & { + primaryType: SchemaNodeKind.Array; +}; + +export type PrimitiveArrayNode = ArrayNode & { + children: [RegularNode & { simple: true }]; +}; + +export type ComplexArrayNode = ArrayNode & { + children: [RegularNode & { simple: false }]; +}; + +export type BrokenRefArrayNode = ArrayNode & { + children: [ReferenceNode & { error: string }]; +}; + +export type FlattenableNode = PrimitiveArrayNode | ComplexArrayNode | BrokenRefArrayNode; diff --git a/src/tree/utils.ts b/src/tree/utils.ts new file mode 100644 index 00000000..c8a0bf28 --- /dev/null +++ b/src/tree/utils.ts @@ -0,0 +1,65 @@ +import { + isReferenceNode, + isRegularNode, + MirroredSchemaNode, + ReferenceNode, + RegularNode, + SchemaNode, + SchemaNodeKind, +} from '@stoplight/json-schema-tree'; + +import { isNonNullable } from '../guards/isNonNullable'; +import { ComplexArrayNode, FlattenableNode, PrimitiveArrayNode } from './types'; + +export type ChildNode = RegularNode | ReferenceNode | MirroredSchemaNode; + +export const isNonEmptyParentNode = ( + node: SchemaNode, +): node is RegularNode & { + children: ChildNode[] & { 0: ChildNode }; +} => isRegularNode(node) && !!node.children && node.children.length > 0; + +export function isFlattenableNode(node: SchemaNode): node is FlattenableNode { + if (!isRegularNode(node)) return false; + + if (node.primaryType !== SchemaNodeKind.Array || !isNonNullable(node.children) || node.children.length === 0) { + return false; + } + + return ( + node.children.length === 1 && + (isRegularNode(node.children[0]) || (isReferenceNode(node.children[0]) && node.children[0].error !== null)) + ); +} + +export function isPrimitiveArray(node: SchemaNode): node is PrimitiveArrayNode { + return isFlattenableNode(node) && isRegularNode(node.children[0]) && node.children[0].simple; +} + +export function isComplexArray(node: SchemaNode): node is ComplexArrayNode { + return isFlattenableNode(node) && isRegularNode(node.children[0]) && !node.children[0].simple; +} + +/** + * Returns the children of `node` that should be displayed in the tree. + * Defaults to `node.children`, except for Arrays that get special handling (flattening). + */ +export function calculateChildrenToShow(node: SchemaNode): SchemaNode[] { + if (!isRegularNode(node) || isPrimitiveArray(node)) { + return []; + } + if (isComplexArray(node)) { + // flatten the tree here, and show the properties of the item type directly + return node.children[0].children ?? []; + } + return node.children ?? []; +} + +export function isPropertyRequired(schemaNode: SchemaNode): boolean { + const { parent } = schemaNode; + if (parent === null || !isRegularNode(parent) || schemaNode.subpath.length === 0) { + return false; + } + + return !!parent.required?.includes(schemaNode.subpath[schemaNode.subpath.length - 1]); +} diff --git a/src/tree/utils/__tests__/mergeAllOf.spec.ts b/src/tree/utils/__tests__/mergeAllOf.spec.ts deleted file mode 100644 index ee823f90..00000000 --- a/src/tree/utils/__tests__/mergeAllOf.spec.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { mergeAllOf } from '../mergeAllOf'; - -describe('mergeAllOf util', () => { - describe('example merging', () => { - test('given incompatible, should leave empty', () => { - const schema: JSONSchema4 = { - allOf: [ - { - type: 'object', - properties: { - bar: { - type: 'string', - example: 'hello', - }, - }, - }, - { - type: 'object', - properties: { - bar: { - type: 'string', - example: 'bye', - }, - }, - }, - ], - }; - - expect(mergeAllOf(schema, [], {} as any)).toEqual({ - properties: { - bar: { - example: null, - type: 'string', - }, - }, - type: 'object', - }); - }); - - test('given compatible, should merge normally', () => { - const schema: JSONSchema4 = { - allOf: [ - { - type: 'object', - properties: { - bar: { - type: 'string', - example: 'hello', - }, - }, - }, - { - type: 'object', - properties: { - bar: { - type: 'string', - example: 'hello', - }, - }, - }, - ], - }; - - expect(mergeAllOf(schema, [], {} as any)).toEqual({ - properties: { - bar: { - example: 'hello', - type: 'string', - }, - }, - type: 'object', - }); - }); - }); - - describe('enums merging', () => { - test('given incompatible, should leave empty', () => { - const schema: JSONSchema4 = { - allOf: [ - { - type: 'object', - properties: { - bar: { - type: 'string', - enum: ['jonas', 'frederik'], - }, - }, - }, - { - type: 'object', - properties: { - bar: { - type: 'string', - enum: ['john', 'chris'], - }, - }, - }, - ], - }; - - expect(mergeAllOf(schema, [], {} as any)).toEqual({ - properties: { - bar: { - enum: [], - type: 'string', - }, - }, - type: 'object', - }); - }); - - test('given compatible, should merge normally', () => { - const schema: JSONSchema4 = { - allOf: [ - { - type: 'object', - properties: { - bar: { - type: 'string', - enum: ['jonas', 'frederik'], - }, - }, - }, - { - type: 'object', - properties: { - bar: { - type: 'string', - enum: ['jonas', 'frederik'], - }, - }, - }, - ], - }; - - expect(mergeAllOf(schema, [], {} as any)).toEqual({ - properties: { - bar: { - enum: ['jonas', 'frederik'], - type: 'string', - }, - }, - type: 'object', - }); - }); - }); -}); diff --git a/src/tree/utils/__tests__/walk.spec.ts b/src/tree/utils/__tests__/walk.spec.ts deleted file mode 100644 index d2561190..00000000 --- a/src/tree/utils/__tests__/walk.spec.ts +++ /dev/null @@ -1,233 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { JSONSchema4CombinerName, SchemaKind } from '../../../types'; -import { walk } from '../walk'; - -describe('Schema Walker', () => { - describe('when type equals array', () => { - test.each(['[circular]', 2, null])('given invalid items, should normalize them %s', items => { - const schema = { - type: SchemaKind.Array, - items, - }; - const { value: node } = walk(schema as any).next(); - - expect(node).toStrictEqual({ - fragment: schema, - node: { - id: expect.any(String), - type: SchemaKind.Array, - annotations: {}, - enum: void 0, - validations: {}, - additionalItems: void 0, - items: void 0, - }, - }); - }); - - test.each([{ type: 'string' }, [{ type: 'number' }]])( - 'given valid items, should leave them untouched %s', - items => { - const schema = { - type: SchemaKind.Array, - items, - }; - const { value: node } = walk(schema as any).next(); - - expect(node).toStrictEqual({ - fragment: schema, - node: { - id: expect.any(String), - type: SchemaKind.Array, - annotations: {}, - enum: void 0, - validations: {}, - additionalItems: void 0, - items, - }, - }); - }, - ); - }); - - describe('when type equals object', () => { - test.each(['[circular]', 2, null, [{}]])('given invalid properties, should normalize them %s', properties => { - const schema = { - type: SchemaKind.Object, - properties, - }; - const { value: node } = walk(schema as any).next(); - - expect(node).toStrictEqual({ - fragment: schema, - node: { - id: expect.any(String), - type: SchemaKind.Object, - annotations: {}, - enum: void 0, - validations: {}, - additionalProperties: void 0, - patternProperties: void 0, - properties: void 0, - }, - }); - }); - - test.each([{}, { foo: { type: 'string' } }])( - 'given valid properties, should leave them untouched %s', - properties => { - const schema = { - type: SchemaKind.Object, - properties, - }; - const { value: node } = walk(schema as any).next(); - - expect(node).toStrictEqual({ - fragment: schema, - node: { - id: expect.any(String), - type: SchemaKind.Object, - annotations: {}, - enum: void 0, - validations: {}, - additionalProperties: void 0, - patternProperties: void 0, - properties, - }, - }); - }, - ); - }); - - describe('title', () => { - describe.each(['allOf', 'oneOf', 'anyOf'])('when combiner equals %s', combiner => { - test.each([null, 2, void 0, false, true, 0, {}, []])('should ignore %s invalid title', title => { - const schema = { - [combiner]: [], - title, - }; - - const { value: node } = walk(schema as any).next(); - expect(node).not.toHaveProperty('node.title'); - }); - - test.each(['', 'test', '[]'])('should include %s valid title', title => { - const schema: JSONSchema4 = { - [combiner]: [], - title, - }; - - const { value: node } = walk(schema).next(); - expect(node).toHaveProperty('node.title', title); - }); - }); - - describe.each(Object.values(SchemaKind))('when type equals %s', type => { - test.each([null, 2, void 0, false, true, 0, {}, []])('should ignore %s invalid title', title => { - const schema = { - type, - title, - }; - - const { value: node } = walk(schema as any).next(); - expect(node).not.toHaveProperty('node.title'); - }); - - test.each(['', 'test', '[]'])('should include %s valid title', title => { - const schema: JSONSchema4 = { - type, - title, - }; - - const { value: node } = walk(schema).next(); - expect(node).toHaveProperty('node.title', title); - }); - }); - - describe('given node with $ref', () => { - test.each([null, 2, void 0, false, true, 0, {}, []])('should ignore %s invalid title', title => { - const schema = { - $ref: '#/foo', - title, - }; - - const { value: node } = walk(schema as any).next(); - expect(node).not.toHaveProperty('node.title'); - }); - - test.each(['', 'test', '[]'])('should include %s valid title', title => { - const schema: JSONSchema4 = { - $ref: '#/foo', - title, - }; - - const { value: node } = walk(schema).next(); - expect(node).toHaveProperty('node.title', title); - }); - }); - - describe('given node with enum', () => { - test.each([null, 2, void 0, false, true, 0, {}, []])('should ignore %s invalid title', title => { - const schema = { - enum: [], - title, - }; - - const { value: node } = walk(schema as any).next(); - expect(node).not.toHaveProperty('node.title'); - }); - - test.each(['', 'test', '[]'])('should include %s valid title', title => { - const schema: JSONSchema4 = { - enum: [], - title, - }; - - const { value: node } = walk(schema).next(); - expect(node).toHaveProperty('node.title', title); - }); - }); - }); - - test('should pick all combiners', () => { - const schema: JSONSchema4 = { - type: 'object', - allOf: [], - oneOf: [], - anyOf: [], - }; - - expect(Array.from(walk(schema))).toEqual([ - { - fragment: schema, - node: { - annotations: {}, - combiner: 'anyOf', - id: expect.any(String), - properties: [], - type: 'object', - }, - }, - { - fragment: schema, - node: { - annotations: {}, - combiner: 'oneOf', - id: expect.any(String), - properties: [], - type: 'object', - }, - }, - { - fragment: schema, - node: { - annotations: {}, - combiner: 'allOf', - id: expect.any(String), - properties: [], - type: 'object', - }, - }, - ]); - }); -}); diff --git a/src/tree/utils/canStepIn.ts b/src/tree/utils/canStepIn.ts deleted file mode 100644 index 5c1a8bc7..00000000 --- a/src/tree/utils/canStepIn.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { SchemaKind } from '../../types'; -import { getCombiners } from '../../utils/getCombiners'; -import { getPrimaryType } from '../../utils/getPrimaryType'; - -export const canStepIn = (fragment: JSONSchema4) => { - if (getCombiners(fragment) !== void 0) { - return true; - } - - const type = getPrimaryType(fragment); - return type === SchemaKind.Array || type === SchemaKind.Object; -}; diff --git a/src/tree/utils/createErrorTreeNode.ts b/src/tree/utils/createErrorTreeNode.ts deleted file mode 100644 index 713cbc89..00000000 --- a/src/tree/utils/createErrorTreeNode.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { TreeListParentNode } from '@stoplight/tree-list'; -import { SchemaTreeListNode } from '../../types'; -import { generateId } from '../../utils/generateId'; -import { getSchemaNodeMetadata, metadataStore } from '../metadata'; - -export function createErrorTreeNode(parent: TreeListParentNode, error: string) { - const { path } = getSchemaNodeMetadata(parent); - - const errorNode: SchemaTreeListNode = { - id: generateId(), - name: '', - parent, - }; - - metadataStore.set(errorNode, { - path, - error, - }); - - return errorNode; -} diff --git a/src/tree/utils/mergeAllOf.ts b/src/tree/utils/mergeAllOf.ts deleted file mode 100644 index 01aeffc2..00000000 --- a/src/tree/utils/mergeAllOf.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { pathToPointer, safeStringify } from '@stoplight/json'; -import { JsonPath } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { ResolvingError } from '../../errors'; -import { WalkingOptions } from './populateTree'; - -const resolveAllOf = require('@stoplight/json-schema-merge-allof'); - -const store = new WeakMap>(); - -function _mergeAllOf(schema: JSONSchema4, path: JsonPath, opts: WalkingOptions) { - return resolveAllOf(schema, { - deep: false, - resolvers: resolveAllOf.stoplightResolvers, - $refResolver($ref: unknown) { - if (typeof $ref !== 'string') { - return {}; - } - - if (pathToPointer(path).startsWith($ref)) { - throw new ResolvingError('Circular reference detected'); - } - - const allRefs = store.get(opts)!; - let schemaRefs = allRefs.get(schema); - - if (schemaRefs === void 0) { - schemaRefs = [$ref]; - allRefs.set(schema, schemaRefs); - } else if (schemaRefs.includes($ref)) { - const safelyResolved = JSON.parse(safeStringify(opts.resolveRef(null, $ref))); - return 'allOf' in safelyResolved ? _mergeAllOf(safelyResolved, path, opts) : safelyResolved; - } else { - schemaRefs.push($ref); - } - - const resolved = opts.resolveRef(null, $ref); - - if (Array.isArray(resolved.allOf)) { - for (const member of resolved.allOf) { - if (typeof member.$ref === 'string' && schemaRefs.includes(member.$ref)) { - throw new ResolvingError('Circular reference detected'); - } - } - } - - return resolved; - }, - }); -} - -export const mergeAllOf = (schema: JSONSchema4, path: JsonPath, opts: WalkingOptions) => { - try { - if (!store.has(opts)) { - store.set(opts, new WeakMap()); - } - - return _mergeAllOf(schema, path, opts); - } catch (ex) { - console.info(ex.message); - throw ex; - } -}; diff --git a/src/tree/utils/mergeOneOrAnyOf.ts b/src/tree/utils/mergeOneOrAnyOf.ts deleted file mode 100644 index 7a81047d..00000000 --- a/src/tree/utils/mergeOneOrAnyOf.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JsonPath } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { mergeAllOf } from './mergeAllOf'; -import { WalkingOptions } from './populateTree'; - -export function mergeOneOrAnyOf( - schema: JSONSchema4, - combiner: 'oneOf' | 'anyOf', - path: JsonPath, - options: WalkingOptions, -): JSONSchema4[] { - const items = schema[combiner]; - - if (!Array.isArray(items)) return []; // just in case - - const merged: JSONSchema4[] = []; - - if (Array.isArray(schema.allOf) && Array.isArray(items)) { - for (const item of items) { - merged.push({ - allOf: [...schema.allOf, item], - }); - } - - return merged; - } else { - for (const item of items) { - const prunedSchema = { ...schema }; - delete prunedSchema[combiner]; - - merged.push( - mergeAllOf( - { - allOf: [prunedSchema, item], - }, - path, - options, - ), - ); - } - } - - return merged; -} diff --git a/src/tree/utils/populateTree.ts b/src/tree/utils/populateTree.ts deleted file mode 100644 index 49544165..00000000 --- a/src/tree/utils/populateTree.ts +++ /dev/null @@ -1,294 +0,0 @@ -import { TreeListNode, TreeListParentNode } from '@stoplight/tree-list'; -import { JsonPath, Optional } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { isObject as _isObject } from 'lodash'; - -import { IArrayNode, IObjectNode, SchemaKind, SchemaNode, SchemaTreeListNode } from '../../types'; -import { generateId } from '../../utils/generateId'; -import { getPrimaryType } from '../../utils/getPrimaryType'; -import { isCombinerNode, isRefNode } from '../../utils/guards'; -import { getNodeMetadata, getSchemaNodeMetadata, metadataStore } from '../metadata'; -import { createErrorTreeNode } from './createErrorTreeNode'; -import { mergeAllOf } from './mergeAllOf'; -import { mergeOneOrAnyOf } from './mergeOneOrAnyOf'; -import { processNode, walk } from './walk'; - -export type WalkerRefResolver = (path: JsonPath | null, $ref: string) => JSONSchema4; - -export type WalkingOptions = { - mergeAllOf: boolean; - onNode?(fragment: JSONSchema4, node: SchemaNode, parentTreeNode: TreeListNode, level: number): boolean | void; - stepIn?: boolean; - resolveRef: WalkerRefResolver; - shouldResolveEagerly: boolean; -}; - -export type Walker = ( - schema: Optional, - parent: TreeListParentNode, - level: number, - path: JsonPath, - options: WalkingOptions, -) => undefined; - -export const populateTree: Walker = (schema, parent, level, path, options): undefined => { - const actualSchema = prepareSchema(schema, parent, path, options); - - if (!_isObject(actualSchema)) return; - - for (const { node, fragment } of walk(actualSchema)) { - if (options !== null && options.onNode !== void 0 && !options.onNode(fragment, node, parent, level)) continue; - - const treeNode: SchemaTreeListNode = { - id: node.id, - name: '', - parent, - }; - - parent.children.push(treeNode); - metadataStore.set(treeNode, { - schemaNode: node, - schema: fragment, - path, - }); - - if (isRefNode(node) && node.$ref !== null) { - processRef(treeNode, node as JSONSchema4, level, path, options); - } else if (!isCombinerNode(node)) { - switch (getPrimaryType(node)) { - case SchemaKind.Array: - processArray(treeNode, node as IArrayNode, level, path, options); - break; - case SchemaKind.Object: - processObject(treeNode, node as IObjectNode, level, path, options); - break; - } - } else if (node.combiner === 'allOf' && options?.mergeAllOf) { - if ('oneOf' in fragment || 'anyOf' in fragment) { - parent.children.pop(); - continue; - } - - try { - const merged = mergeAllOf(fragment, path, options); - parent.children.pop(); - populateTree(merged, parent, level, path, options); - } catch (ex) { - if (Array.isArray(fragment.allOf)) { - (treeNode as TreeListParentNode).children = []; - bailAllOf(treeNode as TreeListParentNode, fragment, level + 1, [...path, 'allOf'], options); - } - } - } else if (_isObject(node.properties)) { - (treeNode as TreeListParentNode).children = []; - - if (node.combiner === 'oneOf' || node.combiner === 'anyOf') { - try { - node.properties = mergeOneOrAnyOf(fragment, node.combiner, [...path, node.combiner], options); - } catch { - // merging failed, let's try to render what we've got - } - } - - for (const [i, property] of node.properties.entries()) { - if ('type' in node) { - node.properties[i] = { - ...property, - type: property.type || node.type, - }; - } - - populateTree( - node.properties[i], - treeNode as TreeListParentNode, - level + 1, - [...path, node.combiner, i], - options, - ); - } - } - } - - return; -}; - -function processArray( - node: SchemaTreeListNode, - schema: IArrayNode, - level: number, - path: JsonPath, - options: WalkingOptions, -): SchemaTreeListNode { - const items = prepareSchema(schema.items, node, path, options); - - if (!_isObject(items)) return node; - - if (items !== schema.items) { - // we need to update the stored metadata to make sure the subtype of given array correctly inferred by Property component - const metadata = getNodeMetadata(node); - if ('schemaNode' in metadata) { - (metadata.schemaNode as IArrayNode).items = items; - } - } - - if ('$ref' in items) { - processRef(node, items, level, path, options); - } else if (Array.isArray(items)) { - const children: SchemaTreeListNode[] = []; - (node as TreeListParentNode).children = children; - for (const [i, property] of items.entries()) { - const child = populateTree(property, node as TreeListParentNode, level + 1, [...path, 'items', i], options); - if (child !== void 0) { - children.push(child); - } - } - } else { - const children: TreeListNode[] = []; - (node as TreeListParentNode).children = children; - populateTree(items, node as TreeListParentNode, level, [...path, 'items'], options); - - // optional flattening - if (children.length === 1) { - let schemaNode; - try { - ({ schemaNode } = getSchemaNodeMetadata(children[0])); - } catch { - return node; - } - - if (!('children' in children[0])) { - // we'll render this in subtype next to array, i.e. array[subtype], so let's get rid of these redundant nodes - // @ts-ignore - delete node.children; - } else if (!('combiner' in schemaNode)) { - for (const child of children[0].children) { - // re-parenting - child.parent = node as TreeListParentNode; - } - - children.splice(0, children.length, ...children[0].children); - } - } - } - - return node; -} - -function processObject( - node: TreeListNode, - schema: IObjectNode, - level: number, - path: JsonPath, - options: WalkingOptions, -): TreeListNode { - const children: TreeListNode[] = []; - - if (_isObject(schema.properties)) { - (node as TreeListParentNode).children = children; - - for (const [prop, property] of Object.entries(schema.properties)) { - const child = populateTree( - property, - node as TreeListParentNode, - level + 1, - [...path, 'properties', prop], - options, - ); - if (child !== void 0) { - children.push(child); - } - } - } - - if (_isObject(schema.patternProperties)) { - (node as TreeListParentNode).children = children; - - for (const [prop, property] of Object.entries(schema.patternProperties)) { - const child = populateTree( - property, - node as TreeListParentNode, - level + 1, - [...path, 'patternProperties', prop], - options, - ); - if (child !== void 0) { - children.push(child); - } - } - } - - return node; -} - -function processRef( - node: TreeListNode, - schema: JSONSchema4, - level: number, - path: JsonPath, - options: WalkingOptions | null, -) { - (node as TreeListParentNode).children = []; - try { - const resolved = resolveSchema(schema, path, options); - if (_isObject(resolved) && typeof resolved.title === 'string') { - const { schemaNode } = getSchemaNodeMetadata(node); - schemaNode.title = resolved.title; - } - } catch { - // resolving failed, nothing bad. We just won't have the title - } -} - -function bailAllOf( - node: TreeListParentNode, - schema: JSONSchema4, - level: number, - path: JsonPath, - options: WalkingOptions, -) { - if (Array.isArray(schema.allOf)) { - for (const [i, item] of schema.allOf.entries()) { - populateTree(item, node, level, [...path, i], options); - } - } -} - -function resolveSchema(schema: Optional, path: JsonPath, options: WalkingOptions | null) { - if (!_isObject(schema) || options === null || !('$ref' in schema) || typeof schema.$ref !== 'string') { - return schema; - } - - const resolved = options.resolveRef(path, schema.$ref); - return _isObject(resolved) ? resolved : schema; -} - -function prepareSchema( - schema: Optional, - node: TreeListNode, - path: JsonPath, - options: WalkingOptions | null, -): Optional { - if (options === null || !options.shouldResolveEagerly) return schema; - - try { - return resolveSchema(schema, path, options); - } catch (ex) { - const treeNode: SchemaTreeListNode = { - id: generateId(), - name: '', - parent: node as TreeListParentNode, - children: [], - }; - - (node as TreeListParentNode).children.push(treeNode); - metadataStore.set(treeNode, { - schemaNode: processNode(schema || {}).next().value, - schema: schema || {}, - path, - }); - - treeNode.children.push(createErrorTreeNode(treeNode, ex.message)); - - return null; - } -} diff --git a/src/tree/utils/walk.ts b/src/tree/utils/walk.ts deleted file mode 100644 index c1a80cb0..00000000 --- a/src/tree/utils/walk.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Optional } from '@stoplight/types'; -import { JSONSchema4 } from 'json-schema'; -import { isObject as _isObject } from 'lodash'; -import { IArrayNode, IBaseNode, ICombinerNode, IObjectNode, SchemaKind, SchemaNode } from '../../types'; -import { flattenTypes } from '../../utils/flattenTypes'; -import { generateId } from '../../utils/generateId'; -import { getAnnotations } from '../../utils/getAnnotations'; -import { getCombiners } from '../../utils/getCombiners'; -import { getPrimaryType } from '../../utils/getPrimaryType'; -import { getValidations } from '../../utils/getValidations'; -import { inferType } from '../../utils/inferType'; -import { normalizeRequired } from '../../utils/normalizeRequired'; - -function assignNodeSpecificFields(base: IBaseNode, node: JSONSchema4) { - switch (getPrimaryType(node)) { - case SchemaKind.Array: - (base as IArrayNode).items = unwrapItemsOrUndefined(node.items); - (base as IArrayNode).additionalItems = - typeof node.additionalItems === 'boolean' ? node.additionalItems : unwrapItemsOrUndefined(node.additionalItems); - break; - case SchemaKind.Object: - (base as IObjectNode).properties = unwrapPropertiesOrUndefined(node.properties); - (base as IObjectNode).patternProperties = unwrapPropertiesOrUndefined(node.patternProperties); - (base as IObjectNode).additionalProperties = - typeof node.additionalProperties === 'boolean' - ? node.additionalProperties - : unwrapPropertiesOrUndefined(node.additionalProperties); - break; - } -} - -export function* processNode(node: JSONSchema4): IterableIterator { - const combiners = getCombiners(node); - const type = node.type || inferType(node); - const title = typeof node.title === 'string' ? { title: node.title } : null; - - if (combiners !== void 0) { - for (const combiner of combiners) { - const properties = node[combiner]; - const combinerNode: ICombinerNode = { - id: generateId(), - combiner, - properties: Array.isArray(properties) ? properties.slice() : properties, - annotations: getAnnotations(node), - ...(type !== void 0 && { type: flattenTypes(type) }), - ...title, - }; - - yield combinerNode; - } - } else if (type) { - const base: IBaseNode = { - id: generateId(), - type: flattenTypes(type), - validations: getValidations(node), - annotations: getAnnotations(node), - ...('required' in node && { required: normalizeRequired(node.required) }), - enum: node.enum, - ...title, - }; - - assignNodeSpecificFields(base, node); - - yield base; - } else if ('enum' in node) { - yield { - id: generateId(), - validations: getValidations(node), - annotations: getAnnotations(node), - enum: node.enum, - ...title, - }; - } else if ('$ref' in node) { - yield { - id: generateId(), - $ref: typeof node.$ref !== 'string' ? null : node.$ref, - ...title, - }; - } else if ('not' in node) { - // todo: shall we support it? - } else { - yield { - id: generateId(), - validations: {}, - annotations: {}, - }; - } -} - -export type WalkerValue = { - node: SchemaNode; - fragment: JSONSchema4; -}; - -export function* walk(schema: JSONSchema4[] | JSONSchema4): IterableIterator { - if (Array.isArray(schema)) { - for (const segment of schema) { - yield* walk(segment); - } - } else { - for (const node of processNode(schema)) { - yield { - node, - fragment: schema, - }; - } - } -} - -function unwrapItemsOrUndefined(value: T): Optional { - return _isObject(value) ? value : void 0; -} - -function unwrapPropertiesOrUndefined(value: T): Optional { - return _isObject(value) && !Array.isArray(value) ? value : void 0; -} diff --git a/src/types.ts b/src/types.ts index 9521bde7..54a9cd35 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,69 +1,16 @@ -import { IRowRendererOptions, TreeListNode, TreeStore } from '@stoplight/tree-list'; -import { Dictionary } from '@stoplight/types'; -import { JSONSchema4, JSONSchema4TypeName } from 'json-schema'; +import type { ReferenceNode, SchemaNode } from '@stoplight/json-schema-tree'; +import { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema'; import * as React from 'react'; -export enum SchemaKind { - Any = 'any', - String = 'string', - Number = 'number', - Integer = 'integer', - Boolean = 'boolean', - Null = 'null', - Array = 'array', - Object = 'object', -} - -export type JSONSchema4CombinerName = 'allOf' | 'anyOf' | 'oneOf'; - -export type JSONSchema4Annotations = 'title' | 'description' | 'default' | 'examples'; - -export type JSONSchema4Metadata = 'id' | '$schema'; - -export interface ICombinerNode { - id: string; - readonly combiner: JSONSchema4CombinerName; - properties?: JSONSchema4[]; - annotations: Pick; - readonly type?: JSONSchema4TypeName | JSONSchema4TypeName[]; - title?: string; -} - -export interface IBaseNode extends Pick { - id: string; - readonly type?: JSONSchema4TypeName | JSONSchema4TypeName[]; - annotations: Partial>; - validations: Dictionary; - required?: string[]; - title?: string; -} +export type GoToRefHandler = (node: ReferenceNode) => void; -export interface IRefNode { - id: string; - $ref: string | null; - title?: string; +export interface SchemaRowProps { + schemaNode: SchemaNode; + nestingLevel: number; } -export interface IArrayNode extends IBaseNode, Pick {} - -export interface IObjectNode - extends IBaseNode, - Pick {} - -export interface IObjectPropertyNode extends IBaseNode { - name: string; -} - -export type SchemaNode = ICombinerNode | IBaseNode | IArrayNode | IObjectNode | IObjectPropertyNode | IRefNode; - -export type SchemaTreeListNode = TreeListNode; - -export type GoToRefHandler = (path: string, node: IRefNode) => void; - -export type RowRenderer = ( - node: TreeListNode, - rowOptions: IRowRendererOptions, - treeStore: TreeStore, -) => React.ReactNode; +export type RowAddonRenderer = (props: SchemaRowProps) => React.ReactNode; export type ViewMode = 'read' | 'write' | 'standalone'; + +export type JSONSchema = JSONSchema4 | JSONSchema6 | JSONSchema7; diff --git a/src/utils/__tests__/assignId.spec.ts b/src/utils/__tests__/assignId.spec.ts deleted file mode 100644 index 72f74fcc..00000000 --- a/src/utils/__tests__/assignId.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { generateId } from '../generateId'; - -describe('generateId util', () => { - let mathRandomSpy: jest.SpyInstance; - - beforeEach(() => { - mathRandomSpy = jest.spyOn(Math, 'random'); - }); - - afterEach(() => { - mathRandomSpy.mockRestore(); - }); - - test('should generate random id', () => { - mathRandomSpy.mockReturnValueOnce(0.54444).mockReturnValueOnce(0.321); - - expect(generateId()).toEqual('0.jlle4v0fcep'); - expect(generateId()).toEqual('0.bk0kqhutdje'); - }); -}); diff --git a/src/utils/__tests__/flattenTypes.spec.ts b/src/utils/__tests__/flattenTypes.spec.ts deleted file mode 100644 index 6476e3c6..00000000 --- a/src/utils/__tests__/flattenTypes.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { flattenTypes } from '../flattenTypes'; - -describe('flattenTypes util', () => { - it.each(['string', 'number', ['object']])('given valid %s type, returns it', type => { - expect(flattenTypes(type)).toEqual(type); - }); - - it('returns undefined when no valid type is found', () => { - expect(flattenTypes(2)).toBeUndefined(); - expect(flattenTypes(void 0)).toBeUndefined(); - expect(flattenTypes('foo')).toBeUndefined(); - expect(flattenTypes(['test', 'foo'])).toBeUndefined(); - }); - - it('returns undefined when no valid type is found', () => { - expect(flattenTypes(2)).toBeUndefined(); - expect(flattenTypes(void 0)).toBeUndefined(); - expect(flattenTypes('foo')).toBeUndefined(); - expect(flattenTypes(['test', 'foo'])).toBeUndefined(); - expect(flattenTypes({ type: 'bar' })).toBeUndefined(); - }); - - it('deduplicate types', () => { - expect(flattenTypes(['null', 'string', 'string'])).toEqual(['null', 'string']); - }); - - it('removes invalid types', () => { - expect(flattenTypes(['foo', 'string'])).toEqual(['string']); - expect(flattenTypes(['foo', { type: 'bar' }, 'string'])).toEqual(['string']); - expect(flattenTypes(['foo', 'string'])).toEqual(['string']); - expect(flattenTypes(['number', 2, null])).toEqual(['number']); - }); - - it('flattens types', () => { - expect(flattenTypes([{ type: 'array' }, { type: 'object' }, { type: 'object' }, { type: 'number' }])).toEqual([ - 'array', - 'object', - 'number', - ]); - }); - - it.each([ - [ - { type: 'array', items: {} }, - { type: 'object', properties: {} }, - ], - [{ type: 'string', enum: [] }], - { type: 'number', minimum: 1 }, - { additionalProperties: 1 }, - ])('throws when complex type is met', type => { - expect(flattenTypes.bind(null, type)).toThrow( - 'The "type" property must be a string, or an array of strings. Objects and array of objects are not valid.', - ); - }); -}); diff --git a/src/utils/__tests__/getValidations.spec.ts b/src/utils/__tests__/getValidations.spec.ts deleted file mode 100644 index a8acf845..00000000 --- a/src/utils/__tests__/getValidations.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { getValidations } from '../getValidations'; - -describe('getValidations util', () => { - describe('deprecated property', () => { - test('given present x-deprecated, should include its value', () => { - expect(getValidations({ 'x-deprecated': false })).toStrictEqual({ deprecated: false }); - expect(getValidations({ 'x-deprecated': false, deprecated: true })).toStrictEqual({ deprecated: false }); - expect(getValidations({ 'x-deprecated': true })).toStrictEqual({ deprecated: true }); - }); - - test('given present deprecated, should include its value', () => { - expect(getValidations({ deprecated: false })).toStrictEqual({ deprecated: false }); - expect(getValidations({ deprecated: true })).toStrictEqual({ deprecated: true }); - }); - - test('given missing deprecated, should not include anything', () => { - expect(getValidations({})).toStrictEqual({}); - }); - }); - - test('should support integer type', () => { - expect( - getValidations({ - type: 'integer', - minimum: 2, - exclusiveMaximum: true, - maximum: 20, - multipleOf: 2, - }), - ).toStrictEqual({ - exclusiveMaximum: true, - maximum: 20, - minimum: 2, - multipleOf: 2, - }); - }); -}); diff --git a/src/utils/__tests__/isCombiner.spec.ts b/src/utils/__tests__/isCombiner.spec.ts deleted file mode 100644 index 8b4a4bab..00000000 --- a/src/utils/__tests__/isCombiner.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { isCombinerNode } from '../guards'; - -describe('isCombinerNode function', () => { - test('should return false if object without combiner is given', () => { - expect(isCombinerNode({} as any)).toBe(false); - expect(isCombinerNode({ properties: [] } as any)).toBe(false); - }); - - test.each(['allOf', 'anyOf', 'oneOf'])('should return true if object with %s is given', combiner => { - expect(isCombinerNode({ combiner } as any)).toBe(true); - }); -}); diff --git a/src/utils/__tests__/isSchemaViewerEmpty.spec.ts b/src/utils/__tests__/isSchemaViewerEmpty.spec.ts deleted file mode 100644 index f1582c2a..00000000 --- a/src/utils/__tests__/isSchemaViewerEmpty.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { isSchemaViewerEmpty } from '../isSchemaViewerEmpty'; - -describe('isSchemaViewer function', () => { - test('should return false if empty object is given', () => { - expect(isSchemaViewerEmpty({})).toBe(false); - }); - - test('should return false if schema with no combiner is given', () => { - expect(isSchemaViewerEmpty({ properties: {} })).toBe(false); - }); - - test('should return false if schema with non-empty combiner is given', () => { - const schema = { - allOf: [ - { - properties: { - id: { - description: 'Group ID', - type: 'string', - }, - }, - }, - { - $ref: '#/definitions/Group', - }, - ], - }; - - expect(isSchemaViewerEmpty(schema)).toBe(false); - }); - - test('should return true if schema with empty combiner is given', () => { - expect(isSchemaViewerEmpty({ allOf: [] })).toBe(true); - }); -}); diff --git a/src/utils/flattenTypes.ts b/src/utils/flattenTypes.ts deleted file mode 100644 index cf3d328a..00000000 --- a/src/utils/flattenTypes.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Optional } from '@stoplight/types'; -import { JSONSchema4TypeName } from 'json-schema'; -import { isValidType } from './isValidType'; - -function getTypeFromObject(obj: object): Optional { - const size = Object.keys(obj).length; - - if (size > 1 || !('type' in obj)) { - throw new Error( - 'The "type" property must be a string, or an array of strings. Objects and array of objects are not valid.', - ); - } - - if ('type' in obj && isValidType((obj as { type: string }).type)) { - return (obj as { type: JSONSchema4TypeName }).type; - } - - return; -} - -function flattenType(type: unknown) { - if (typeof type === 'string') { - return type; - } - - if (typeof type !== 'object' || type === null) { - return; - } - - return getTypeFromObject(type); -} - -export const flattenTypes = (types: unknown): Optional => { - if (typeof types === 'string' && isValidType(types)) { - return types; - } - - if (typeof types !== 'object' || types === null) { - return; - } - - if (Array.isArray(types)) { - const flattenedTypes: JSONSchema4TypeName[] = []; - for (const type of types) { - const flattened = flattenType(type); - if (!isValidType(flattened) || flattenedTypes.includes(flattened)) continue; - flattenedTypes.push(flattened); - } - - return flattenedTypes.length > 0 ? flattenedTypes : void 0; - } - - return getTypeFromObject(types); -}; diff --git a/src/utils/generateId.ts b/src/utils/generateId.ts deleted file mode 100644 index b57327ff..00000000 --- a/src/utils/generateId.ts +++ /dev/null @@ -1 +0,0 @@ -export const generateId = (): string => Math.random().toString(36); diff --git a/src/utils/getAnnotations.ts b/src/utils/getAnnotations.ts deleted file mode 100644 index 2d4034fc..00000000 --- a/src/utils/getAnnotations.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { pick as _pick } from 'lodash'; -import { JSONSchema4Annotations } from '../types'; - -const ANNOTATIONS: JSONSchema4Annotations[] = ['description', 'default', 'examples']; - -export function getAnnotations(node: JSONSchema4) { - return _pick(node, ANNOTATIONS); -} diff --git a/src/utils/getCombiners.ts b/src/utils/getCombiners.ts deleted file mode 100644 index 9812fdd0..00000000 --- a/src/utils/getCombiners.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { JSONSchema4CombinerName } from '../types'; - -export const getCombiners = (node: JSONSchema4): JSONSchema4CombinerName[] | void => { - let combiners: JSONSchema4CombinerName[] | void; - - if ('anyOf' in node) { - // tslint:disable-next-line:prettier - combiners ??= []; - combiners.push('anyOf'); - } - - if ('oneOf' in node) { - combiners ??= []; - combiners.push('oneOf'); - } - - if ('allOf' in node) { - combiners ??= []; - combiners.push('allOf'); - } - - return combiners; -}; diff --git a/src/utils/getMetadata.ts b/src/utils/getMetadata.ts deleted file mode 100644 index 639babf7..00000000 --- a/src/utils/getMetadata.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { pick as _pick } from 'lodash'; -import { JSONSchema4Metadata } from '../types'; - -const METADATA: JSONSchema4Metadata[] = ['id', '$schema']; - -export function getMetadata(node: JSONSchema4): Pick { - return _pick(node, METADATA); -} diff --git a/src/utils/getPrimaryType.ts b/src/utils/getPrimaryType.ts deleted file mode 100644 index 5c4a6aec..00000000 --- a/src/utils/getPrimaryType.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { SchemaKind, SchemaNode } from '../types'; -import { inferType } from './inferType'; - -export function getPrimaryType(node: JSONSchema4 | SchemaNode) { - if ('type' in node && node.type !== undefined) { - if (Array.isArray(node.type)) { - if (node.type.includes(SchemaKind.Object)) { - return SchemaKind.Object; - } - - if (node.type.includes(SchemaKind.Array)) { - return SchemaKind.Array; - } - } - - return node.type; - } - - return inferType(node); -} diff --git a/src/utils/getValidations.ts b/src/utils/getValidations.ts deleted file mode 100644 index 1854c636..00000000 --- a/src/utils/getValidations.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Dictionary, Optional } from '@stoplight/types'; -import { JSONSchema4, JSONSchema4TypeName } from 'json-schema'; -import { flatMap as _flatMap, pick as _pick } from 'lodash'; - -export const COMMON_VALIDATION_TYPES = [ - 'enum', // https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1 - 'format', // https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-7 - 'default', - 'example', - 'nullable', - 'discriminator', - 'readOnly', - 'writeOnly', - 'xml', - 'externalDocs', -]; - -const VALIDATION_TYPES = { - string: ['minLength', 'maxLength', 'pattern'], - number: ['multipleOf', 'minimum', 'exclusiveMinimum', 'maximum', 'exclusiveMaximum'], - get integer() { - return this.number; - }, - object: ['additionalProperties', 'minProperties', 'maxProperties'], - array: ['additionalItems', 'minItems', 'maxItems', 'uniqueItems'], -}; - -function getDeprecatedValue(node: JSONSchema4): Optional { - if ('x-deprecated' in node) { - return !!node['x-deprecated']; - } - - if ('deprecated' in node) { - return !!node.deprecated; - } - - return; -} - -function getTypeValidations(type: JSONSchema4TypeName | JSONSchema4TypeName[]): string[] { - if (Array.isArray(type)) { - return _flatMap(type, getTypeValidations); - } - - return VALIDATION_TYPES[type] || []; -} - -export const getValidations = (node: JSONSchema4): Dictionary => { - const extraValidations = node.type && getTypeValidations(node.type); - const deprecated = getDeprecatedValue(node); - return { - ..._pick(node, COMMON_VALIDATION_TYPES), - ...(extraValidations && _pick(node, extraValidations)), - ...(deprecated !== void 0 && { deprecated }), - }; -}; diff --git a/src/utils/guards.ts b/src/utils/guards.ts deleted file mode 100644 index 6b68785c..00000000 --- a/src/utils/guards.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { JSONSchema4 } from 'json-schema'; -import { isObjectLike as _isObjectLike } from 'lodash'; -import { IArrayNode, ICombinerNode, IRefNode, SchemaKind, SchemaNode } from '../types'; - -export const isArrayNodeWithItems = ( - node: SchemaNode, -): node is Omit & { items: JSONSchema4 | JSONSchema4[] } => - 'type' in node && - 'items' in node && - (node.type === SchemaKind.Array || (Array.isArray(node.type) && node.type.includes(SchemaKind.Array))) && - _isObjectLike(node.items); - -export const isRefNode = (node: SchemaNode): node is IRefNode => '$ref' in node; - -export const hasRefItems = (node: SchemaNode): node is Omit & { items: Omit } => - isArrayNodeWithItems(node) && '$ref' in node.items; - -export const isCombinerNode = (node: SchemaNode): node is ICombinerNode => 'combiner' in node; diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 00000000..29ec0754 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1 @@ +export * from './printName'; diff --git a/src/utils/inferType.ts b/src/utils/inferType.ts deleted file mode 100644 index f0518ee6..00000000 --- a/src/utils/inferType.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Optional } from '@stoplight/types'; -import { JSONSchema4, JSONSchema4TypeName } from 'json-schema'; -import { SchemaKind, SchemaNode } from '../types'; - -export function inferType(node: SchemaNode | JSONSchema4): Optional { - if ('type' in node) { - return node.type; - } - - if ('properties' in node) { - return SchemaKind.Object; - } - - if ('items' in node) { - return SchemaKind.Array; - } - - return; -} diff --git a/src/utils/isCombiner.ts b/src/utils/isCombiner.ts deleted file mode 100644 index 0d99b825..00000000 --- a/src/utils/isCombiner.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { JSONSchema4CombinerName } from '../types'; - -const combinerTypes = ['allOf', 'oneOf', 'anyOf']; - -export const isCombiner = (type: string): type is JSONSchema4CombinerName => combinerTypes.includes(type); diff --git a/src/utils/isSchemaViewerEmpty.ts b/src/utils/isSchemaViewerEmpty.ts deleted file mode 100644 index 8351934a..00000000 --- a/src/utils/isSchemaViewerEmpty.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { get as _get, isEmpty as _isEmpty } from 'lodash'; -import { isCombiner } from './isCombiner'; - -export const isSchemaViewerEmpty = (schema: unknown) => { - if (typeof schema !== 'object' || schema === null) return true; - - const objectKeys = Object.keys(schema); - if (objectKeys.length === 1 && isCombiner(objectKeys[0])) { - return _isEmpty(_get(schema, objectKeys[0], [])); - } - - return false; -}; diff --git a/src/utils/isValidType.ts b/src/utils/isValidType.ts deleted file mode 100644 index 7c86e93e..00000000 --- a/src/utils/isValidType.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { JSONSchema4TypeName } from 'json-schema'; -import { SchemaKind } from '../types'; - -export const isValidType = (maybeType: unknown): maybeType is JSONSchema4TypeName => - typeof maybeType === 'string' && Object.values(SchemaKind).includes(maybeType as SchemaKind); diff --git a/src/utils/normalizeRequired.ts b/src/utils/normalizeRequired.ts deleted file mode 100644 index 5347b914..00000000 --- a/src/utils/normalizeRequired.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Optional } from '@stoplight/types'; - -export const normalizeRequired = (required: unknown): Optional => { - if (!Array.isArray(required)) return; - return required.filter(item => typeof item === 'string' || typeof item === 'number').map(String); -}; diff --git a/src/utils/printName.ts b/src/utils/printName.ts new file mode 100644 index 00000000..f31c84d1 --- /dev/null +++ b/src/utils/printName.ts @@ -0,0 +1,60 @@ +import { isReferenceNode, isRegularNode, RegularNode, SchemaNodeKind } from '@stoplight/json-schema-tree'; + +import { isNonNullable } from '../guards/isNonNullable'; +import { isComplexArray, isPrimitiveArray } from '../tree'; + +export function printName(schemaNode: RegularNode): string | null { + if ( + schemaNode.primaryType !== SchemaNodeKind.Array || + !isNonNullable(schemaNode.children) || + schemaNode.children.length === 0 + ) { + return schemaNode.title; + } + + return printArrayName(schemaNode); +} + +function printArrayName(schemaNode: RegularNode): string | null { + if (!isNonNullable(schemaNode.children) || schemaNode.children.length === 0) { + return schemaNode.title; + } + + if (schemaNode.children.length === 1 && isReferenceNode(schemaNode.children[0])) { + return `$ref(${schemaNode.children[0].value})[]`; + } + + if (isPrimitiveArray(schemaNode)) { + const val = + schemaNode.children?.reduce((mergedTypes, child) => { + if (mergedTypes === null) return null; + + if (!isRegularNode(child)) return null; + + if (child.types !== null && child.types.length > 0) { + for (const type of child.types) { + if (mergedTypes.includes(type)) continue; + mergedTypes.push(type); + } + } + + return mergedTypes; + }, []) ?? null; + + return val !== null && val.length > 0 ? `array of ${val.join('s/')}s` : 'array'; + } + + if (isComplexArray(schemaNode)) { + const firstChild = schemaNode.children[0]; + if (firstChild.title) { + return `array of ${firstChild.title}-s`; + } else if (firstChild.primaryType) { + return `array of ${firstChild.primaryType}s`; + } else if (firstChild.combiners?.length) { + return `array of ${firstChild.combiners.join('/')}`; + } + return 'array'; + } + + return null; +} diff --git a/tsconfig.json b/tsconfig.json index 0a5cd94e..9f04c413 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,10 @@ "extends": "@stoplight/scripts/tsconfig.json", // target all ts files "include": ["."], - "exclude": ["**/__mocks__/**", "dist/"], + "exclude": ["dist/"], "compilerOptions": { "lib": ["dom", "webworker", "es2017", "dom.iterable"], - "target": "es2017" + "target": "es2017", + "esModuleInterop": true } } diff --git a/tslint.json b/tslint.json deleted file mode 100644 index e0022fb2..00000000 --- a/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["tslint-config-stoplight"] -} diff --git a/yarn.lock b/yarn.lock index 55add33a..5cbd7629 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,42 +9,41 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: - "@babel/highlight" "^7.8.3" + "@babel/highlight" "^7.12.13" "@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.5", "@babel/core@^7.8.3": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" - integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.4" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" + json5 "^2.1.2" + lodash "^4.17.19" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.12.10", "@babel/generator@^7.4.0": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz#2b188fc329fb8e4f762181703beffc0fe6df3460" + integrity sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.10" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": @@ -108,21 +107,21 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== +"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.10.4": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.10" "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" @@ -131,43 +130,46 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.8.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.12.5" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.0.0", "@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@babel/helper-optimise-call-expression@^7.0.0", "@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.8.3": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.10" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": version "7.5.5" @@ -187,30 +189,34 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== +"@babel/helper-replace-supers@^7.12.1", "@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.8.3": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== +"@babel/helper-simple-access@^7.1.0", "@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== +"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.8.3": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== "@babel/helper-wrap-function@^7.1.0": version "7.2.0" @@ -222,28 +228,28 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" -"@babel/highlight@^7.0.0", "@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== +"@babel/highlight@^7.0.0", "@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== dependencies: + "@babel/helper-validator-identifier" "^7.14.0" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.7", "@babel/parser@^7.4.3": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81" + integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -303,12 +309,26 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== +"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import@^7.2.0": version "7.2.0" @@ -324,12 +344,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.2.0": version "7.2.0" @@ -338,19 +365,54 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== +"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" @@ -721,79 +783,64 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6": version "7.9.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== +"@babel/runtime@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" + regenerator-runtime "^0.13.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== +"@babel/runtime@^7.6.2": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" + regenerator-runtime "^0.13.4" + +"@babel/template@^7.1.0", "@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3", "@babel/template@^7.4.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" + integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.10" + "@babel/types" "^7.12.10" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.8.3": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260" + integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw== dependencies: - esutils "^2.0.2" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" to-fast-properties "^2.0.0" -"@blueprintjs/core@^3.25.0": - version "3.25.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.25.0.tgz#a6c8cee85bfdb25df54098642dbff319aed0cca7" - integrity sha512-tA6D0+eT6sNjc7GHQFVg6sxch5s4CCz36YnyfjTg5bDfU7BOtIvRmU/52Ki0cfj3PApKBxpSGNbakhY/wRSsXQ== - dependencies: - "@blueprintjs/icons" "^3.15.0" - "@types/dom4" "^2.0.1" - classnames "^2.2" - dom4 "^2.1.5" - normalize.css "^8.0.1" - popper.js "^1.15.0" - react-lifecycles-compat "^3.0.4" - react-popper "^1.3.7" - react-transition-group "^2.9.0" - resize-observer-polyfill "^1.5.1" - tslib "~1.10.0" - -"@blueprintjs/icons@^3.15.0": - version "3.15.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.15.0.tgz#264c975826bad3ec8d6f02e9ae3bef092e0ea946" - integrity sha512-Mf3OJHT6kYzwdKfiLUBYviQ9oLauxQYrTUi/9ORw8deXLdM1MQddv3H1amD/Oo2FyUPPYlPwsWrFSXViBM0Aiw== - dependencies: - classnames "^2.2" - tslib "~1.10.0" - -"@blueprintjs/select@^3.12.1": - version "3.12.1" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.12.1.tgz#3cd1444525e6edc1e7f1940454107b9ce4fe5afb" - integrity sha512-bu/gQ9Z5sy4KBvEB9gUgut5LluMFdMsVrMu482ySNPZh7gHcfEid5LuiGIG1Vl18dI7jr3dfkF09m5alt+Yr9g== - dependencies: - "@blueprintjs/core" "^3.25.0" - classnames "^2.2" - tslib "~1.10.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@chromaui/localtunnel@1.10.1": version "1.10.1" @@ -806,9 +853,9 @@ yargs "6.6.0" "@cnakazawa/watch@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" - integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== dependencies: exec-sh "^0.3.2" minimist "^1.2.0" @@ -953,7 +1000,7 @@ "@emotion/utils" "0.11.3" "@emotion/weak-memoize" "0.2.5" -"@emotion/core@^10.0.16", "@emotion/core@^10.0.20", "@emotion/core@^10.0.9": +"@emotion/core@^10.0.20", "@emotion/core@^10.0.9": version "10.0.27" resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.27.tgz#7c3f78be681ab2273f3bf11ca3e2edc4a9dd1fdc" integrity sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw== @@ -1017,7 +1064,7 @@ "@emotion/serialize" "^0.11.15" "@emotion/utils" "0.11.3" -"@emotion/styled@^10.0.15", "@emotion/styled@^10.0.17": +"@emotion/styled@^10.0.17": version "10.0.27" resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf" integrity sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q== @@ -1045,17 +1092,85 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@fortawesome/fontawesome-common-types@^0.2.28": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.28.tgz#1091bdfe63b3f139441e9cba27aa022bff97d8b2" - integrity sha512-gtis2/5yLdfI6n0ia0jH7NJs5i/Z/8M/ZbQL6jXQhCthEOe5Cr5NcQPhgTvFxNOtURE03/ZqUcEskdn2M+QaBg== +"@eslint/eslintrc@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fortawesome/fontawesome-common-types@^0.2.35": + version "0.2.35" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz#01dd3d054da07a00b764d78748df20daf2b317e9" + integrity sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw== + +"@fortawesome/fontawesome-svg-core@^1.2.35": + version "1.2.35" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.35.tgz#85aea8c25645fcec88d35f2eb1045c38d3e65cff" + integrity sha512-uLEXifXIL7hnh2sNZQrIJWNol7cTVIzwI+4qcBIq9QWaZqUblm0IDrtSqbNg+3SQf8SMGHkiSigD++rHmCHjBg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.35" + +"@fortawesome/free-solid-svg-icons@^5.15.2", "@fortawesome/free-solid-svg-icons@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz#52eebe354f60dc77e0bde934ffc5c75ffd04f9d8" + integrity sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.35" + +"@fortawesome/react-fontawesome@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz#bf28875c3935b69ce2dc620e1060b217a47f64ca" + integrity sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA== + dependencies: + prop-types "^15.7.2" "@icons/material@^0.2.4": version "0.2.4" resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== -"@jest/console@^24.7.1", "@jest/console@^24.9.0": +"@internationalized/message@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.0.tgz#68289d46152a872e7fbbd19fad3ae136e339fa41" + integrity sha512-wsRmX2ggtezdEN3lLi/i1HwdXBhQbyq/5st9LndPeg6+0j23qu875QwDctDq7b5IsG+1ToU/x7ldB7o0RtqIog== + dependencies: + "@babel/runtime" "^7.6.2" + intl-messageformat "^2.2.0" + +"@internationalized/number@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.0.0.tgz#aa3618ddb82ab0e9a09e8dcc3d5359a6935e6db2" + integrity sha512-P4t8GLFd/Kgw4lw5/7I5oHSihEt4kWJmxIm3lccD5XhQ5zBaw4ccfwfGKchsPrZModpvswwsL9utboBjiyIuHw== + dependencies: + "@babel/runtime" "^7.6.2" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== @@ -1064,39 +1179,51 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" "@jest/environment@^24.9.0": version "24.9.0" @@ -1108,6 +1235,16 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + "@jest/fake-timers@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" @@ -1117,34 +1254,60 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" source-map "^0.6.0" - string-length "^2.0.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": +"@jest/source-map@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== @@ -1153,6 +1316,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@jest/test-result@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" @@ -1162,15 +1334,26 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" "@jest/transform@^24.9.0": version "24.9.0" @@ -1194,6 +1377,27 @@ source-map "^0.6.1" write-file-atomic "2.4.1" +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -1203,6 +1407,24 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@mapbox/hast-util-table-cell-style@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz#5b7166ae01297d72216932b245e4b2f0b642dca6" + integrity sha512-QsEsh5YaDvHoMQ2YHdvZy2iDnU3GgKVBTcHf6cILyoWDZtPSdlG444pL/ioPYO/GpXSfODBb9sefEetfC4v9oA== + dependencies: + unist-util-visit "^1.3.0" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -1399,6 +1621,16 @@ dependencies: "@types/node" ">= 8" +"@polka/url@^1.0.0-next.15": + version "1.0.0-next.15" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" + integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== + +"@popperjs/core@^2.5.4": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f" + integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw== + "@reach/router@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e" @@ -1410,83 +1642,623 @@ react-lifecycles-compat "^3.0.4" warning "^3.0.0" -"@rollup/plugin-commonjs@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef" - integrity sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA== +"@react-aria/button@~3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.3.2.tgz#bb62e3d06ddbe7c448895af322755b5023b6a1aa" + integrity sha512-IEdGrrNfScZZGDjalqppVRTAgs/G1l3gzg1Dq9wIHoim4ebPZpcBd7TstalbBXlmcPjEcWHCcF4p2WGd7cVPHA== dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + "@react-stately/toggle" "^3.2.2" + "@react-types/button" "^3.3.1" -"@rollup/plugin-typescript@^3.0.0", "@rollup/plugin-typescript@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-3.1.1.tgz#a39175a552ed82a3e424862e6bb403bf9da451ee" - integrity sha512-VPY1MbzIJT+obpav9Kns4MlipVJ1FuefwzO4s1uCVXAzVWya+bhhNauOmmqR/hy1zj7tePfh3t9iBN+HbIzyRA== +"@react-aria/dialog@~3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.1.3.tgz#9cef554ca959f92095955fb7ae678db91e4f7af2" + integrity sha512-qKqY4QX8D3ITSNTdqEcXsKrZHvBgjs567JzhUs6s9lBOCZ0Mc+SwhgwEOowFiaYWhEfNyuLZNltUgzUxOtBxzg== dependencies: - "@rollup/pluginutils" "^3.0.1" - resolve "^1.14.1" + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/utils" "^3.8.0" + "@react-stately/overlays" "^3.1.2" + "@react-types/dialog" "^3.3.0" -"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.10.tgz#a659b9025920378494cd8f8c59fbf9b3a50d5f12" - integrity sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw== +"@react-aria/focus@^3.3.0", "@react-aria/focus@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.3.0.tgz#5ffc0c5ad640b6ad3b975cf78a8c35784b8057b0" + integrity sha512-9gOQ52VJsZr4doNRWvCB0zagyAp+7hdUePDTL/t7sJlWZYZaaMGKK9cSPT9cclsIx14AJtGbXZwpFl517oOwCQ== dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + "@react-types/shared" "^3.6.0" + clsx "^1.1.1" -"@sambego/storybook-state@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@sambego/storybook-state/-/storybook-state-1.3.6.tgz#9a6511095d200b8ab2d6bc39def81c90312dd420" - integrity sha512-bTUE1ZTtI9ICyqz6l5gtUfo0/W77fPP7KOAd/HI1jM7m1Jxjxs1k1Qbcrqmxg1vaHemlXVkvxVCZf8BT9RzxGw== +"@react-aria/i18n@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.3.1.tgz#6f463cba320ca64c2d0381c97ce76a6695dc9abc" + integrity sha512-2s3ARwFZyT52XyZzF/zJJ5R1heglCo0g2pdbbM0m26tYWnoqqQVt25l/v3AsegvQNP3/8+j5btvMZAiiGlqsZA== dependencies: - uuid "^3.1.0" + "@babel/runtime" "^7.6.2" + "@internationalized/message" "^3.0.0" + "@internationalized/number" "^3.0.0" + "@react-aria/ssr" "^3.0.2" + "@react-aria/utils" "^3.8.0" + "@react-types/shared" "^3.6.0" -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== +"@react-aria/interactions@^3.4.0", "@react-aria/interactions@~3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.4.0.tgz#0243947c962811314852399ebc0d9f663eb3b762" + integrity sha512-BCt0bP+XimcytkAVMQrpRfU/zlOFG1g6i6XmRnatsqq2Xc1ipQHr/MumE2cu8teXJZw2Q3e27VphCDNhCUkpnQ== dependencies: - any-observable "^0.3.0" + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.8.0" + "@react-types/shared" "^3.6.0" -"@semantic-release/commit-analyzer@8.0.1", "@semantic-release/commit-analyzer@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz#5d2a37cd5a3312da0e3ac05b1ca348bf60b90bca" - integrity sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A== +"@react-aria/label@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.1.2.tgz#3ed367f1e7fcf67304eaefc5202ec027bea27a1b" + integrity sha512-XwwmNfHYD12We7wjTMkfz37A8bN1L+Qkr3pSlsmuRYfSs0bg1RUDaQ6dzHL01sDilQWQidGSHibGKzwmELaMTw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.8.0" + "@react-types/label" "^3.2.1" + "@react-types/shared" "^3.6.0" + +"@react-aria/listbox@~3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.2.5.tgz#7dd33bc9aff0f05b60dcb2fca70b4f1203e10ed8" + integrity sha512-A7Ul7Z6nnRF7e2LDesKAe0/XB1mKtg+xl7iFzPsCfkhEGUC6WXUkLpfMWQUikyJ30ckcWhl0QrVUwHIgkds6LQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.4.0" + "@react-aria/label" "^3.1.2" + "@react-aria/selection" "^3.4.1" + "@react-aria/utils" "^3.8.0" + "@react-stately/collections" "^3.3.2" + "@react-stately/list" "^3.2.3" + "@react-types/listbox" "^3.1.1" + "@react-types/shared" "^3.6.0" + +"@react-aria/menu@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.2.1.tgz#3f28711d9251fca06eddc8785ed2ed3ea641362c" + integrity sha512-Sqaco3NsJeJuKDIqVuau47XzvUTBulTqP+XSPcs/R65EAn8U1HxA1zQ/0qry3fj5Te2m3jaP4k0wMjfrlPz61g== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.4.0" + "@react-aria/overlays" "^3.6.3" + "@react-aria/selection" "^3.4.1" + "@react-aria/utils" "^3.8.0" + "@react-stately/collections" "^3.3.2" + "@react-stately/menu" "^3.2.2" + "@react-stately/tree" "^3.1.4" + "@react-types/button" "^3.3.1" + "@react-types/menu" "^3.1.1" + "@react-types/shared" "^3.6.0" + +"@react-aria/overlays@^3.6.3", "@react-aria/overlays@~3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.6.3.tgz#e739bf1f3ed03762bb78701ad74faafac9ddce03" + integrity sha512-7Czpl8UHwWLtwvBysrtlTK271+0mmr3GiBDA1mvG7XwAQiliYxHhvFhXn7tUa8tUneU5YhtVrAyiovja58sa3A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.3.1" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + "@react-aria/visually-hidden" "^3.2.2" + "@react-stately/overlays" "^3.1.2" + "@react-types/button" "^3.3.1" + "@react-types/overlays" "^3.4.0" + dom-helpers "^3.3.1" + +"@react-aria/radio@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.1.4.tgz#ea2ba8a5275c15a7ba7cb6c91fae4fe2397a223d" + integrity sha512-1sRMu09RHIRQlFUkeOaNVF9PPg/sQubXdpo1giDH0h/p1UKwucMZx72Ztwb1xBf2tDQ72tIOmS2KSN8lPjxbVQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/i18n" "^3.3.1" + "@react-aria/interactions" "^3.4.0" + "@react-aria/label" "^3.1.2" + "@react-aria/utils" "^3.8.0" + "@react-stately/radio" "^3.3.1" + "@react-types/radio" "^3.1.1" + +"@react-aria/select@~3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.3.2.tgz#49080471ef67b3f4e99576456298fba7644ffda7" + integrity sha512-PLRb8qcqGSpgNYjwNUFgljSUzjDAtRfsVHNy2NT6WcRCjSDnm8HUtfAGeMCPG3P4VCgns8jEFzhk2OgWWZ6HyA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.3.1" + "@react-aria/interactions" "^3.4.0" + "@react-aria/label" "^3.1.2" + "@react-aria/menu" "^3.2.1" + "@react-aria/selection" "^3.4.1" + "@react-aria/utils" "^3.8.0" + "@react-aria/visually-hidden" "^3.2.2" + "@react-stately/select" "^3.1.2" + "@react-types/button" "^3.3.1" + "@react-types/select" "^3.2.0" + "@react-types/shared" "^3.6.0" + +"@react-aria/selection@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.4.1.tgz#92f09e5bf236feafb16fd5d6be7a043cfc43ba8e" + integrity sha512-ksztoiqIuOGfaeDgWiNZUf/u2URV24FL0IxwB6VkO4fwCMp41fSuc8eLrD68Igv7T7o8+XtAwe+FR5FjLB0eSQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/i18n" "^3.3.1" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + "@react-stately/collections" "^3.3.2" + "@react-stately/selection" "^3.5.0" + "@react-types/shared" "^3.6.0" + +"@react-aria/separator@~3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.1.2.tgz#0f28691134a2003b199119202093ee95d3bf9fbd" + integrity sha512-6GPKfA2Sc2SR7Fzx05tULmtHh44ZagEDRk9Irj3zLB+fcLoEiSdHmQJ06FzHxBEB0xB0OA22T28FdB2eEqML0w== dependencies: - conventional-changelog-angular "^5.0.0" - conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.7" - debug "^4.0.0" - import-from "^3.0.0" - lodash "^4.17.4" - micromatch "^4.0.2" + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.8.0" + "@react-types/shared" "^3.6.0" -"@semantic-release/error@^2.1.0", "@semantic-release/error@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" - integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== +"@react-aria/ssr@^3.0.2", "@react-aria/ssr@~3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.0.2.tgz#f96a41a7314a60324b6de871cb872039b63be5c0" + integrity sha512-+M0wrUlc2eTuMiwTfd0iFZJGu2hvMeYBLE8gRdbPJCDjLhrNWOQLKR/y6ntxQ9u8zjrNl/YPOdRtcqkA2EBnAQ== + dependencies: + "@babel/runtime" "^7.6.2" -"@semantic-release/git@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/git/-/git-9.0.0.tgz#304c4883c87d095b1faaae93300f1f1e0466e9a5" - integrity sha512-AZ4Zha5NAPAciIJH3ipzw/WU9qLAn8ENaoVAhD6srRPxTpTzuV3NhNh14rcAo8Paj9dO+5u4rTKcpetOBluYVw== +"@react-aria/switch@~3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.1.2.tgz#633f9bfb851247d283f4efec7a7e1518f2d31f9b" + integrity sha512-kBCZwktmtgHz9dCZWKwRHNPIePwf5JK7xR8g7q0UBeyhhiE0UKMvybY8Jw+mgjIWYKz77ZZfmATfQ9jccANCNQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/toggle" "^3.1.3" + "@react-stately/toggle" "^3.2.2" + "@react-types/switch" "^3.1.1" + +"@react-aria/tabs@^3.0.0-rc.0": + version "3.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.0.0-rc.0.tgz#e89d3947e359559ade130600df3b1b6d857e0a14" + integrity sha512-LNRGh+YPWD5izbDhMw5oKvSlyTphLeKMYozuUP595GSst2NGdHe7AZPIKLCXLyQqHJvydtnxhhl6BkQKAa0O6A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/i18n" "^3.3.1" + "@react-aria/interactions" "^3.4.0" + "@react-aria/selection" "^3.4.1" + "@react-aria/utils" "^3.8.0" + "@react-stately/list" "^3.2.3" + "@react-stately/tabs" "3.0.0-rc.0" + "@react-types/shared" "^3.6.0" + "@react-types/tabs" "3.0.0-rc.0" + +"@react-aria/toggle@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.1.3.tgz#f3b0a75b7b968b6d9592359ef863b2039e09663a" + integrity sha512-hyXpubOl1YOCaPDTdvqVBuvOLYWfuWU31cJiQFT/udOkcOYvpU2yBDTgavXWRLCuuyHkV0HHKC21Stc5wfbPEg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + "@react-stately/toggle" "^3.2.2" + "@react-types/checkbox" "^3.2.2" + "@react-types/shared" "^3.6.0" + "@react-types/switch" "^3.1.1" + +"@react-aria/tooltip@~3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.1.2.tgz#e1f6b1427280b247c3acd1910b1d76b133ef07fd" + integrity sha512-eIepEy9UQXCYKvY0OUp7W8kRG0L6L0Qdufgut/eg6AW/FHLbkoP0KYNYIGX2TNuZB30GjO+RfqSb+oxFmThRfg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.3.0" + "@react-aria/interactions" "^3.4.0" + "@react-aria/overlays" "^3.6.3" + "@react-aria/utils" "^3.8.0" + "@react-stately/tooltip" "^3.0.4" + "@react-types/shared" "^3.6.0" + "@react-types/tooltip" "^3.1.1" + +"@react-aria/utils@^3.8.0", "@react-aria/utils@~3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.8.0.tgz#57bdc7cc967773c7f55b29847b187ec45031a620" + integrity sha512-VsFSeym4dB+A6t6Kl0MNSI9jYDijoLfy80z06AeGbv01xHGes86z5smvTGt3iW7u1vyYrwf+0h2WiCsF0Lw19g== dependencies: - "@semantic-release/error" "^2.1.0" - aggregate-error "^3.0.0" - debug "^4.0.0" - dir-glob "^3.0.0" - execa "^4.0.0" - lodash "^4.17.4" - micromatch "^4.0.0" - p-reduce "^2.0.0" + "@babel/runtime" "^7.6.2" + "@react-aria/ssr" "^3.0.2" + "@react-stately/utils" "^3.2.1" + "@react-types/shared" "^3.6.0" + clsx "^1.1.1" -"@semantic-release/github@7.0.3", "@semantic-release/github@^7.0.0": +"@react-aria/visually-hidden@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.2.2.tgz#45e70b0b9fdd91de94b1fe18faa26cd818fb9c89" + integrity sha512-d9LsTmss15DPctOHlUiECiFOkO5IjF+VDo0cS6PI7Ocnx83m5cPeqgliRSS6snsP9dtV1Ep+xa/XD3MQ8auToQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.4.0" + "@react-aria/utils" "^3.8.0" + clsx "^1.1.1" + +"@react-hook/debounce@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-hook/debounce/-/debounce-3.0.0.tgz#9eea8b5d81d4cb67cd72dd8657b3ff724afc7cad" + integrity sha512-ir/kPrSfAzY12Gre0sOHkZ2rkEmM4fS5M5zFxCi4BnCeXh2nvx9Ujd+U4IGpKCuPA+EQD0pg1eK2NGLvfWejag== + dependencies: + "@react-hook/latest" "^1.0.2" + +"@react-hook/event@^1.2.1": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@react-hook/event/-/event-1.2.3.tgz#cfe86d5cf36f53e85b367ff619990d001b5c82ae" + integrity sha512-WMBwLnYY2rubLeecsi4skl1imfx0oiXTgazV/1ByPT6WkmLvxUao3hC+mxps5D/+JK4Fq3uG9OWU/dn5jMtXyg== + dependencies: + "@react-hook/passive-layout-effect" "^1.2.0" + +"@react-hook/latest@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@react-hook/latest/-/latest-1.0.3.tgz#c2d1d0b0af8b69ec6e2b3a2412ba0768ac82db80" + integrity sha512-dy6duzl+JnAZcDbNTfmaP3xHiKtbXYOaz3G51MGVljh548Y8MWzTr+PHLOfvpypEVW9zwvl+VyKjbWKEVbV1Rg== + +"@react-hook/passive-layout-effect@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz#c06dac2d011f36d61259aa1c6df4f0d5e28bc55e" + integrity sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg== + +"@react-hook/resize-observer@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@react-hook/resize-observer/-/resize-observer-1.2.0.tgz#a44b385d998f4ab33aa9481a43c4ac33af21f7d7" + integrity sha512-7Cpy0aaZ3xXlSabQ43aZcfgzwYSidrshEKGDqpfvdx7pHnGDGskr8m1Ajb6yamJUSdTRgqCemYQcwouCqMmZoQ== + dependencies: + "@react-hook/latest" "^1.0.2" + "@react-hook/passive-layout-effect" "^1.2.0" + "@types/raf-schd" "^4.0.0" + raf-schd "^4.0.2" + resize-observer-polyfill "^1.5.1" + +"@react-hook/size@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@react-hook/size/-/size-2.1.1.tgz#10d3fb5bc61e128f0d7924714a925a04c992ed1f" + integrity sha512-QtHDsrvz8p4cai2UKxBpzk0r/uM63UyhmozTVChaDHJsVpN5/7A2yu8wuGyNhExdeCYMclLM21QjY1dyqpGbuQ== + dependencies: + "@react-hook/passive-layout-effect" "^1.2.0" + "@react-hook/resize-observer" "^1.1.0" + +"@react-hook/throttle@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@react-hook/throttle/-/throttle-2.2.0.tgz#d0402714a06e1ba0bc1da1fdf5c3c5cd0e08d45a" + integrity sha512-LJ5eg+yMV8lXtqK3lR+OtOZ2WH/EfWvuiEEu0M3bhR7dZRfTyEJKxH1oK9uyBxiXPtWXiQggWbZirMCXam51tg== + dependencies: + "@react-hook/latest" "^1.0.2" + +"@react-hook/window-size@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@react-hook/window-size/-/window-size-3.0.7.tgz#00d176e7a8eb55814e161eae34aae20afbcbe35d" + integrity sha512-bK5ed/jN+cxy0s1jt2CelCnUt7jZRseUvPQ22ZJkUl/QDOsD+7CA/6wcqC3c0QweM/fPBRP6uI56TJ48SnlVww== + dependencies: + "@react-hook/debounce" "^3.0.0" + "@react-hook/event" "^1.2.1" + "@react-hook/throttle" "^2.2.0" + +"@react-spectrum/utils@~3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-spectrum/utils/-/utils-3.5.2.tgz#dc808e4613062223f26fe81fbad7b2dea3c8e9cb" + integrity sha512-DQPqnzMzbRzzy3/3IQMekdzeWpEhhzCTt0Im5ge44nxPhtEaOwhlfBcc/SgvC15TmEZ7cLu7lXxQMJBdWwzXfQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.3.1" + "@react-aria/ssr" "^3.0.2" + "@react-aria/utils" "^3.8.0" + "@react-types/shared" "^3.6.0" + clsx "^1.1.1" + +"@react-stately/collections@^3.3.2", "@react-stately/collections@~3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.3.2.tgz#35faeb24671a4782603ba9a6403ac36836d5a34a" + integrity sha512-ttpvbCwKxhSKH2UN0UyfhysFKQVeozOwmafuhAPGUfdCMEsvnKdoHzgn6sI1Kt8B8WdOgHTihvkCIMFkJu9n3A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-types/shared" "^3.6.0" + +"@react-stately/list@^3.2.3", "@react-stately/list@~3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.2.3.tgz#08112fd7a2fe9f0ed6dee7bcafd442ea24607d2c" + integrity sha512-hFV6x0TFl86C7seS2SEkT9slB0KZgxLZ+DQfoZgGm44znd20sJ9YPlmBBk09BtWaQuySiaUwr7pD4H4GaLn8SQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.2" + "@react-stately/selection" "^3.5.0" + "@react-stately/utils" "^3.2.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/menu@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.2.2.tgz#2f3e4dc65f32d7464fb09d9cbb68e05366ba029f" + integrity sha512-jwGF/nc5djrmpGX+G/XbuvldKpLhulpU53a8KU9j+XClSxDhZ+kMfXWf6ZC1C6vRfQMTp80hMvSKfd5S76m93w== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/overlays" "^3.1.2" + "@react-stately/utils" "^3.2.1" + "@react-types/menu" "^3.1.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/overlays@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.1.2.tgz#6fd5c9cccbd4e6e1a8d519fd8e6c5e784e1403f0" + integrity sha512-xNiiQkpYjBocFQLwFmIyR8NKjeZaPF56f1W21q94hTbkk/Zztpi9kGuev+jkRAF4ZTQY5zVk/PQQ/ygJcdbOAw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.2.1" + "@react-types/overlays" "^3.2.1" + +"@react-stately/radio@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.3.1.tgz#8a2dbaf3b462644348d16cc1957983f7e3c676a2" + integrity sha512-52/5aXlehjCH8s2yodOjhzgkjAaYRHuyRNHfzagd5OXtVbImaJr9Ma7qRbVa/d14tAV8GrPF0vJ2lDVWflGyIQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.2.1" + "@react-types/radio" "^3.1.1" + +"@react-stately/select@^3.1.2", "@react-stately/select@~3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.1.2.tgz#d629ceb6c7486f98700b293d1d6658bd17760753" + integrity sha512-JnaXDDvUogWM0d26T3f3zdAAlCmtb6RvNIGyrT7WAyQ8ZAaoLiZOdjADhd4gxz3vkqZPZ9IcI56J/21leQ5jKQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.2" + "@react-stately/list" "^3.2.3" + "@react-stately/menu" "^3.2.2" + "@react-stately/selection" "^3.5.0" + "@react-stately/utils" "^3.2.1" + "@react-types/select" "^3.1.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/selection@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.5.0.tgz#a6232ee12299c525635a0ed8622eb68e575f823f" + integrity sha512-ehGeFiJJ5Z4UqL/90X4oWw2SV5XPRe6RSPC0b/76R30hiaKsDXLT4urfmZqJS5VKUClOH2byTT0oHL4mA/2bPw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.2" + "@react-stately/utils" "^3.2.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/tabs@3.0.0-rc.0", "@react-stately/tabs@^3.0.0-rc.0": + version "3.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.0.0-rc.0.tgz#a6fd25cc1de943e9bf66daf7ef6468fce867226b" + integrity sha512-/1m6qewzkc+FkVXw9CvbWo2awjS6EIlthJSwp/lBPfZTCvqwZfHr693Bd2S4RR3Xl3yohs5ZnDKYGxEVlO8KSw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/list" "^3.2.3" + "@react-stately/utils" "^3.2.1" + "@react-types/tabs" "3.0.0-rc.0" + +"@react-stately/toggle@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.2.2.tgz#d5ee9494eb23a937dee3399af007d7d058585cb0" + integrity sha512-jyWwcUSchpUBaiha1r5DI/4LM0w/Jp/JO+HiC+hRUTgf4bbWAwhlN/MUiFCwIumSESzexOjIKv6I3grL4zEnqQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.2.1" + "@react-types/checkbox" "^3.2.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/tooltip@^3.0.4", "@react-stately/tooltip@~3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.0.4.tgz#9b06b5e7a732aeecdb492e7dcb0955a46e323bc0" + integrity sha512-JBhpk/LynafbzNyYG6GWmXzaUIAOWbc38nUwAvPcOHalVk1pKL6TY4JNGCyUQez1K4eGRwH9novDVIjKi0uMDQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/overlays" "^3.1.2" + "@react-stately/utils" "^3.2.1" + "@react-types/tooltip" "^3.1.1" + +"@react-stately/tree@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.1.4.tgz#58b55af38743fa1d903a07e16684c8df8fb2d011" + integrity sha512-8hd9t3iJsmOOUCCxD6TWmjBMgDXVBadk7PgohsAmg8JSXpsgHjmCSi1jJSJvUiqmAuvTgS0HFMz4X90rAh0T1w== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.2" + "@react-stately/selection" "^3.5.0" + "@react-stately/utils" "^3.2.1" + "@react-types/shared" "^3.6.0" + +"@react-stately/utils@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.2.1.tgz#1e85861e6963230f80610bd9d1f5f0d33a481273" + integrity sha512-H79CYKPiQZrO1/dMSwjRJxsRlYg7y8PbTwnZOQ1h3DI5W6tD8CCLSlU1A5/Fp1GfcGNnK8gHqsJ9oJSRAwFS1g== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-types/button@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.3.1.tgz#4bdd325bc7df19c33911af256f63eae91e2a452e" + integrity sha512-xKLGSzGfsDBMe0SM7icOLNmzW38sdNSDSGMdrTLd3ygxb6pXY/LlcTdx7Sq28hdW8XL/ikFAnoQeS1VLXZHj7w== + dependencies: + "@react-types/shared" "^3.4.0" + +"@react-types/checkbox@^3.2.1", "@react-types/checkbox@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.2.2.tgz#7182d44a533e2ffd2c9118372cbc2c33b006eb18" + integrity sha512-WAAqLdjf6GUWjsMN5NaFMFumOtGTq+3+48CpM0ah2L+qmhMdj1s4gvHDerhls6u4ovRK/7zhg7XK+qQwcYVqMg== + dependencies: + "@react-types/shared" "^3.4.0" + +"@react-types/dialog@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.3.0.tgz#60a2b53f250ee082b53aef9340c80f1afe654bc7" + integrity sha512-63Vsr/UOZiaajlNDQUgWDi6v3EMenV1f8Cwh+L4lcyIJnbC6WeC2VEV3ld/TYVC0U58SQ0k7u2EIyHkWjc5kdQ== + dependencies: + "@react-types/overlays" "^3.2.1" + "@react-types/shared" "^3.2.1" + +"@react-types/label@^3.2.1": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.4.0.tgz#6023dc9dd0146324ead52e08540cd60e57a3e27f" + integrity sha512-l84ysm1dcjL/5qVk9iN74z+/Ul0999XqnwTu6aTbuwAXqMk2sTU45eK2Yp/FJ7YWeflcF1vsomTkjMkX0BHKMw== + dependencies: + "@react-types/shared" "^3.4.0" + +"@react-types/listbox@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.1.1.tgz#b896303ccb87123cf59ee2c089953d7928497c9b" + integrity sha512-HAljfdpbyLoJL9iwqz7Fw9MOmRwfzODeN+sr5ncE0eXJxnRBFhb5LjbjAN1dUBrKFBkv3etGlYu5HvX+PJjpew== + dependencies: + "@react-types/shared" "^3.2.1" + +"@react-types/menu@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.1.1.tgz#e5aa52ac07c083243540dd5da0790a85fd1628c6" + integrity sha512-/xZWp4/3P/8dKFAGuzxz8IccSXvJH0TmHIk2/xnj2Eyw9152IfutIpOda3iswhjrx1LEkzUgdJ8bCdiebgg6QQ== + dependencies: + "@react-types/overlays" "^3.2.1" + "@react-types/shared" "^3.2.1" + +"@react-types/overlays@^3.2.1", "@react-types/overlays@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.4.0.tgz#3c4619906bb12e3697e770b59c2090bb18da25bd" + integrity sha512-ddiMB6JXR7acQnRFEL2/6SSdBropmNrcAFk3qFCfovuVZh6STYhPmoAgj06mJFDoAD63pxayysfPG2EvLl2yAw== + dependencies: + "@react-types/shared" "^3.3.0" + +"@react-types/radio@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.1.1.tgz#5b1b11ff3043ac902e8970e49260f2664da80e5e" + integrity sha512-neInMjlbZyyGYYyeDJk9BcEejLczvsBiyk/swSUHmQ99eNIjK3ptUHTNdXM1xBBc3zI1SvBxOQr+uGeeEszvxw== + dependencies: + "@react-types/shared" "^3.2.1" + +"@react-types/select@^3.1.1", "@react-types/select@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.2.0.tgz#31b9e0f94fc24f053f4a1f073e174ffd59bac055" + integrity sha512-9vYhQWr1iB+3KWTZ1RxS2xZq0n0CJfsTRbEr0akLrtE/pRLC4O4l8RMFD49HyX0fShvz1FStmxTE2x7k8yVc4w== + dependencies: + "@react-types/shared" "^3.4.0" + +"@react-types/shared@^3.2.1", "@react-types/shared@^3.3.0", "@react-types/shared@^3.4.0", "@react-types/shared@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.6.0.tgz#e3f32bdef168de9245648e9f0357930b13795bc2" + integrity sha512-oa8m+GP881IUQmi+L0UoM5aC5t/6L6QIEA2I1FUMgwMeJn24qPAcEqYrTWeJzX2S+gAfa5r9qbzcVEgpQorEUw== + +"@react-types/switch@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.1.1.tgz#7909a8f7c2cb68ab7536efd03af3be3417e0eca3" + integrity sha512-nI5J/1CrJrVANwgikXyPMqxWJ4UyefzE4Vz/TwTgoXQ9v+LRNo22wbisfh1EmJAlZ0E52X/iKViVaBroNty+EA== + dependencies: + "@react-types/checkbox" "^3.2.1" + "@react-types/shared" "^3.2.1" + +"@react-types/tabs@3.0.0-rc.0": + version "3.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.0.0-rc.0.tgz#3a6ec6d8de1876f6dc380e47bed0bb9c7e63aa5a" + integrity sha512-NB4FEwnvP/xm8SY7Anvq5zLxOp6Xer2FoU9jKXe5+UaKlED700zsVqWCZvzaf14tT8Z1mdit3jEHFF34ynPziw== + dependencies: + "@react-types/shared" "^3.6.0" + +"@react-types/tooltip@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.1.1.tgz#7d45a4dd8c57c422a1a2dcb03b6c043e7481c3ca" + integrity sha512-18gM2Co9tzCDfN0tEdfboD18sXDtD6YiKctd8HQ8tBiRO4IF1ce9ubKe6++Lj+38GQPq7GWFFoUiS1WArTWIHA== + dependencies: + "@react-types/overlays" "^3.4.0" + "@react-types/shared" "^3.4.0" + +"@rollup/plugin-commonjs@^19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz#8c3e71f9a66908e60d70cc1be205834ef3e45f71" + integrity sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@sambego/storybook-state@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@sambego/storybook-state/-/storybook-state-1.3.6.tgz#9a6511095d200b8ab2d6bc39def81c90312dd420" + integrity sha512-bTUE1ZTtI9ICyqz6l5gtUfo0/W77fPP7KOAd/HI1jM7m1Jxjxs1k1Qbcrqmxg1vaHemlXVkvxVCZf8BT9RzxGw== + dependencies: + uuid "^3.1.0" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + dependencies: + any-observable "^0.3.0" + +"@semantic-release/commit-analyzer@8.0.1", "@semantic-release/commit-analyzer@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz#5d2a37cd5a3312da0e3ac05b1ca348bf60b90bca" + integrity sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A== + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.7" + debug "^4.0.0" + import-from "^3.0.0" + lodash "^4.17.4" + micromatch "^4.0.2" + +"@semantic-release/error@^2.1.0", "@semantic-release/error@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" + integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== + +"@semantic-release/git@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/git/-/git-9.0.0.tgz#304c4883c87d095b1faaae93300f1f1e0466e9a5" + integrity sha512-AZ4Zha5NAPAciIJH3ipzw/WU9qLAn8ENaoVAhD6srRPxTpTzuV3NhNh14rcAo8Paj9dO+5u4rTKcpetOBluYVw== + dependencies: + "@semantic-release/error" "^2.1.0" + aggregate-error "^3.0.0" + debug "^4.0.0" + dir-glob "^3.0.0" + execa "^4.0.0" + lodash "^4.17.4" + micromatch "^4.0.0" + p-reduce "^2.0.0" + +"@semantic-release/github@7.0.3", "@semantic-release/github@^7.0.0": version "7.0.3" resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-7.0.3.tgz#53d5ad985d7ebfaa533f64784d1ac00ff22a2231" integrity sha512-4Y2nqruKHsdoayq/H/lMWudONXHLbYtSBDZPktoTrvdJZNQkLhjnxCwDUTKo8G29aI81RuoYKUHv6GSgyJDtGQ== @@ -1543,79 +2315,269 @@ lodash "^4.17.4" read-pkg-up "^7.0.0" -"@stoplight/json-schema-merge-allof@^0.7.2": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@stoplight/json-schema-merge-allof/-/json-schema-merge-allof-0.7.2.tgz#a9f4d95b4a95e943afa567c695a1d4a2add9b74a" - integrity sha512-fVS5GqYBlxZfX1fA9+ULiny8VaCR3O62p3BHYd7+30rf378pVW6UPPydeB5AXs5U621LJKYdrGyndpOdTJ5dFA== +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sitespeed.io/tracium@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@sitespeed.io/tracium/-/tracium-0.3.3.tgz#b497a4a8d5837db1fd9e3053c99b78f6c0e1f53b" + integrity sha512-dNZafjM93Y+F+sfwTO5gTpsGXlnc/0Q+c2+62ViqP3gkMWvHEMSKkaEHgVJLcLg3i/g19GSIPziiKpgyne07Bw== + dependencies: + debug "^4.1.1" + +"@size-limit/file@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.11.0.tgz#d453ea543e4f4f1ba5e8b3bd517d1f27759b747d" + integrity sha512-GPQPcFHBa6U8Z7xEl42gB1RJxCDqUILL5/WzgWDC9Q9WujnKuZwq16+yoCxrvTQfbl4Ol+Z42M50FvvibFMy9w== + dependencies: + semver "7.3.5" + +"@size-limit/preset-big-lib@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@size-limit/preset-big-lib/-/preset-big-lib-4.11.0.tgz#3386bde7c3b20197bec584d447b41bca2f95caf7" + integrity sha512-oHbGiO+GQiETUq3a+pawQvafke6jjJlgNF5hWNffkd/ZGdkpP1eo5az1rutSirv+CEBOKKxjMUEcDgUthwvPPw== + dependencies: + "@size-limit/file" "4.11.0" + "@size-limit/time" "4.11.0" + "@size-limit/webpack" "4.11.0" + +"@size-limit/time@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@size-limit/time/-/time-4.11.0.tgz#0ca2faf46466e9d18fb5abf9727d745ec46b1013" + integrity sha512-tg4I/iGf54mrmkJasHGw1E2E0aJ03YYiNChhD3K0f9tIpBxtN05oAsR61sZ5gjTPf0SQ7ySQZtsxKZYzOvtyGg== + dependencies: + estimo "^2.2.7" + react "^17.0.2" + +"@size-limit/webpack@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.11.0.tgz#ccc9e1e8418127e876ca659c27d605258b40ec7b" + integrity sha512-TzPESkF/sakw6qMadw+0X1yxOeTcttbm7qTDWvUf49mIoBlYa52Bu6BZUj3L6H7ZKhrieHLkyU7zqPyu7yPXjg== + dependencies: + css-loader "^5.2.5" + escape-string-regexp "^4.0.0" + file-loader "^6.2.0" + mkdirp "^1.0.4" + nanoid "^3.1.23" + optimize-css-assets-webpack-plugin "^6.0.0" + pnp-webpack-plugin "^1.6.4" + rimraf "^3.0.2" + style-loader "^2.0.0" + webpack "^4.44.1" + webpack-bundle-analyzer "^4.4.2" + +"@stoplight/eslint-config@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@stoplight/eslint-config/-/eslint-config-1.2.0.tgz#d36873b413a48165be3792acde5df98a700112e4" + integrity sha512-qLekEzceGBX2+xM9K8NpFEL4Y3/CxUQhgkfkssEW8sKN4Dcgsl4IpSGLMLf+GGHtdP5aUs6t1HbMxBWTB7wPHg== + dependencies: + eslint-config-prettier "^6.14.0" + +"@stoplight/json-schema-merge-allof@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@stoplight/json-schema-merge-allof/-/json-schema-merge-allof-0.7.5.tgz#f844c41f8ae19dbf8e64578372ccb581cc8b97db" + integrity sha512-pbi/sfVKyezFhSTVzSQkDN3WanpoZFSjisYhTbpWMgTFoZz/pUPLLLZvBGUme4IfzQjFZweiKT3nl29h8Elsnw== dependencies: compute-lcm "^1.1.0" json-schema-compare "^0.2.2" lodash "^4.17.4" -"@stoplight/json@^3.0", "@stoplight/json@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@stoplight/json/-/json-3.5.1.tgz#afc6ffcbe2ada8f9b16680fd7885688cf9beec7e" - integrity sha512-O5WUW2yfAvtrqeq60YrbxpTvk87Ti2IeJ5oVa2XNJ2s+IIxx0CM+j316QoOjSGs+twrRpwb3jT9CFPrq7Ghkzg== +"@stoplight/json-schema-tree@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@stoplight/json-schema-tree/-/json-schema-tree-2.0.1.tgz#0affbc2c71b7cffab275385b367332fe0eaaf04e" + integrity sha512-K+NP7dNbcwoA3OUuGsG0uZ6PJjVSP9kq0QN5+j9uHCshbLfUHwtgx9JXCX64HFWyew6HhF9wUTnzFGw/vvo+5g== dependencies: - "@stoplight/types" "^11.4.0" - jsonc-parser "~2.2.0" + "@stoplight/json" "^3.12.0" + "@stoplight/json-schema-merge-allof" "^0.7.5" + "@stoplight/lifecycle" "^2.3.2" + "@types/json-schema" "^7.0.7" + magic-error "^0.0.0" + +"@stoplight/json@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@stoplight/json/-/json-3.10.0.tgz#bd1af55081e1a47e0d01552d2a7e756931f46a4b" + integrity sha512-Xb1kVQ0t5eqRDF24Y0a2A1o/CEaHjLeVehkBmphqEBkUo6X9L4z5oOUYBMzlAoR/ejhjVgWLzrDBxNOuzBFVDA== + dependencies: + "@stoplight/ordered-object-literal" "^1.0.1" + "@stoplight/types" "^11.9.0" + jsonc-parser "~2.2.1" lodash "^4.17.15" safe-stable-stringify "^1.1" -"@stoplight/lifecycle@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@stoplight/lifecycle/-/lifecycle-2.2.1.tgz#bfa837d1dd3bd97eab96d8c8cf1bc3ea5ddcd263" - integrity sha512-XOyfoJyWp5tXRFWq43mvnOoYTvkupwqGjDQnQ2o1qRNnfTrE70bjNK5ptD9A6m3zajAXgbl0puFa7P2CMg7+ew== +"@stoplight/json@^3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@stoplight/json/-/json-3.12.0.tgz#26c8d32da78eac6a760ba2c9cca6ae717dc417b4" + integrity sha512-c0bvFOGICk8QWIat72Td2GG6Bdvq/6O2jQcDZ8rEjh56YOdC/YPn1S8ihKu3AntJCtvqC9eTfadWBqkNK9HAjw== dependencies: - strict-event-emitter-types "^2.0.0" - wolfy87-eventemitter "~5.2.8" + "@stoplight/ordered-object-literal" "^1.0.1" + "@stoplight/types" "^11.9.0" + jsonc-parser "~2.2.1" + lodash "^4.17.15" + safe-stable-stringify "^1.1" -"@stoplight/markdown-viewer@^3.5.5": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@stoplight/markdown-viewer/-/markdown-viewer-3.5.6.tgz#8dfe395c13337ebaa5cd2beafb75f98057404703" - integrity sha512-lXHqFW3Cv39opcBjejO0E2uAlS/PQZXxOLhCRF7lQSjNQ4d2gT/8yPVx00yjUDOEn7afDyOWMlNtWcuaGIbcfg== - dependencies: - "@stoplight/json" "^3.0" - "@stoplight/markdown" "^2.4.0" - "@stoplight/types" "^10.0.1" - classnames "^2" - react-error-boundary "^1" - remark-inline-links "^3.1.3" - remark-slug "^5.1.2" - unified "^8.3.2" - -"@stoplight/markdown@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@stoplight/markdown/-/markdown-2.4.1.tgz#4c9d03bbd41470333bc802c4e02afca354c6799b" - integrity sha512-7BTOaz5XU5HMGmK8cONxI9AIK1EoeIvANwvG4ZXYnBDj5LZhPQGJGdk/h5OTyggUrl4FtbEk0H/xLSzNjFhrhQ== +"@stoplight/lifecycle@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@stoplight/lifecycle/-/lifecycle-2.3.2.tgz#d61dff9ba20648241432e2daaef547214dc8976e" + integrity sha512-v0u8p27FA/eg04b4z6QXw4s0NeeFcRzyvseBW0+k/q4jtpg7EhVCqy42EbbbU43NTNDpIeQ81OcvkFz+6CYshw== dependencies: - js-yaml "^3.13" - lodash "^4.17.15" - mdast-util-to-string "~1.0" - remark-frontmatter "~1.3" - remark-parse "~7.0.0" - remark-stringify "~7.0.1" - unified "~8.3.2" - unist-util-select "~2.0" - -"@stoplight/react-error-boundary@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@stoplight/react-error-boundary/-/react-error-boundary-1.0.0.tgz#758dbee1ae3afa8f2cc42f6fc82aefc9d4efaa67" - integrity sha512-UH5ZyNqzQp8w/fm8cpq0tmsc63xtMBFmfp7g6ZYW4+/Bhnm/T1RhRpG/5d7/3ZkMLiJ7avsoslbHJ2JU6geEDQ== + wolfy87-eventemitter "~5.2.8" + +"@stoplight/markdown-viewer@^5.0.0-beta.5": + version "5.0.0-beta.5" + resolved "https://registry.yarnpkg.com/@stoplight/markdown-viewer/-/markdown-viewer-5.0.0-beta.5.tgz#f5ac8bfffb9fd664ad87bb9fecd6618fa6baf100" + integrity sha512-bI8/FVTRTS6wmaXNXUeoq3tUuhVdIlDI0vk3nuUVsU2+H0xf+rDy8ALznSbVN1y559s7nwgxS8cl8/NC2roKXQ== + dependencies: + "@stoplight/markdown" "^3.0.0-beta.5" + "@stoplight/react-error-boundary" "^1.1.0" + "@stoplight/types" "^12.3.0" + clsx "^1.1.1" + deepmerge "^4.2.2" + hast-util-sanitize "^4.0.0" + rehype-raw "^5.1.0" + rehype-react "^6.2.0" + remark-parse "^9.0.0" + remark-rehype "^8.1.0" + +"@stoplight/markdown@^3.0.0-beta.5": + version "3.0.0-beta.5" + resolved "https://registry.yarnpkg.com/@stoplight/markdown/-/markdown-3.0.0-beta.5.tgz#08f84f3a2c27e88647a2e4e4f64bcb39a99add39" + integrity sha512-x7uX121NBqKzrfDDljR/2i+Egwk+iGsLe2BlT0SIujlxS0aaCS7QMWzJekOAUT9xK1vxM1becWTQ47HF/6U22g== + dependencies: + "@stoplight/types" "^12.3.0" + "@stoplight/yaml" "^4.2.2" + github-slugger "^1.3.0" + hast-util-whitespace "^2.0.0" + lodash "^4.17.21" + mdast-util-to-string "^3.1.0" + remark-frontmatter "^3.0.0" + remark-gfm "^1.0.0" + remark-parse "^9.0.0" + remark-stringify "^9.0.1" + tslib "^2.2.0" + unified "^9.2.1" + unist-util-select "^4.0.0" + unist-util-visit "^3.1.0" + +"@stoplight/mosaic-code-viewer@^1.0.0-beta.59": + version "1.0.0-beta.59" + resolved "https://registry.yarnpkg.com/@stoplight/mosaic-code-viewer/-/mosaic-code-viewer-1.0.0-beta.59.tgz#cf4bd5ff604976690de17ff2fd53f052f33c42fc" + integrity sha512-sjghSTnNo4lrvfC6NGoP1alyJXGZEyW5xrgncsBkKt7uznUi7yQrf/DdKGfRIM3hcU+BkrvQRAHyfFKFDtQdCA== + dependencies: + "@fortawesome/fontawesome-svg-core" "^1.2.35" + "@fortawesome/free-solid-svg-icons" "^5.15.3" + "@fortawesome/react-fontawesome" "^0.1.14" + "@react-aria/button" "~3.3.2" + "@react-aria/dialog" "~3.1.3" + "@react-aria/focus" "~3.3.0" + "@react-aria/interactions" "~3.4.0" + "@react-aria/listbox" "~3.2.5" + "@react-aria/overlays" "~3.6.3" + "@react-aria/radio" "^3.1.4" + "@react-aria/select" "~3.3.2" + "@react-aria/separator" "~3.1.2" + "@react-aria/ssr" "~3.0.2" + "@react-aria/switch" "~3.1.2" + "@react-aria/tabs" "^3.0.0-rc.0" + "@react-aria/tooltip" "~3.1.2" + "@react-aria/utils" "~3.8.0" + "@react-aria/visually-hidden" "^3.2.2" + "@react-hook/size" "^2.1.1" + "@react-hook/window-size" "^3.0.7" + "@react-spectrum/utils" "~3.5.2" + "@react-stately/collections" "~3.3.2" + "@react-stately/list" "~3.2.3" + "@react-stately/radio" "^3.3.1" + "@react-stately/select" "~3.1.2" + "@react-stately/tabs" "^3.0.0-rc.0" + "@react-stately/tooltip" "~3.0.4" + "@stoplight/mosaic" "1.0.0-beta.59" + clsx "^1.1.1" + copy-to-clipboard "^3.3.1" + lodash.get "^4.4.2" + polished "^4.1.2" + prism-react-renderer "^1.2.1" + prismjs "^1.23.0" + reakit "npm:@stoplight/reakit@~1.3.5" + ts-keycode-enum "^1.0.6" + tslib "^2.1.0" + zustand "^3.5.1" + +"@stoplight/mosaic@1.0.0-beta.59", "@stoplight/mosaic@^1.0.0-beta.59": + version "1.0.0-beta.59" + resolved "https://registry.yarnpkg.com/@stoplight/mosaic/-/mosaic-1.0.0-beta.59.tgz#dcc2efb39ed3417f67cb3929294eee24ca811ebd" + integrity sha512-/SjanK2z4ppvtSp/MUeR9w1YY+Xrv3BxRjS9U9O0Ohi72zedQ+txbdMoHhjkpCfNt1GeJUhlAdAskAbBgpYK/Q== + dependencies: + "@fortawesome/fontawesome-svg-core" "^1.2.35" + "@fortawesome/free-solid-svg-icons" "^5.15.3" + "@fortawesome/react-fontawesome" "^0.1.14" + "@react-aria/button" "~3.3.2" + "@react-aria/dialog" "~3.1.3" + "@react-aria/focus" "~3.3.0" + "@react-aria/interactions" "~3.4.0" + "@react-aria/listbox" "~3.2.5" + "@react-aria/overlays" "~3.6.3" + "@react-aria/radio" "^3.1.4" + "@react-aria/select" "~3.3.2" + "@react-aria/separator" "~3.1.2" + "@react-aria/ssr" "~3.0.2" + "@react-aria/switch" "~3.1.2" + "@react-aria/tabs" "^3.0.0-rc.0" + "@react-aria/tooltip" "~3.1.2" + "@react-aria/utils" "~3.8.0" + "@react-aria/visually-hidden" "^3.2.2" + "@react-hook/size" "^2.1.1" + "@react-hook/window-size" "^3.0.7" + "@react-spectrum/utils" "~3.5.2" + "@react-stately/collections" "~3.3.2" + "@react-stately/list" "~3.2.3" + "@react-stately/radio" "^3.3.1" + "@react-stately/select" "~3.1.2" + "@react-stately/tabs" "^3.0.0-rc.0" + "@react-stately/tooltip" "~3.0.4" + clsx "^1.1.1" + copy-to-clipboard "^3.3.1" + lodash.get "^4.4.2" + polished "^4.1.2" + reakit "npm:@stoplight/reakit@~1.3.5" + ts-keycode-enum "^1.0.6" + tslib "^2.1.0" + zustand "^3.5.1" + +"@stoplight/ordered-object-literal@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.1.tgz#01ece81ba5dda199ca3dc5ec7464691efa5d5b76" + integrity sha512-kDcBIKwzAXZTkgzaiPXH2I0JXavBkOb3jFzYNFS5cBuvZS3s/K+knpk2wLVt0n8XrnRQsSffzN6XG9HqUhfq6Q== + +"@stoplight/react-error-boundary@^1.0.0", "@stoplight/react-error-boundary@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@stoplight/react-error-boundary/-/react-error-boundary-1.1.0.tgz#9b0fb5d0538abbf9a416723b90f5b776bf68a75d" + integrity sha512-z/1gDVQAafqYuJksL212F1DXHSr604KDqAspZwbC+kWVqCsddQBmXzwI4Lqqem4wHbNGeVZYk3svW+sILX/PUQ== dependencies: - "@stoplight/types" "^11.1.0" + "@stoplight/types" "^11.9.0" -"@stoplight/scripts@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@stoplight/scripts/-/scripts-8.2.0.tgz#5545eb32448975b6c2bc0d30c9cd551d739ed1bc" - integrity sha512-yY4h2F4X6Yh3wkcaRjKqH/beEmr6sSNfsC3MrWkFl+M+zz/PJ7bJi6eB9tPDoDlYO+9d7+/LiWnpn/euHShVNg== +"@stoplight/scripts@9.0.2": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@stoplight/scripts/-/scripts-9.0.2.tgz#38f545ab21b9c3e0cfdd4f14c2bcb051b235c285" + integrity sha512-eUJUmm2q0IPKE9JslAJwG6crLHF/hQTxcOKky2lyXhdT7INihcIPKbxLKwL8zf9iS5A+UE+jmKTWbqb9BgR1sw== dependencies: "@commitlint/cli" "8.3.5" "@commitlint/config-conventional" "8.3.4" "@oclif/command" "1.5.19" "@oclif/config" "1.14.0" "@oclif/plugin-help" "2.2.3" - "@rollup/plugin-typescript" "^3.0.0" + "@rollup/plugin-commonjs" "^19.0.0" + "@rollup/plugin-json" "^4.1.0" "@semantic-release/commit-analyzer" "8.0.1" "@semantic-release/git" "9.0.0" "@semantic-release/github" "7.0.3" @@ -1625,20 +2587,22 @@ commitizen "4.0.3" cz-conventional-changelog "3.1.x" esm "^3.2.25" + find-up "^4.1.0" husky "4.2.3" inquirer "7.0.4" lint-staged "10.0.7" rimraf "3.0.2" - rollup "^1.31.1" - rollup-plugin-terser "^5.2.0" + rollup "^2.47.0" + rollup-plugin-terser "^7.0.2" + rollup-plugin-typescript2 "^0.30.0" semantic-release "17.0.3" shelljs "0.8.x" - tslib "1.10.0" + tslib "^2.2.0" -"@stoplight/storybook-config@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@stoplight/storybook-config/-/storybook-config-2.0.5.tgz#17317d3c971d5bc3366097d42303ba7c3f773b14" - integrity sha512-tNdem6BOT+bNV9jCnY0HDbZ0neyXOj+s4QVTg68OKwSz325dEOR50qGmrLTq8EeTkBQbjhFsEOnDEj+0YprtKQ== +"@stoplight/storybook-config@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@stoplight/storybook-config/-/storybook-config-2.0.6.tgz#8b5077c92632eef00f5e4db1f4e269570f988a20" + integrity sha512-AJYPzrbwcsovypBwljEBoolkJEP7USp/Sa6o2UFBWdpekqerL2xJKFsPJWRIVd/q7jsEYn7HP+qVJ7iP1DqNBg== dependencies: "@babel/core" "^7.8.3" "@storybook/addon-actions" "^5.3.8" @@ -1666,57 +2630,36 @@ ts-loader "^6.2.1" webpack "^4.41.5" -"@stoplight/tree-list@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@stoplight/tree-list/-/tree-list-5.0.3.tgz#dfbc2175cb359a26da1ceb6af2bea91ca9d828b3" - integrity sha512-TI/ffQbVDZsS0lM1z0Fp5aWkrbqzmyk7oP+YZle0oTauS7lK/2TXKbuenCwNuzjbe7jU4G7hMnrLBItN+IlYuA== +"@stoplight/types@^11.9.0": + version "11.9.0" + resolved "https://registry.yarnpkg.com/@stoplight/types/-/types-11.9.0.tgz#ced7de2dd53439d2409a3cb390bf7d5b76382ac6" + integrity sha512-4bzPpWZobt0e+d0OtALCJyl1HGzKo6ur21qxnId9dTl8v3yeD+5HJKZ2h1mv7e94debH5QDtimMU80V6jbXM8Q== dependencies: - "@stoplight/lifecycle" "^2.2.1" - "@stoplight/react-error-boundary" "^1.0.0" - classnames "^2.2.6" - mobx-react-lite "^1.5.2" - strict-event-emitter-types "^2.0.0" - -"@stoplight/types@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@stoplight/types/-/types-11.0.0.tgz#fd234cfcb1a1cee28ef9642735d9206e009a8fa6" - integrity sha512-Tt8doUE2E5HACigjBHyBpMHS+Td+9tBmGvf4giDH9jK7mS6Q7dyLOeE2QSKyMrslmzd1mRuKBvPhS18g9EEjog== - dependencies: - "@types/json-schema" "^7.0.3" - -"@stoplight/types@^10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@stoplight/types/-/types-10.0.1.tgz#aad7ddf667fc4a86b71b4813a22285e959300595" - integrity sha512-NC/LV+p9UQL18RfiKuTmPnuyA/ZqRFpYaQYGU0Z60/snluiRDDBIsq3FPjPwQQFYn0L5lqbNMiRcPs0yUZ2wNA== - dependencies: - "@types/json-schema" "^7.0.3" + "@types/json-schema" "^7.0.4" + utility-types "^3.10.0" -"@stoplight/types@^11.1.0", "@stoplight/types@^11.4.0": - version "11.6.0" - resolved "https://registry.yarnpkg.com/@stoplight/types/-/types-11.6.0.tgz#c4507f564ea4be719f66ae2fd2bb83f4719c2210" - integrity sha512-J2wOl6FlN4IeY99MZTbgLVbIqrE9eVcHIvWmSEFzxfnbHCh4reXcGkvxlQ7I/pTKScd5/F/HJKSYnNXRjCnM2A== +"@stoplight/types@^12.0.0", "@stoplight/types@^12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@stoplight/types/-/types-12.3.0.tgz#ac71d295319f26abb279e3d89d1c1774857d20b4" + integrity sha512-hgzUR1z5BlYvIzUeFK5pjs5JXSvEutA9Pww31+dVicBlunsG1iXopDx/cvfBY7rHOrgtZDuvyeK4seqkwAZ6Cg== dependencies: "@types/json-schema" "^7.0.4" utility-types "^3.10.0" -"@stoplight/ui-kit@3.0.0-beta.2": - version "3.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@stoplight/ui-kit/-/ui-kit-3.0.0-beta.2.tgz#90492ce72373a4120cb5304a9121bcb82a812dd5" - integrity sha512-sZoW214BMuMvuKkGFtonZ47Km445VapA3F6O5MUTrwhcfBNnZfDBp3flYRI3MW1QQF5gNbWha2SyVBwvo+ZJ3w== - dependencies: - "@blueprintjs/core" "^3.25.0" - "@blueprintjs/icons" "^3.15.0" - "@blueprintjs/select" "^3.12.1" - "@fortawesome/fontawesome-common-types" "^0.2.28" - classnames "^2.2.6" - prismjs "^1.20.0" - react-input-autosize "^2.2.2" - react-scrollbars-custom "~4.0.21" - react-simple-code-editor "~0.11.0" - react-tabs "^3.1.0" - react-virtualized-auto-sizer "^1.0.2" - react-window "~1.8.5" - yup "^0.28.3" +"@stoplight/yaml-ast-parser@0.0.48": + version "0.0.48" + resolved "https://registry.yarnpkg.com/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz#442b21f419427acaa8a3106ebc5d73351c407002" + integrity sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg== + +"@stoplight/yaml@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@stoplight/yaml/-/yaml-4.2.2.tgz#8c48a46dcdaee114f659764827f46afc0669d65b" + integrity sha512-N086FU8pmSpjc5TvMBjmlTniZVh3OXzmEh6SYljSLiuv6aMxgjyjf13YrAlUqgu0b4b6pQ5zmkjrfo9i0SiLsw== + dependencies: + "@stoplight/ordered-object-literal" "^1.0.1" + "@stoplight/types" "^12.0.0" + "@stoplight/yaml-ast-parser" "0.0.48" + tslib "^2.2.0" "@storybook/addon-actions@^5.3.8": version "5.3.13" @@ -2214,10 +3157,15 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.0.0.tgz#9c13c2574c92d4503b005feca8f2e16cc1611506" integrity sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA== -"@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -2226,67 +3174,66 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" - integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== dependencies: "@babel/types" "^7.3.0" -"@types/cheerio@*": - version "0.22.13" - resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.13.tgz#5eecda091a24514185dcba99eda77e62bf6523e6" - integrity sha512-OZd7dCUOUkiTorf97vJKwZnSja/DmHfuBAroe1kREZZTCf/tlFecwHhsOos3uVHxeKGZDwzolIrCUApClkdLuA== +"@types/cheerio@*", "@types/cheerio@^0.22.22": + version "0.22.23" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.23.tgz#74bcfee9c5ee53f619711dca953a89fe5cfa4eb4" + integrity sha512-QfHLujVMlGqcS/ePSf3Oe5hK3H8wi/yN2JYuxSB1U10VvW1fO3K8C+mURQesFYS1Hn7lspOsTT75SKq/XtydQg== dependencies: "@types/node" "*" -"@types/classnames@^2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.9.tgz#d868b6febb02666330410fe7f58f3c4b8258be7b" - integrity sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A== - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/dom4@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.1.tgz#506d5781b9bcab81bd9a878b198aec7dee2a6033" - integrity sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA== +"@types/classnames@^2.2.11": + version "2.2.11" + resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf" + integrity sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw== -"@types/enzyme@3.10.3": - version "3.10.3" - resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.3.tgz#02b6c5ac7d0472005944a652e79045e2f6c66804" - integrity sha512-f/Kcb84sZOSZiBPCkr4He9/cpuSLcKRyQaEE20Q30Prx0Dn6wcyMAWI0yofL6yvd9Ht9G7EVkQeRqK0n5w8ILw== +"@types/enzyme@^3.10.8": + version "3.10.8" + resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.8.tgz#ad7ac9d3af3de6fd0673773123fafbc63db50d42" + integrity sha512-vlOuzqsTHxog6PV79+tvOHFb6hq4QZKMq1lLD9MaWD1oec2lHTKndn76XOpSwCA0oFTaIbKVPrgM3k78Jjd16g== dependencies: "@types/cheerio" "*" "@types/react" "*" -"@types/estree@*": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" - integrity sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ== - -"@types/estree@0.0.39": +"@types/estree@*", "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/graceful-fs@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== + dependencies: + "@types/node" "*" + +"@types/hast@^2.0.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" + integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== + dependencies: + "@types/unist" "*" + "@types/history@*": version "4.7.5" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.5.tgz#527d20ef68571a4af02ed74350164e7a67544860" @@ -2297,15 +3244,15 @@ resolved "https://registry.yarnpkg.com/@types/is-function/-/is-function-1.0.0.tgz#1b0b819b1636c7baf0d6785d030d12edf70c3e83" integrity sha512-iTs9HReBu7evG77Q4EC8hZnqRt57irBDkK9nvmHroiOIVwYMQc4IvYvdRgwKfYepunIY7Oh/dBuuld+Gj9uo6w== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" @@ -2317,38 +3264,58 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest-diff@*": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" - integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" -"@types/jest@^24.0.18": - version "24.0.18" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.18.tgz#9c7858d450c59e2164a8a9df0905fc5091944498" - integrity sha512-jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ== +"@types/jest@26.x", "@types/jest@^26.0.18": + version "26.0.19" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.19.tgz#e6fa1e3def5842ec85045bd5210e9bb8289de790" + integrity sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ== dependencies: - "@types/jest-diff" "*" + jest-diff "^26.0.0" + pretty-format "^26.0.0" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/lodash@^4.14.149": - version "4.14.149" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" - integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== + version "4.14.168" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.168.tgz#fe24632e79b7ade3f132891afff86caa5e5ce008" + integrity sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q== -"@types/node@*", "@types/node@>= 8", "@types/node@^13.5.0": - version "13.7.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d" - integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA== +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + +"@types/node@*", "@types/node@>= 8": + version "14.14.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.12.tgz#0b1d86f8c40141091285dea02e4940df73bba43f" + integrity sha512-ASH8OPHMNlkdjrEdmoILmzFfsJICvhBsFfAum4aKZ/9U4B6M6tTmTPh+f3ttWdD74CEGV5XvXWkbyfSdXaTd7g== "@types/node@^12.7.2": version "12.7.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== +"@types/node@^13.5.0": + version "13.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d" + integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -2364,10 +3331,15 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/pluralize@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" - integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + +"@types/prettier@^2.0.0": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz#b6ab3bba29e16b821d84e09ecfaded462b816b00" + integrity sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ== "@types/prop-types@*": version "15.7.1" @@ -2379,6 +3351,11 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== +"@types/raf-schd@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/raf-schd/-/raf-schd-4.0.0.tgz#0f3f7a68aa385cc0eb52d257b56fe526134261ff" + integrity sha512-EsXE+pu4MjOhU+H2Ut/8zOGUtictm87anwxOcNY1HjxkH8ipLR+SzYnCzT4lQvyKJdcMwIGxhb8w/KZhOy6vaQ== + "@types/reach__router@^1.2.3": version "1.3.0" resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.0.tgz#4c05a947ccecca05c72bb335a0f7bb43fec12446" @@ -2448,6 +3425,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + "@types/storybook__react@^5.2.1": version "5.2.1" resolved "https://registry.yarnpkg.com/@types/storybook__react/-/storybook__react-5.2.1.tgz#b5fd1612f2e5846b2f441725ea946bafd7ab9edb" @@ -2460,7 +3442,7 @@ resolved "https://registry.yarnpkg.com/@types/treeify/-/treeify-1.0.0.tgz#f04743cb91fc38254e8585d692bd92503782011c" integrity sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg== -"@types/unist@^2.0.0", "@types/unist@^2.0.2": +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== @@ -2471,9 +3453,9 @@ integrity sha512-eWN5ElDTeBc5lRDh95SqA8x18D0ll2pWudU3uWiyfsRmIZcmUXpEsxPU+7+BsdCrO2vfLRC629u/MmjbmF+2tA== "@types/yargs-parser@*": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.0.0.tgz#453743c5bbf9f1bed61d959baab5b06be029b2d0" - integrity sha512-wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw== + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^13.0.0": version "13.0.2" @@ -2482,6 +3464,90 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^15.0.0": + version "15.0.11" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c" + integrity sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" + integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.1.tgz#66758cbe129b965fe9c63b04b405d0cf5280868b" + integrity sha512-QRLDSvIPeI1pz5tVuurD+cStNR4sle4avtHhxA+2uyixWGFjKzJ+EaFVRW6dA/jOgjV5DTAjOxboQkRDE8cRlQ== + dependencies: + "@typescript-eslint/experimental-utils" "4.9.1" + "@typescript-eslint/scope-manager" "4.9.1" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.9.1", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.1.tgz#86633e8395191d65786a808dc3df030a55267ae2" + integrity sha512-c3k/xJqk0exLFs+cWSJxIjqLYwdHCuLWhnpnikmPQD2+NGAx9KjLYlBDcSI81EArh9FDYSL6dslAUSwILeWOxg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.9.1" + "@typescript-eslint/types" "4.9.1" + "@typescript-eslint/typescript-estree" "4.9.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.9.1.tgz#2d74c4db5dd5117379a9659081a4d1ec02629055" + integrity sha512-Gv2VpqiomvQ2v4UL+dXlQcZ8zCX4eTkoIW+1aGVWT6yTO+6jbxsw7yQl2z2pPl/4B9qa5JXeIbhJpONKjXIy3g== + dependencies: + "@typescript-eslint/scope-manager" "4.9.1" + "@typescript-eslint/types" "4.9.1" + "@typescript-eslint/typescript-estree" "4.9.1" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.9.1.tgz#cc2fde310b3f3deafe8436a924e784eaab265103" + integrity sha512-sa4L9yUfD/1sg9Kl8OxPxvpUcqxKXRjBeZxBuZSSV1v13hjfEJkn84n0An2hN8oLQ1PmEl2uA6FkI07idXeFgQ== + dependencies: + "@typescript-eslint/types" "4.9.1" + "@typescript-eslint/visitor-keys" "4.9.1" + +"@typescript-eslint/types@4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.9.1.tgz#a1a7dd80e4e5ac2c593bc458d75dd1edaf77faa2" + integrity sha512-fjkT+tXR13ks6Le7JiEdagnwEFc49IkOyys7ueWQ4O8k4quKPwPJudrwlVOJCUQhXo45PrfIvIarcrEjFTNwUA== + +"@typescript-eslint/typescript-estree@4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.1.tgz#6e5b86ff5a5f66809e1f347469fadeec69ac50bf" + integrity sha512-bzP8vqwX6Vgmvs81bPtCkLtM/Skh36NE6unu6tsDeU/ZFoYthlTXbBmpIrvosgiDKlWTfb2ZpPELHH89aQjeQw== + dependencies: + "@typescript-eslint/types" "4.9.1" + "@typescript-eslint/visitor-keys" "4.9.1" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.1.tgz#d76374a58c4ead9e92b454d186fea63487b25ae1" + integrity sha512-9gspzc6UqLQHd7lXQS7oWs+hrYggspv/rk6zzEMhCbYwPE/sF7oxo7GAjkS35Tdlt7wguIG+ViWCPtVZHz/ybQ== + dependencies: + "@typescript-eslint/types" "4.9.1" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" @@ -2491,21 +3557,45 @@ "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/wast-parser" "1.8.5" +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@webassemblyjs/floating-point-hex-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + "@webassemblyjs/helper-api-error@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + "@webassemblyjs/helper-buffer@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + "@webassemblyjs/helper-code-frame@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" @@ -2513,11 +3603,23 @@ dependencies: "@webassemblyjs/wast-printer" "1.8.5" +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/helper-fsm@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + "@webassemblyjs/helper-module-context@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" @@ -2526,11 +3628,23 @@ "@webassemblyjs/ast" "1.8.5" mamacro "^0.0.3" +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + "@webassemblyjs/helper-wasm-section@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" @@ -2541,6 +3655,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/wasm-gen" "1.8.5" +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/ieee754@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" @@ -2548,6 +3672,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/leb128@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" @@ -2555,11 +3686,23 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/utf8@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + "@webassemblyjs/wasm-edit@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" @@ -2574,6 +3717,20 @@ "@webassemblyjs/wasm-parser" "1.8.5" "@webassemblyjs/wast-printer" "1.8.5" +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/wasm-gen@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" @@ -2585,6 +3742,17 @@ "@webassemblyjs/leb128" "1.8.5" "@webassemblyjs/utf8" "1.8.5" +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/wasm-opt@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" @@ -2595,6 +3763,16 @@ "@webassemblyjs/wasm-gen" "1.8.5" "@webassemblyjs/wasm-parser" "1.8.5" +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wasm-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" @@ -2607,6 +3785,18 @@ "@webassemblyjs/leb128" "1.8.5" "@webassemblyjs/utf8" "1.8.5" +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/wast-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" @@ -2619,6 +3809,18 @@ "@webassemblyjs/helper-fsm" "1.8.5" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" @@ -2628,6 +3830,15 @@ "@webassemblyjs/wast-parser" "1.8.5" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -2646,10 +3857,10 @@ JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" - integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== +abab@^2.0.0, abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== abbrev@1, abbrev@~1.1.1: version "1.1.1" @@ -2672,11 +3883,34 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + acorn-walk@^6.0.1: version "6.2.0" 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-walk@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" + integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== + acorn@^5.5.3: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" @@ -2687,10 +3921,20 @@ acorn@^6.0.1, acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== -acorn@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4: + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88" + integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw== address@1.1.2, address@^1.0.1: version "1.1.2" @@ -2767,42 +4011,46 @@ airbnb-js-shims@^2.2.1: string.prototype.padstart "^3.0.0" symbol.prototype.description "^1.0.0" -airbnb-prop-types@^2.13.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef" - integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA== +airbnb-prop-types@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" + integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== dependencies: - array.prototype.find "^2.1.0" - function.prototype.name "^1.1.1" - has "^1.0.3" - is-regex "^1.0.4" - object-is "^1.0.1" + array.prototype.find "^2.1.1" + function.prototype.name "^1.1.2" + is-regex "^1.1.0" + object-is "^1.1.2" object.assign "^4.1.0" - object.entries "^1.1.0" + object.entries "^1.1.2" prop-types "^15.7.2" prop-types-exact "^1.2.0" - react-is "^16.9.0" + react-is "^16.13.1" ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -2827,6 +4075,11 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -2854,7 +4107,7 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0, ansi-regex@^4.1.0: +ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -2877,11 +4130,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-to-html@^0.6.11: @@ -2914,17 +4166,33 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + app-root-dir@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= -aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, "aproba@^1.1.2 || 2": version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.1.2 || 2", aproba@^2.0.0: +aproba@^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== @@ -2999,13 +4267,16 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" + integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + get-intrinsic "^1.0.1" + is-string "^1.0.5" array-union@^1.0.1: version "1.0.2" @@ -3029,30 +4300,31 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.find@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" - integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg== +array.prototype.find@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== dependencies: define-properties "^1.1.3" - es-abstract "^1.13.0" + es-abstract "^1.17.4" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" -array.prototype.flatmap@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz#3103cd4826ef90019c9b0a4839b2535fa6faf4e9" - integrity sha512-i18e2APdsiezkcqDyZor78Pbfjfds3S94dG6dgIV2ZASJaUf1N0dz2tGdrmwrmlZuNUgxH+wz6Z0zYVH2c5xzQ== +array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" arrify@^1.0.1: @@ -3086,21 +4358,13 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@1.4.1: +assert@1.4.1, assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3153,7 +4417,7 @@ atob-lite@^2.0.0: resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -3233,28 +4497,29 @@ babel-helper-to-multiple-sequence-expressions@^0.5.0: resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" -babel-loader@^8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== +babel-loader@^8.0.6, babel-loader@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - pify "^4.0.1" + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" babel-plugin-add-react-displayname@^0.0.5: version "0.0.5" @@ -3294,11 +4559,25 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0: @@ -3473,13 +4752,31 @@ babel-polyfill@6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" +babel-preset-current-node-syntax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77" + integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.1" @@ -3533,6 +4830,11 @@ base64-js@^1.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3584,11 +4886,25 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" integrity sha1-FK1hE4EtLTfXLme0ystLtyZQXxE= +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -3622,6 +4938,11 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -3683,7 +5004,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -3695,17 +5016,10 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -3775,6 +5089,17 @@ browserslist@4.7.0: electron-to-chromium "^1.3.247" node-releases "^1.1.29" +browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + browserslist@^4.6.0, browserslist@^4.6.6, browserslist@^4.8.3: version "4.8.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz#ec8301ff415e6a42c949d0e66b405eb539c532d0" @@ -3791,10 +5116,10 @@ bs-logger@0.x: dependencies: fast-json-stable-stringify "2.x" -bser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" - integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" @@ -3803,6 +5128,11 @@ btoa-lite@^1.0.0: resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -3822,10 +5152,13 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= +buffer@^5.2.1, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" builtin-status-codes@^3.0.0: version "3.0.0" @@ -3847,6 +5180,11 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +bytes-iec@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" + integrity sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA== + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" @@ -3917,6 +5255,14 @@ cachedir@2.2.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + call-limit@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" @@ -4001,11 +5347,31 @@ camelcase@^4.0.0, camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + can-use-dom@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219: + version "1.0.30001235" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" + integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== + caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001027: version "1.0.30001027" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz#283e2ef17d94889cc216a22c6f85303d78ca852d" @@ -4074,6 +5440,22 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + change-case@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" @@ -4098,10 +5480,10 @@ change-case@^3.0.1: upper-case "^1.1.1" upper-case-first "^1.1.0" -character-entities-html4@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" - integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== character-entities-legacy@^1.0.0: version "1.1.3" @@ -4123,7 +5505,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -cheerio@^1.0.0-rc.2: +cheerio@^1.0.0-rc.3: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== @@ -4135,7 +5517,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^2.0.2, chokidar@^2.0.4: +chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -4154,6 +5536,21 @@ chokidar@^2.0.2, chokidar@^2.0.4: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" @@ -4176,6 +5573,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-job-number@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" + integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== + cidr-regex@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" @@ -4196,6 +5598,11 @@ circular-json-es6@^2.0.1: resolved "https://registry.yarnpkg.com/circular-json-es6/-/circular-json-es6-2.0.2.tgz#e4f4a093e49fb4b6aba1157365746112a78bd344" integrity sha512-ODYONMMNb3p658Zv+Pp+/XPa5s6q7afhz3Tzyvo+VRh9WIrJ64J76ZC4GQxnlye/NesTn09jvOiuE8+xxfpwhQ== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -4206,7 +5613,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2, classnames@^2.2, classnames@^2.2.0, classnames@^2.2.5, classnames@^2.2.6: +classnames@^2.2.5, classnames@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== @@ -4268,6 +5675,11 @@ cli-progress@^3.4.0: colors "^1.1.2" string-width "^2.1.1" +cli-spinners@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + cli-table3@0.5.1, cli-table3@^0.5.0, cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" @@ -4357,15 +5769,6 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -4375,6 +5778,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.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" @@ -4400,6 +5812,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + cmd-shim@^3.0.0, cmd-shim@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz#2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb" @@ -4408,11 +5825,6 @@ cmd-shim@^3.0.0, cmd-shim@^3.0.3: graceful-fs "^4.1.2" mkdirp "~0.5.0" -cnbuilder@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/cnbuilder/-/cnbuilder-1.1.7.tgz#04ef08d278efd69bc65a95b087328455a85a2eef" - integrity sha512-8D9dpabOVOh7GX/qPZ60sJpqxHaiLqSDsuZOYH1TvoNkgMrO7BJHCbNepHHoglSdU//M2sjLHaL9Vu0qibSV2A== - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -4432,10 +5844,10 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -collapse-white-space@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" - integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== collection-visit@^1.0.0: version "1.0.0" @@ -4469,6 +5881,16 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colord@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" + integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== + +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" @@ -4499,7 +5921,7 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== -commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0, commander@~2.20.0: +commander@^2.19.0, commander@^2.20.0, commander@^2.9.0, commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== @@ -4509,6 +5931,16 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commitizen@4.0.3, commitizen@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.0.3.tgz#c19a4213257d0525b85139e2f36db7cc3b4f6dae" @@ -4639,6 +6071,11 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -4723,7 +6160,7 @@ conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7: through2 "^3.0.0" trim-off-newlines "^1.0.0" -convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -4762,24 +6199,25 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-to-clipboard@^3.0.8: - version "3.2.0" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467" - integrity sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w== +copy-to-clipboard@^3.0.8, copy-to-clipboard@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: toggle-selection "^1.0.6" -copyfiles@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.1.1.tgz#d430e122d7880f92c45d372208b0af03b0c39db6" - integrity sha512-y6DZHve80whydXzBal7r70TBgKMPKesVRR1Sn/raUu7Jh/i7iSLSyGvYaq0eMJ/3Y/CKghwzjY32q1WzEnpp3Q== +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== dependencies: glob "^7.0.5" minimatch "^3.0.3" - mkdirp "^0.5.1" + mkdirp "^1.0.4" noms "0.0.0" through2 "^2.0.1" - yargs "^13.2.4" + untildify "^4.0.0" + yargs "^16.1.0" core-js-compat@^3.1.1: version "3.2.1" @@ -4843,6 +6281,17 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -4925,10 +6374,10 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -4961,6 +6410,23 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" + integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== + dependencies: + timsort "^0.3.0" + css-loader@^3.0.0, css-loader@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" @@ -4979,6 +6445,22 @@ css-loader@^3.0.0, css-loader@^3.4.2: postcss-value-parser "^4.0.2" schema-utils "^2.6.0" +css-loader@^5.2.5: + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + css-node-extract@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/css-node-extract/-/css-node-extract-2.1.3.tgz#ec388a857b8fdf13fefd94b3da733257162405da" @@ -5012,6 +6494,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-selector-extract@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/css-selector-extract/-/css-selector-extract-3.3.6.tgz#5cc670cfeae743015e80faf2d722d7818657e3e5" @@ -5019,10 +6512,10 @@ css-selector-extract@^3.3.6: dependencies: postcss "^6.0.14" -css-selector-parser@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz#5f1ad43e2d8eefbfdc304fcd39a521664943e3eb" - integrity sha1-XxrUPi2O77/cME/NOaUhZklD4+s= +css-selector-parser@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" + integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" @@ -5040,11 +6533,24 @@ css-tree@1.0.0-alpha.33: mdn-data "2.0.4" source-map "^0.5.3" +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + css-what@2.1, css-what@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" @@ -5060,6 +6566,55 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssnano-preset-default@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.2.tgz#5d4877a91769823c5da6bcebd54996ecdf8aca12" + integrity sha512-spilp8LRw0sacuxiN9A/dyyPr6G/WISKMBKcBD4NMoPV0ENx4DeuWvIIrSx9PII2nJIDCO3kywkqTPreECBVOg== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.0" + postcss-convert-values "^5.0.1" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.2" + postcss-merge-rules "^5.0.2" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.1" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.1" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.1" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.2" + postcss-unique-selectors "^5.0.1" + +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== + +cssnano@^5.0.2: + version "5.0.5" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.5.tgz#6b8787123bf4cd5a220a2fa6cb5bc036b0854b48" + integrity sha512-L2VtPXnq6rmcMC9vkBOP131sZu3ccRQI27ejKZdmQiPDpUlFkUbpXHgKN+cibeO1U4PItxVZp1zTIn5dHsXoyg== + dependencies: + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.1.2" + is-resolvable "^1.1.0" + csso@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" @@ -5067,11 +6622,23 @@ csso@^3.5.1: dependencies: css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + cssstyle@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" @@ -5079,6 +6646,13 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + csstype@^2.2.0, csstype@^2.5.7: version "2.6.6" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" @@ -5156,6 +6730,15 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" @@ -5179,7 +6762,7 @@ deasync@^0.1.7: bindings "~1.2.1" node-addon-api "^1.6.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -5193,12 +6776,12 @@ debug@3.1.0, debug@=3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: version "3.2.6" @@ -5225,6 +6808,11 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -5259,7 +6847,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -5269,6 +6857,11 @@ deep-object-diff@^1.1.0: resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -5373,6 +6966,11 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -5394,6 +6992,11 @@ detect-port@^1.3.0: address "^1.0.1" debug "^2.6.0" +devtools-protocol@0.0.869402: + version "0.0.869402" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.869402.tgz#03ade701761742e43ae4de5dc188bcd80f156d8d" + integrity sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA== + dezalgo@^1.0.0, dezalgo@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -5402,15 +7005,10 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== diffie-hellman@^5.0.0: version "5.0.3" @@ -5441,6 +7039,21 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -5455,22 +7068,14 @@ dom-converter@^0.2: dependencies: utila "~0.4" -dom-helpers@^3.4.0: +dom-helpers@^3.3.1, dom-helpers@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^0.1.0, dom-serializer@~0.1.1: +dom-serializer@0, dom-serializer@^0.1.0, dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== @@ -5478,16 +7083,20 @@ dom-serializer@^0.1.0, dom-serializer@~0.1.1: domelementtype "^1.3.0" entities "^1.1.1" +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= -dom4@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.5.tgz#f98a94eb67b340f0fa5b42b0ee9c38cda035428e" - integrity sha512-gJbnVGq5zaBUY0lUh0LUEVGYrtN75Ks8ZwpwOYvnVFrKy/qzXK4R/1WuLIFExWj/tBxbRAkTzZUGJHXmqsBNjQ== - domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -5498,10 +7107,10 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domexception@^1.0.1: version "1.0.1" @@ -5510,6 +7119,13 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -5517,6 +7133,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -5533,6 +7156,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.3: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" @@ -5605,6 +7237,11 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= +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== + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -5643,6 +7280,11 @@ electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.349: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.349.tgz#663f26a69d348a462df47b4d7ab162a2f29bbcb7" integrity sha512-uEb2zs6EJ6OZIqaMsCSliYVgzE/f7/s1fLWqtvRtHg/v5KBF2xds974fUnyatfxIDgkqzQVwFtam5KExqywx0Q== +electron-to-chromium@^1.3.723: + version "1.3.749" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a" + integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -5668,6 +7310,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" @@ -5688,7 +7335,12 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -emotion-theming@^10.0.14, emotion-theming@^10.0.19: +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emotion-theming@^10.0.19: version "10.0.27" resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.27.tgz#1887baaec15199862c89b1b984b79806f2b9ab10" integrity sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw== @@ -5709,10 +7361,10 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -5725,15 +7377,31 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1, entities@^1.1.2, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== env-ci@^2.1.0: version "2.6.0" @@ -5756,73 +7424,86 @@ env-paths@^1.0.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= -enzyme-adapter-react-16@1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.14.0.tgz#204722b769172bcf096cb250d33e6795c1f1858f" - integrity sha512-7PcOF7pb4hJUvjY7oAuPGpq3BmlCig3kxXGi2kFx0YzJHppqX1K8IIV9skT1IirxXlu8W7bneKi+oQ10QRnhcA== +enzyme-adapter-react-16@^1.15.5: + version "1.15.5" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.5.tgz#7a6f0093d3edd2f7025b36e7fbf290695473ee04" + integrity sha512-33yUJGT1nHFQlbVI5qdo5Pfqvu/h4qPwi1o0a6ZZsjpiqq92a3HjynDhwd1IeED+Su60HDWV8mxJqkTnLYdGkw== dependencies: - enzyme-adapter-utils "^1.12.0" + enzyme-adapter-utils "^1.13.1" + enzyme-shallow-equal "^1.0.4" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.0" + object.values "^1.1.1" prop-types "^15.7.2" - react-is "^16.8.6" + react-is "^16.13.1" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" - integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA== +enzyme-adapter-utils@^1.13.1: + version "1.14.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" + integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== dependencies: - airbnb-prop-types "^2.13.2" - function.prototype.name "^1.1.0" - object.assign "^4.1.0" - object.fromentries "^2.0.0" + airbnb-prop-types "^2.16.0" + function.prototype.name "^1.1.3" + has "^1.0.3" + object.assign "^4.1.2" + object.fromentries "^2.0.3" prop-types "^15.7.2" - semver "^5.6.0" + semver "^5.7.1" -enzyme-matchers@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-7.1.0.tgz#7224298028679af41d224fdff02b9a9a61f2ad86" - integrity sha512-PCfIvyNnZh4ougBaMXKeqNrN6yilzkbtphpi2X74uFeqbPabDUcvNq30Bcw29sSIv7QI1ZCTlQ2ktGep/4jIBw== +enzyme-matchers@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-7.1.2.tgz#d80530a61f22d28bb993dd7588abba38bd4de282" + integrity sha512-03WqAg2XDl7id9rARIO97HQ1JIw9F2heJ3R4meGu/13hx0ULTDEgl0E67MGl2Uq1jq1DyRnJfto1/VSzskdV5A== dependencies: circular-json-es6 "^2.0.1" deep-equal-ident "^1.1.1" -enzyme-to-json@3.4.0, enzyme-to-json@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.0.tgz#2b6330a784a57ba68298e3c0d6cef17ee4fedc0e" - integrity sha512-gbu8P8PMAtb+qtKuGVRdZIYxWHC03q1dGS3EKRmUzmTDIracu3o6cQ0d4xI2YWojbelbxjYOsmqM5EgAL0WgIA== +enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" + integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== dependencies: - lodash "^4.17.12" + has "^1.0.3" + object-is "^1.1.2" -enzyme@3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== +enzyme-to-json@^3.3.0, enzyme-to-json@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.1.tgz#d60740950bc7ca6384dfe6fe405494ec5df996bc" + integrity sha512-15tXuONeq5ORoZjV/bUo2gbtZrN2IH+Z6DvL35QmZyKHgbY1ahn6wcnLd9Xv9OjiwbAXiiP8MRZwbZrCv1wYNg== dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + "@types/cheerio" "^0.22.22" + lodash "^4.17.15" + react-is "^16.12.0" + +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" err-code@^1.0.0: version "1.1.2" @@ -5843,22 +7524,40 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== +es-abstract@^1.13.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.4.3, es-abstract@^1.5.1: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -5917,6 +7616,11 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" +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: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -5927,61 +7631,240 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.14.1, escodegen@^1.9.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-plugin-prettier@^2.2.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" - integrity sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA== - dependencies: - fast-diff "^1.1.1" - jest-docblock "^21.0.0" +eslint-config-prettier@^6.14.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== + dependencies: + get-stdin "^6.0.0" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.20.2: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jest@^24.1.3: + version "24.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz#fa3db864f06c5623ff43485ca6c0e8fc5fe8ba0c" + integrity sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-prettier@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.2.0.tgz#af391b2226fa0e15c96f36c733f6e9035dbd952c" + integrity sha512-kOUSJnFjAUFKwVxuzy6sA5yyMx6+o9ino4gCdShzBNx4eyFRudWRYKCFolKjoM40PEiuU6Cn7wBLfq3WsGg7qg== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.21.5: + version "7.21.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3" + integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g== + dependencies: + array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + object.entries "^1.1.2" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.18.1" + string.prototype.matchall "^4.0.2" + +eslint-plugin-simple-import-sort@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.3.tgz#9ae258ddada6efffc55e47a134afbd279eb31fc6" + integrity sha512-1rf3AWiHeWNCQdAq0iXNnlccnH1UDnelGgrPbjBBHE8d2hXVtOudcmy0vTF4hri3iJ0MKz8jBhmH6lJ0ZWZLHQ== + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint@^7.15.0: + version "7.15.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.15.0.tgz#eb155fb8ed0865fcf5d903f76be2e5b6cd7e0bc7" + integrity sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA== dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" esm@^3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^4.1.0" + estraverse "^5.1.0" -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estimo@^2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/estimo/-/estimo-2.2.7.tgz#bbfd97ad208b831d83ac5402c26e32b0e23939ed" + integrity sha512-hY5X3DwK4Pftmc2yvkKXiRk32gr8vbc0OMfztQjsA9UYX29aovnpuIoL/g0MlcNXe8EOKGLrKIl1t0cItoblhA== + dependencies: + "@sitespeed.io/tracium" "^0.3.3" + nanoid "^3.1.22" + puppeteer-core "^9.1.0" + yargs "^17.0.0" + +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -5992,6 +7875,11 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.0, esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -6028,9 +7916,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" exec-sh@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" - integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== execa@^0.7.0: version "0.7.0" @@ -6114,17 +8002,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" express@^4.17.0: version "4.17.1" @@ -6210,16 +8098,22 @@ extract-stack@^1.0.0: resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa" integrity sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo= -extsprintf@1.3.0: +extract-zip@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fake-tag@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/fake-tag/-/fake-tag-1.0.1.tgz#1d59da482240a02bd83500ca98976530ed154b0d" @@ -6230,7 +8124,12 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-diff@^1.1.1: +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== @@ -6247,16 +8146,17 @@ fast-glob@^2.0.2: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" - integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== +fast-glob@^3.1.1, fast-glob@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.0" merge2 "^1.3.0" micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-parse@^1.0.0: version "1.0.3" @@ -6264,11 +8164,11 @@ fast-json-parse@^1.0.0: integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.4: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -6285,7 +8185,14 @@ fastq@^1.6.0: dependencies: reusify "^1.0.0" -fault@^1.0.1, fault@^1.0.2: +fault@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +fault@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.3.tgz#4da88cf979b6b792b4e13c7ec836767725170b7e" integrity sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA== @@ -6300,11 +8207,11 @@ faye-websocket@~0.11.1: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: - bser "^2.0.0" + bser "2.1.1" fbjs@^0.8.0: version "0.8.17" @@ -6319,6 +8226,13 @@ fbjs@^0.8.0: setimmediate "^1.0.5" ua-parser-js "^0.7.18" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -6346,6 +8260,13 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + dependencies: + flat-cache "^3.0.4" + file-loader@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" @@ -6354,6 +8275,14 @@ file-loader@^4.2.0: loader-utils "^1.2.3" schema-utils "^2.5.0" +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + file-system-cache@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" @@ -6398,7 +8327,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -6407,13 +8336,13 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" - integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== +find-cache-dir@^3.0.0, find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" - make-dir "^3.0.0" + make-dir "^3.0.2" pkg-dir "^4.1.0" find-node-modules@2.0.0: @@ -6481,11 +8410,24 @@ findup-sync@^3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + flatstr@^1.0.4: version "1.0.12" resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -6494,11 +8436,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -fn-name@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c" - integrity sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA== - focus-lock@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.6.tgz#98119a755a38cfdbeda0280eaa77e307eee850c7" @@ -6556,7 +8493,7 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -format@^0.2.2: +format@^0.2.0, format@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= @@ -6594,6 +8531,11 @@ from2@^2.1.0, from2@^2.3.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@8.1.0, fs-extra@^8.0.0, fs-extra@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -6669,6 +8611,16 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d" + integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA== + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" @@ -6684,20 +8636,25 @@ function-bind@^1.0.2, function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0, function.prototype.name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" - integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q== +function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.3.tgz#0bb034bb308e7682826f215eb6b2ae64918847fe" + integrity sha512-H51qkbNSp8mtkJt+nyW1gyStBiKZxfRqySNUR99ylq6BPXHKI4SEvIlTKp4odLfjRKJV04DFWMU3G/YRlQOsag== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - function-bind "^1.1.1" - functions-have-names "^1.1.1" - is-callable "^1.1.4" + es-abstract "^1.18.0-next.1" + functions-have-names "^1.2.1" -functions-have-names@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.1.1.tgz#79d35927f07b8e7103d819fed475b64ccf7225ea" - integrity sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +functions-have-names@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== fuse.js@^3.4.6: version "3.4.6" @@ -6731,9 +8688,9 @@ genfun@^5.0.0: integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== gentle-fs@^2.0.1, gentle-fs@^2.2.1: version "2.2.1" @@ -6756,16 +8713,30 @@ 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== +get-intrinsic@^1.0.0, get-intrinsic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stdin@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" @@ -6776,6 +8747,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -6795,6 +8771,13 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -6830,10 +8813,10 @@ git-raw-commits@^2.0.0: split2 "^2.0.0" through2 "^3.0.0" -github-slugger@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" - integrity sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ== +github-slugger@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== dependencies: emoji-regex ">=6.0.0 <=6.1.1" @@ -6860,10 +8843,17 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== +glob-parent@^5.0.0, glob-parent@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -6872,7 +8862,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@7.1.4, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -6884,6 +8874,30 @@ glob@7.1.4, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glo once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^0.1.0, global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -6940,6 +8954,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globalthis@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" @@ -6962,10 +8983,22 @@ globby@8.0.2: pify "^3.0.0" slash "^1.0.0" -globby@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" - integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== +globby@^11.0.0, globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" + integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -7007,10 +9040,10 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growly@^1.3.0: version "1.3.0" @@ -7030,6 +9063,13 @@ gzip-size@5.1.1: 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" + handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" @@ -7117,7 +9157,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -7140,10 +9180,75 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hast-util-parse-selector@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.2.tgz#66aabccb252c47d94975f50a281446955160380b" - integrity sha512-jIMtnzrLTjzqgVEQqPEmwEZV+ea4zHRFTP8Z2Utw0I5HuBOXHzUPPQWr6ouJdJqDKLbFU/OEiYwZ79LalZkmmw== +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0, hast-util-parse-selector@^2.2.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.1.0.tgz#e16a3c2642f65cc7c480c165400a40d604ab75d0" + integrity sha512-5FoZLDHBpka20OlZZ4I/+RBw5piVQ8iI1doEvffQhx5CbCyTtP8UCq8Tw6NmTAMtXgsQxmhW7Ly8OdFre5/YMQ== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-sanitize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-4.0.0.tgz#71a02ca2e50d04b852a5500846418070ca364f60" + integrity sha512-pw56+69jq+QSr/coADNvWTmBPDy+XsmwaF5KnUys4/wM1jt/fZdl7GPxhXXXYdXnz3Gj3qMkbUCH2uKjvX0MgQ== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c" + integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== hastscript@^5.0.0: version "5.1.0" @@ -7155,6 +9260,17 @@ hastscript@^5.0.0: property-information "^5.0.1" space-separated-tokens "^1.0.0" +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -7168,6 +9284,11 @@ header-case@^1.0.0: no-case "^2.2.0" upper-case "^1.1.3" +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + highlight.js@~9.13.0: version "9.13.1" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" @@ -7213,10 +9334,20 @@ hosted-git-info@^3.0.0: dependencies: lru-cache "^5.1.1" -html-element-map@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.1.0.tgz#e5aab9a834caf883b421f8bd9eaedcaac887d63c" - integrity sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA== +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -7227,11 +9358,23 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + html-minifier@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" @@ -7245,6 +9388,11 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + html-webpack-plugin@^4.0.0-beta.2: version "4.0.0-beta.8" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.8.tgz#d9a8d4322d8cf310f1568f6f4f585a80df0ad378" @@ -7274,7 +9422,7 @@ http-cache-semantics@^3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-errors@1.7.2: +http-errors@1.7.2, http-errors@~1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== @@ -7285,17 +9433,6 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - "http-parser-js@>=0.4.0 <0.4.11": version "0.4.10" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" @@ -7395,6 +9532,16 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -7422,6 +9569,11 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + ignore@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" @@ -7447,10 +9599,10 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -7474,13 +9626,13 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" imurmurhash@^0.1.4: version "0.1.4" @@ -7527,7 +9679,7 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -7561,6 +9713,11 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" @@ -7618,6 +9775,18 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.0.0.tgz#b783ffac0b8371503e9ab39561df223286aa5433" integrity sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA== +intl-messageformat-parser@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" + integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU= + +intl-messageformat@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" + integrity sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw= + dependencies: + intl-messageformat-parser "1.4.0" + into-stream@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.0.tgz#b05f37d8fed05c06a0b43b556d74e53e5af23878" @@ -7653,6 +9822,11 @@ ipaddr.js@1.9.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -7672,11 +9846,6 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - is-alphanumerical@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" @@ -7702,10 +9871,19 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" - integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" @@ -7717,10 +9895,10 @@ is-buffer@^2.0.0, is-buffer@^2.0.2: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== is-ci@^1.0.10: version "1.2.1" @@ -7743,6 +9921,25 @@ is-cidr@^3.0.0: dependencies: cidr-regex "^2.0.10" +is-color-stop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.1.0, is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -7762,7 +9959,7 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= -is-decimal@^1.0.0, is-decimal@^1.0.2: +is-decimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== @@ -7873,7 +10070,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -7893,6 +10090,11 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-lower-case@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" @@ -7900,15 +10102,20 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" +is-negative-zero@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" - integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -7970,6 +10177,11 @@ is-plain-object@^3.0.0: dependencies: isobject "^4.0.0" +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -7980,25 +10192,30 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-reference@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427" - integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw== +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - has "^1.0.3" + has-symbols "^1.0.1" is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -8019,10 +10236,10 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-subset@^0.1.1: version "0.1.1" @@ -8043,11 +10260,16 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" @@ -8060,11 +10282,6 @@ is-utf8@^0.2.0, is-utf8@^0.2.1: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= -is-whitespace-character@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" - integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== - is-window@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d" @@ -8075,20 +10292,17 @@ is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-word-character@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" - integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== - is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isarray@0.0.1: version "0.0.1" @@ -8146,12 +10360,17 @@ issue-parser@^6.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: +istanbul-lib-coverage@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== @@ -8164,32 +10383,41 @@ istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" + istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: - handlebars "^4.1.2" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" java-properties@^0.2.9: version "0.2.10" @@ -8201,98 +10429,94 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -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" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== +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" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" exit "^0.1.2" - import-local "^2.0.0" + graceful-fs "^4.2.4" + import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" + yargs "^15.4.1" -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" -jest-docblock@^21.0.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw== - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== dependencies: - detect-newline "^2.1.0" + detect-newline "^3.0.0" -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" -jest-environment-enzyme@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-enzyme/-/jest-environment-enzyme-7.1.0.tgz#1181d174034a2a4d8ba8fd6ba2123f243ccaf7ec" - integrity sha512-31nPBYx1MZfihsKUgZg16zLS4+f4gBvo4YpYMU4TIvQ2IjbREU9bLFwAszTgcs5mkE7SNOykm/68OjPmgDd4/Q== +jest-environment-enzyme@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-enzyme/-/jest-environment-enzyme-7.1.2.tgz#4561f26a719e8e87ce8c9a6d3f540a92663ba8d5" + integrity sha512-3tfaYAzO7qZSRrv+srQnfK16Vu5XwH/pHi8FpoqSHjKKngbHzXf7aBCBuWh8y3w0OtknHRfDMFrC60Khj+g1hA== dependencies: jest-environment-jsdom "^24.0.0" -jest-environment-jsdom@^24.0.0, jest-environment-jsdom@^24.9.0: +jest-environment-jsdom@^24.0.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== @@ -8304,30 +10528,44 @@ jest-environment-jsdom@^24.0.0, jest-environment-jsdom@^24.9.0: jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" -jest-enzyme@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-7.1.0.tgz#4345e989382a6cd70c15c7225dad9c9a9bb79cbc" - integrity sha512-ukL9jFwvQ3xbzhoKniDVTkAgZzGCFJNeJVU058RyY0R46fVhjJlPEV/hYlmJl518qfCmKNW6zXgtmyPcaDgxhA== +jest-enzyme@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-7.1.2.tgz#91a10b2d3be1b56c0d65b34286e5bdc41ab4ba3d" + integrity sha512-j+jkph3t5hGBS12eOldpfsnERYRCHi4c/0KWPMnqRPoJJXvCpLIc5th1MHl0xDznQDXVU0AHUXg3rqMrf8vGpA== dependencies: - enzyme-matchers "^7.1.0" + enzyme-matchers "^7.1.2" enzyme-to-json "^3.3.0" - jest-environment-enzyme "^7.1.0" + jest-environment-enzyme "^7.1.2" -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== jest-haste-map@^24.9.0: version "24.9.0" @@ -8348,45 +10586,68 @@ jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" co "^4.6.0" - expect "^24.9.0" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" jest-message-util@^24.9.0: version "24.9.0" @@ -8402,6 +10663,21 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -8409,113 +10685,145 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: +jest-regex-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" jest-serializer@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" + pretty-format "^26.6.2" + semver "^7.3.2" jest-util@^24.9.0: version "24.9.0" @@ -8535,32 +10843,44 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^24.9.0" + pretty-format "^26.6.2" -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" -jest-worker@^24.6.0, jest-worker@^24.9.0: +jest-worker@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== @@ -8576,13 +10896,23 @@ jest-worker@^25.1.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== +jest-worker@^26.2.1, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.2: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" js-base64@^2.1.8: version "2.5.1" @@ -8604,10 +10934,10 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.13, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -8649,6 +10979,38 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -8681,6 +11043,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -8691,12 +11058,12 @@ json3@^3.3.2: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@2.x, json5@^2.1.0, json5@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +json5@2.x, json5@^2.1.1, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" json5@^1.0.1: version "1.0.1" @@ -8705,10 +11072,10 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -jsonc-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.0.tgz#f206f87f9d49d644b7502052c04e82dd6392e9ef" - integrity sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA== +jsonc-parser@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" + integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== jsonfile@^2.1.0: version "2.4.0" @@ -8739,6 +11106,14 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz#642f1d7b88aa6d7eb9d8f2210e166478444fa891" + integrity sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA== + dependencies: + array-includes "^3.1.1" + object.assign "^4.1.1" + kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -8766,9 +11141,9 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" @@ -8782,6 +11157,14 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" @@ -8832,6 +11215,14 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -8974,6 +11365,11 @@ libnpx@^10.2.0: y18n "^4.0.0" yargs "^11.0.0" +lilconfig@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -9053,6 +11449,16 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -9068,7 +11474,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -9077,6 +11483,24 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -9115,11 +11539,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash-es@^4.17.11: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== - lodash._baseisequal@^3.0.0: version "3.0.7" resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" @@ -9254,7 +11673,7 @@ lodash.map@^4.5.1: resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= -lodash.memoize@^4.1.2: +lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -9314,11 +11733,16 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@4.17.15, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: +lodash@4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -9333,6 +11757,14 @@ log-symbols@^3.0.0: dependencies: chalk "^2.4.2" +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -9342,10 +11774,10 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -longest-streak@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" - integrity sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw== +longest-streak@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== longest@^2.0.1: version "2.0.1" @@ -9407,12 +11839,24 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + macos-release@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== -magic-string@^0.25.2: +magic-error@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/magic-error/-/magic-error-0.0.0.tgz#f8630c98c55764b4851601901fdcb63428758b7d" + integrity sha512-ZMU3ylGOb/YQEpJo0XtAXbPGmKJtwzc3cuOHPrKgosV8AAc6db8dlQYLe0cp64P3BxkYZGoUvkvdNR5JM78beA== + +magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -9426,7 +11870,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -9434,10 +11878,10 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" @@ -9502,15 +11946,12 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-escapes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" - integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== - -markdown-table@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" markdown-to-jsx@^6.9.1, markdown-to-jsx@^6.9.3: version "6.11.0" @@ -9537,38 +11978,136 @@ marked@^0.8.0: resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== -material-colors@^1.2.1: - version "1.2.6" - resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" - integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== +material-colors@^1.2.1: + version "1.2.6" + resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" + integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-find-and-replace@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" + integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== + dependencies: + escape-string-regexp "^4.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +mdast-util-from-markdown@^0.8.0: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-frontmatter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" + integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== + dependencies: + micromark-extension-frontmatter "^0.2.0" + +mdast-util-gfm-autolink-literal@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" + integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== + dependencies: + ccount "^1.0.0" + mdast-util-find-and-replace "^1.1.0" + micromark "^2.11.3" + +mdast-util-gfm-strikethrough@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" + integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== + dependencies: + mdast-util-to-markdown "^0.6.0" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== +mdast-util-gfm-table@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" + integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" + markdown-table "^2.0.0" + mdast-util-to-markdown "~0.6.0" -mdast-util-compact@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" - integrity sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w== +mdast-util-gfm-task-list-item@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" + integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== dependencies: - unist-util-visit "^1.1.0" + mdast-util-to-markdown "~0.6.0" -mdast-util-definitions@^1.1.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.4.tgz#2b54ad4eecaff9d9fcb6bf6f9f6b68b232d77ca7" - integrity sha512-HfUArPog1j4Z78Xlzy9Q4aHLnrF/7fb57cooTHypyGoe2XFNbcx/kWZDoOz+ra8CkUzvg3+VHV434yqEd1DRmA== +mdast-util-gfm@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" + integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== dependencies: - unist-util-visit "^1.0.0" + mdast-util-gfm-autolink-literal "^0.1.0" + mdast-util-gfm-strikethrough "^0.2.0" + mdast-util-gfm-table "^0.1.0" + mdast-util-gfm-task-list-item "^0.1.0" + mdast-util-to-markdown "^0.6.1" -mdast-util-to-string@^1.0.0, mdast-util-to-string@~1.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" - integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== +mdast-util-to-hast@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" + integrity sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" @@ -9580,6 +12119,11 @@ mdn-data@~1.1.0: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + meant@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" @@ -9597,7 +12141,7 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -"memoize-one@>=3.1.1 <6", memoize-one@^5.0.0: +memoize-one@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== @@ -9617,6 +12161,14 @@ memory-fs@^0.4.0, memory-fs@^0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + meow@5.0.0, meow@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" @@ -9702,6 +12254,66 @@ microevent.ts@~0.1.1: resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== +micromark-extension-frontmatter@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" + integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== + dependencies: + fault "^1.0.0" + +micromark-extension-gfm-autolink-literal@~0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" + integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== + dependencies: + micromark "~2.11.3" + +micromark-extension-gfm-strikethrough@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" + integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-table@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" + integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-tagfilter@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" + integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== + +micromark-extension-gfm-task-list-item@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" + integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" + integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== + dependencies: + micromark "~2.11.0" + micromark-extension-gfm-autolink-literal "~0.5.0" + micromark-extension-gfm-strikethrough "~0.6.5" + micromark-extension-gfm-table "~0.4.0" + micromark-extension-gfm-tagfilter "~0.3.0" + micromark-extension-gfm-task-list-item "~0.3.0" + +micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -9754,6 +12366,11 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.3.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + mime@^2.4.3, mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" @@ -9821,20 +12438,20 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minipass-collect@^1.0.2: version "1.0.2" @@ -9911,22 +12528,29 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -mobx-react-lite@^1.4.1, mobx-react-lite@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-1.5.2.tgz#c4395b0568b9cb16f07669d8869cc4efa1b8656d" - integrity sha512-PyZmARqqWtpuQaAoHF5pKX7h6TKNLwq6vtovm4zZvG6sEbMRHHSqioGXSeQbpRmG8Kw8uln3q/W1yMO5IfL5Sg== - -mobx@^5.13.0: - version "5.13.0" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-5.13.0.tgz#0fd68f10aa5ff2d146a4ed9e145b53337cfbca59" - integrity sha512-eSAntMSMNj0PFL705rgv+aB/z1RjNqDnFEpBe18yQVreXTWiVgIrmBUXzjnJfuba+eo4eAk6zi+/gXQkSUea8A== +mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" modify-values@^1.0.0: version "1.0.1" @@ -9965,7 +12589,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.0.0, ms@^2.1.1: +ms@2.1.2, ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -9985,6 +12609,11 @@ nan@^2.12.1, nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nanoid@^3.1.22, 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== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -10110,6 +12739,11 @@ node-fetch@^2.3.0, node-fetch@^2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -10193,16 +12827,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== +node-notifier@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620" + integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA== dependencies: growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - which "^1.3.0" + uuid "^8.3.0" + which "^2.0.2" node-pre-gyp@^0.12.0: version "0.12.0" @@ -10227,6 +12862,11 @@ node-releases@^1.1.29, node-releases@^1.1.49: dependencies: semver "^6.3.0" +node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + node-sass-magic-importer@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/node-sass-magic-importer/-/node-sass-magic-importer-5.3.2.tgz#2f2248bb2e5cdb275ba34102ebf995edadf99175" @@ -10310,7 +12950,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -10330,21 +12970,16 @@ normalize-url@1.9.1: query-string "^4.1.0" sort-keys "^1.0.0" +normalize-url@^4.5.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + normalize-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-5.0.0.tgz#f46c9dc20670495e4e18fbd1b4396e41d199f63c" integrity sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw== -normalize.css@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" - integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== - -not@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/not/-/not-0.1.0.tgz#c9691c1746c55dcfbe54cbd8bd4ff041bc2b519d" - integrity sha1-yWkcF0bFXc++VMvYvU/wQbwrUZ0= - npm-audit-report@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" @@ -10587,13 +13222,20 @@ npm@^6.10.3: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^1.0.1, nth-check@^1.0.2, nth-check@~1.0.1: +nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -10604,10 +13246,10 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== +nwsapi@^2.0.7, nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== oauth-sign@~0.9.0: version "0.9.0" @@ -10633,17 +13275,20 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.6.0, object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-inspect@^1.7.0, object-inspect@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= +object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" + integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -10660,35 +13305,35 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" -object.entries@^1.0.4, object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== +object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" -object.fromentries@^2.0.0, "object.fromentries@^2.0.0 || ^1.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" - integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== +"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.2, object.fromentries@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" + integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.11.0" - function-bind "^1.1.1" - has "^1.0.1" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" object.getownpropertydescriptors@^2.0.3: version "2.0.3" @@ -10705,14 +13350,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" octokit-pagination-methods@^1.1.0: @@ -10773,6 +13418,11 @@ opener@^1.5.1: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + openurl@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" @@ -10786,6 +13436,15 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" +optimize-css-assets-webpack-plugin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.0.tgz#00acd99d420715ad96ed3d8ad65a8a4df1be233b" + integrity sha512-XKVxJuCBSslP1Eyuf1uVtZT3Pkp6jEIkmg7BMcNU/pq6XAnDXTINkYFWmiQWt8+j//FO4dIDd4v+gn0m5VWJIw== + dependencies: + cssnano "^5.0.2" + last-call-webpack-plugin "^3.0.0" + postcss "^8.2.1" + optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -10798,6 +13457,33 @@ optionator@^0.8.1: type-check "~0.3.2" wordwrap "~1.0.0" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.4.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" @@ -10852,13 +13538,6 @@ osenv@0, osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: - p-reduce "^1.0.0" - p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -10894,9 +13573,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -10933,11 +13612,6 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - p-reduce@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" @@ -11046,7 +13720,7 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-entities@^1.0.2, parse-entities@^1.1.0, parse-entities@^1.1.2: +parse-entities@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== @@ -11058,6 +13732,18 @@ parse-entities@^1.0.2, parse-entities@^1.1.0, parse-entities@^1.1.2: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -11093,6 +13779,11 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -11100,6 +13791,11 @@ parse5@^3.0.1: dependencies: "@types/node" "*" +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -11199,6 +13895,13 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -11222,12 +13925,17 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.5, picomatch@^2.2.2: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -11287,6 +13995,13 @@ pkg-conf@^2.1.0: find-up "^2.0.0" load-json-file "^4.0.0" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -11315,11 +14030,6 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -11332,6 +14042,13 @@ pnp-webpack-plugin@1.5.0: dependencies: ts-pnp "^1.1.2" +pnp-webpack-plugin@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + polished@^3.3.1: version "3.4.4" resolved "https://registry.yarnpkg.com/polished/-/polished-3.4.4.tgz#ac8cd6e704887398f3b802718f9d389b9ea4307b" @@ -11339,7 +14056,14 @@ polished@^3.3.1: dependencies: "@babel/runtime" "^7.6.3" -popper.js@^1.14.4, popper.js@^1.14.7, popper.js@^1.15.0: +polished@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.1.3.tgz#7a3abf2972364e7d97770b827eec9a9e64002cfc" + integrity sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA== + dependencies: + "@babel/runtime" "^7.14.0" + +popper.js@^1.14.4, popper.js@^1.14.7: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== @@ -11349,6 +14073,51 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" + integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-convert-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" + integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== + +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== + +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== + +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== + postcss-flexbugs-fixes@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" @@ -11384,38 +14153,212 @@ postcss-loader@^3.0.0: postcss-load-config "^2.0.0" schema-utils "^1.0.0" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== +postcss-merge-longhand@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" + integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + +postcss-merge-rules@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" + integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + vendors "^1.0.3" + +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" + integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== + dependencies: + cssnano-utils "^2.0.1" + is-color-stop "^1.1.0" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz#ffa9fe545935d8b57becbbb7934dd5e245513183" + integrity sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg== dependencies: - postcss "^7.0.5" + is-absolute-url "^3.0.3" + normalize-url "^4.5.0" + postcss-value-parser "^4.1.0" -postcss-modules-local-by-default@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== dependencies: - icss-utils "^4.1.1" - postcss "^7.0.16" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.0" + postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" - integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== +postcss-ordered-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz#79ef6e2bd267ccad3fc0c4f4a586dfd01c131f64" + integrity sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" + browserslist "^4.16.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" postcss-scss@^2.0.0: version "2.0.0" @@ -11433,6 +14376,31 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" + integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.3.0" + +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + uniqs "^2.0.0" + postcss-value-parser@^3.2.3: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" @@ -11443,6 +14411,11 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + postcss@7.0.21: version "7.0.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" @@ -11470,6 +14443,20 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.2 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.2.1, postcss@^8.2.15: + version "8.3.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" + integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -11480,10 +14467,17 @@ prepend-http@^1.0.0, prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-error@^2.1.1: version "2.1.1" @@ -11493,29 +14487,34 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.20.0, prismjs@^1.8.4: - version "1.20.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.20.0.tgz#9b685fc480a3514ee7198eac6a3bf5024319ff03" - integrity sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ== +prism-react-renderer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" + integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== + +prismjs@^1.23.0: + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== optionalDependencies: clipboard "^2.0.0" -prismjs@~1.17.0: +prismjs@^1.8.4, prismjs@~1.17.0: version "1.17.1" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be" integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q== @@ -11545,7 +14544,7 @@ progress-stream@^2.0.0: speedometer "~1.0.0" through2 "~2.0.3" -progress@^2.0.3: +progress@^2.0.0, progress@^2.0.1, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -11612,7 +14611,7 @@ prop-types-exact@^1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -11621,17 +14620,12 @@ prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, object-assign "^4.1.1" react-is "^16.8.1" -property-expr@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.2.tgz#fff2a43919135553a3bc2fdd94bdb841965b2330" - integrity sha512-bc/5ggaYZxNkFKj374aLbEDqVADdYaLcFo8XBkishUWbaAdjlphaBFns9TvRA2pUseVL/wMFmui9X3IdNDU37g== - -property-information@^5.0.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.2.2.tgz#20555eafd2296278a682e5a51d5123e7878ecc30" - integrity sha512-N2moasZmjn2mjVGIWpaqz5qnz6QyeQSGgGvMtl81gA9cPTWa6wpesRSe/quNnOjUHpvSH1oZx0pdz0EEckLFnA== +property-information@^5.0.0, property-information@^5.0.1, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== dependencies: - xtend "^4.0.1" + xtend "^4.0.0" proto-list@~1.2.1: version "1.2.4" @@ -11653,6 +14647,11 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.0" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -11713,21 +14712,34 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: +punycode@1.3.2, punycode@^1.2.4: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +puppeteer-core@^9.1.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-9.1.1.tgz#0c189c3275967d65c39270e6b146e559baca3d47" + integrity sha512-zbedbitVIGhmgz0nt7eIdLsnaoVZSlNJfBivqm2w67T8LR2bU1dvnruDZ8nQO0zn++Iet7zHbAOdnuS5+H2E7A== + dependencies: + debug "^4.1.0" + devtools-protocol "0.0.869402" + extract-zip "^2.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.1" + pkg-dir "^4.2.0" + progress "^2.0.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + tar-fs "^2.0.0" + unbzip2-stream "^1.3.3" + ws "^7.2.3" + q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -11738,16 +14750,11 @@ qrcode-terminal@^0.12.0: resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.7.0: +qs@6.7.0, qs@^6.6.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.6.0: - version "6.9.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" - integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -11802,7 +14809,12 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= -raf@^3.4.0: +raf-schd@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" + integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== + +raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -11827,7 +14839,7 @@ randexp@0.4.6: discontinuous-range "1.0.0" ret "~0.1.10" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -11939,47 +14951,24 @@ react-docgen@^5.0.0: node-dir "^0.1.10" strip-indent "^3.0.0" -react-dom@16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" - integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.15.0" - -react-dom@^16.8.3: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" - integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== +react-dom@^16.14.0, react-dom@^16.8.3: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.18.0" - -react-draggable@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.2.tgz#966ef1d90f2387af3c2d8bd3516f601ea42ca359" - integrity sha512-oaz8a6enjbPtx5qb0oDWxtDNuybOylvto1QLydsXgKmwT7e3GXC2eMVDwEMIUYJIFqVG72XpOv673UuuAq6LhA== - dependencies: - classnames "^2.2.5" - prop-types "^15.6.0" + scheduler "^0.19.1" react-draggable@^4.0.3: - version "4.2.0" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.2.0.tgz#40cc5209082ca7d613104bf6daf31372cc0e1114" - integrity sha512-5wFq//gEoeTYprnd4ze8GrFc+Rbnx+9RkOMR3vk4EbWxj02U6L6T3yrlKeiw4X5CtjD2ma2+b3WujghcXNRzkw== + version "4.4.3" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.3.tgz#0727f2cae5813e36b0e4962bf11b2f9ef2b406f3" + integrity sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w== dependencies: classnames "^2.2.5" prop-types "^15.6.0" -react-error-boundary@^1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-1.2.5.tgz#a362cb799d2e58ff8f114f7c4bc25677ce4e4149" - integrity sha512-5CPSeLJA2igJNppAgFRwnTL9aK3ojenk65enNzhVyoxYNbHpIJXnChUO7+4vPhkncRA9wvQMXq6Azp2XeXd+iQ== - react-error-overlay@^6.0.3: version "6.0.6" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.6.tgz#ac4d9dc4c1b5c536c2c312bf66aa2b09bfa384e2" @@ -12037,10 +15026,15 @@ react-inspector@^4.0.0: prop-types "^15.6.1" storybook-chromatic "^2.2.2" -react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.9.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -12055,7 +15049,7 @@ react-popper-tooltip@^2.8.3: "@babel/runtime" "^7.7.4" react-popper "^1.3.6" -react-popper@^1.3.6, react-popper@^1.3.7: +react-popper@^1.3.6: version "1.3.7" resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== @@ -12068,15 +15062,6 @@ react-popper@^1.3.6, react-popper@^1.3.7: typed-styles "^0.0.7" warning "^4.0.2" -react-scrollbars-custom@~4.0.21: - version "4.0.21" - resolved "https://registry.yarnpkg.com/react-scrollbars-custom/-/react-scrollbars-custom-4.0.21.tgz#daab3104b9707033a5be29fdc5b7408dee41a5ad" - integrity sha512-EwIVXBYsZG91Wm90a8ajSjpclXMu3XehcSGz+QbnLDQbmc+Rj/Uj+gP9bgbhyvQTKlhfjoka77VEWu9/DxOwBg== - dependencies: - cnbuilder "^1.1.7" - react-draggable "^3.3.2" - zoom-level "^1.2.4" - react-select@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.0.8.tgz#06ff764e29db843bcec439ef13e196865242e0c1" @@ -12091,11 +15076,6 @@ react-select@^3.0.8: react-input-autosize "^2.2.2" react-transition-group "^2.2.1" -react-simple-code-editor@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.11.0.tgz#bb57c7c29b570f2ab229872599eac184f5bc673c" - integrity sha512-xGfX7wAzspl113ocfKQAR8lWPhavGWHL3xSzNLeseDRHysT+jzRBi/ExdUqevSMos+7ZtdfeuBOXtgk9HTwsrw== - react-sizeme@^2.6.7: version "2.6.12" resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.6.12.tgz#ed207be5476f4a85bf364e92042520499455453e" @@ -12117,14 +15097,6 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-tabs@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.1.0.tgz#ecc50f034c1d6da2606fab9293055bbc861b382e" - integrity sha512-9RKc77HCPsjQDVPyZEw37g3JPtg26oSQ9o4mtaVXjJuLedDX5+TQcE+MRNKR+4aO3GMAY4YslCePGG1//MQ3Jg== - dependencies: - classnames "^2.2.0" - prop-types "^15.5.0" - react-test-renderer@^16.0.0-0: version "16.9.0" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" @@ -12143,7 +15115,7 @@ react-textarea-autosize@^7.1.0: "@babel/runtime" "^7.1.2" prop-types "^15.6.0" -react-transition-group@^2.2.1, react-transition-group@^2.9.0: +react-transition-group@^2.2.1: version "2.9.0" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== @@ -12153,36 +15125,22 @@ react-transition-group@^2.2.1, react-transition-group@^2.9.0: prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" -react-virtualized-auto-sizer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.2.tgz#a61dd4f756458bbf63bd895a92379f9b70f803bd" - integrity sha512-MYXhTY1BZpdJFjUovvYHVBmkq79szK/k7V3MO+36gJkWGkrXKtyr4vCPtpphaTLRAdDNoYEYFZWE8LjN+PIHNg== - -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== - dependencies: - "@babel/runtime" "^7.0.0" - memoize-one ">=3.1.1 <6" - -react@16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" - integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== +react@^16.14.0, react@^16.8.3: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" -react@^16.8.3: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" - integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== +react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" reactcss@^1.2.0: version "1.2.3" @@ -12248,6 +15206,14 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -12264,7 +15230,7 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg-up@^7.0.0: +read-pkg-up@^7.0.0, read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== @@ -12282,6 +15248,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -12308,7 +15283,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", "readable-stream@2 || 3", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -12321,7 +15296,7 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== @@ -12369,6 +15344,43 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +reakit-system@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/reakit-system/-/reakit-system-0.15.1.tgz#bf5cc7a03f60a817373bc9cbb4a689c1f4100547" + integrity sha512-PkqfAyEohtcEu/gUvKriCv42NywDtUgvocEN3147BI45dOFAB89nrT7wRIbIcKJiUT598F+JlPXAZZVLWhc1Kg== + dependencies: + reakit-utils "^0.15.1" + +reakit-utils@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/reakit-utils/-/reakit-utils-0.15.1.tgz#797f0a43f6a1dbc22d161224d5d2272e287dbfe3" + integrity sha512-6cZgKGvOkAMQgkwU9jdYbHfkuIN1Pr+vwcB19plLvcTfVN0Or10JhIuj9X+JaPZyI7ydqTDFaKNdUcDP69o/+Q== + +reakit-warning@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/reakit-warning/-/reakit-warning-0.6.1.tgz#dba33bb8866aebe30e67ac433ead707d16d38a36" + integrity sha512-poFUV0EyxB+CcV9uTNBAFmcgsnR2DzAbOTkld4Ul+QOKSeEHZB3b3+MoZQgcYHmbvG19Na1uWaM7ES+/Eyr8tQ== + dependencies: + reakit-utils "^0.15.1" + +"reakit@npm:@stoplight/reakit@~1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@stoplight/reakit/-/reakit-1.3.5.tgz#0c1a1ae89a92de98413d3723b993c05d943bd56b" + integrity sha512-/Con1m4eSaztckgnEPckNPMkAIcOCYku60mANTGScevY9wYk56V2L6vpv6HR4r8gsFCl4S/CVoNCVMxkxi/pGw== + dependencies: + "@popperjs/core" "^2.5.4" + body-scroll-lock "^3.1.5" + reakit-system "^0.15.1" + reakit-utils "^0.15.1" + reakit-warning "^0.6.1" + realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -12497,6 +15509,11 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + regexpu-core@^4.5.4: version "4.5.5" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" @@ -12544,77 +15561,62 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" +rehype-raw@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-5.1.0.tgz#66d5e8d7188ada2d31bc137bc19a1000cf2c6b7e" + integrity sha512-MDvHAb/5mUnif2R+0IPCYJU8WjHa9UzGtM/F4AVy5GixPlDZ1z3HacYy4xojDU+uBa+0X/3PIfyQI26/2ljJNA== + dependencies: + hast-util-raw "^6.1.0" + +rehype-react@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/rehype-react/-/rehype-react-6.2.0.tgz#705a5b3055548848ff8a7778c978fd368b0d4425" + integrity sha512-XpR3p8ejdJ5CSEKqAfASIrkD+KaHLy0JOqXu9zM32tvkr1cUeM7AeidF6Q8eQ/wtMvcJb+h/L4QRwg1eFwBggQ== + dependencies: + "@mapbox/hast-util-table-cell-style" "^0.1.3" + hast-to-hyperscript "^9.0.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-frontmatter@~1.3: - version "1.3.2" - resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz#91d9684319cd1b96cc3d9d901f10a978f39c752d" - integrity sha512-2eayxITZ8rezsXdgcXnYB3iLivohm2V/ZT4Ne8uhua6A4pk6GdLE2ZzJnbnINtD1HRLaTdB7RwF9sgUbMptJZA== +remark-frontmatter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" + integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== dependencies: - fault "^1.0.1" - xtend "^4.0.1" + mdast-util-frontmatter "^0.2.0" + micromark-extension-frontmatter "^0.2.0" -remark-inline-links@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/remark-inline-links/-/remark-inline-links-3.1.3.tgz#82fbf5cb806b4e9b4921749ec80133667137e126" - integrity sha512-mgCdL6mDkhwT1i+XxPK/CcSJphwvvODmnsT0XFQdj5JazYl84BiGzYVbyI9ou7mDEu1y/dzTVKMM4luTDGJA/A== +remark-gfm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" + integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== dependencies: - mdast-util-definitions "^1.1.1" - unist-util-remove "^1.0.0" - unist-util-visit "^1.1.0" + mdast-util-gfm "^0.1.0" + micromark-extension-gfm "^0.3.0" -remark-parse@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.1.tgz#0c13d67e0d7b82c2ad2d8b6604ec5fae6c333c2b" - integrity sha512-WOZLa545jYXtSy+txza6ACudKWByQac4S2DmGk+tAGO/3XnVTOxwyCIxB7nTcLlk8Aayhcuf3cV1WV6U6L7/DQ== +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-slug@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz#715ecdef8df1226786204b1887d31ab16aa24609" - integrity sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A== + mdast-util-from-markdown "^0.8.0" + +remark-rehype@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-8.1.0.tgz#610509a043484c1e697437fa5eb3fd992617c945" + integrity sha512-EbCu9kHgAxKmW1yEYjx3QafMyGY3q8noUbNUI5xyKbaFP89wbhDrKxyIQNukNYthzjNHZu6J7hwFg7hRm1svYA== dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^1.0.0" + mdast-util-to-hast "^10.2.0" -remark-stringify@~7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-7.0.3.tgz#9221e9770b0b395af83a0d5881a44b6fcb9d0a2a" - integrity sha512-+jgmjNjm2kR7y2Ns1BATXRlFr+iQ7sDcpSgytfU77nkw7UCd5yJNArSxB3MU3Uul7HuyYNTCjetoGfy8xLia1A== +remark-stringify@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" + integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^2.0.0" - unherit "^1.0.4" - xtend "^4.0.1" + mdast-util-to-markdown "^0.6.0" remove-trailing-separator@^1.0.1: version "1.1.0" @@ -12637,7 +15639,7 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -12654,23 +15656,23 @@ replace-ext@1.0.0: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.11" + lodash "^4.17.19" -request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== +request-promise-native@^1.0.5, request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.2" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" -"request@>=2.76.0 <3.0.0", request@^2.87.0, request@^2.88.0: +"request@>=2.76.0 <3.0.0", request@^2.87.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -12721,12 +15723,12 @@ resize-observer-polyfill@^1.5.1: resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - resolve-from "^3.0.0" + resolve-from "^5.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" @@ -12779,16 +15781,20 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= +resolve@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" -resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.14.1, resolve@^1.3.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" restore-cursor@^2.0.0: @@ -12840,6 +15846,16 @@ rework@1.0.1: convert-source-map "^0.3.3" css "^2.0.0" +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + right-pad@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" @@ -12852,7 +15868,7 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. dependencies: glob "^7.1.3" -rimraf@3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -12867,17 +15883,38 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-terser@^5.2.0, rollup-plugin-terser@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz#9c0dd33d5771df9630cd027d6a2559187f65885e" - integrity sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g== +rollup-plugin-terser@^5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" + integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== dependencies: "@babel/code-frame" "^7.5.5" jest-worker "^24.9.0" rollup-pluginutils "^2.8.2" - serialize-javascript "^2.1.2" + serialize-javascript "^4.0.0" terser "^4.6.2" +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-plugin-typescript2@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3" + integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ== + dependencies: + "@rollup/pluginutils" "^4.1.0" + find-cache-dir "^3.3.1" + fs-extra "8.1.0" + resolve "1.20.0" + tslib "2.1.0" + rollup-pluginutils@^2.8.2: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -12885,14 +15922,12 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^1.31.1: - version "1.31.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.31.1.tgz#4170d6f87148d46e5fbe29b493f8f3ea3453c96f" - integrity sha512-2JREN1YdrS/kpPzEd33ZjtuNbOuBC3ePfuZBdKEybvqcEcszW1ckyVqzcEiEe0nE8sqHK+pbJg+PsAgRJ8+1dg== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@^2.47.0: + version "2.50.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.50.5.tgz#bbee9d6411af3f5fa5c6e7e2c69f7a65b753e568" + integrity sha512-Ztz4NurU2LbS3Jn5rlhnYv35z6pkjBUmYKr94fOBIKINKRO6kug9NTFHArT7jqwMP2kqEZ39jJuEtkk91NBltQ== + optionalDependencies: + fsevents "~2.3.1" rst-selector-parser@^2.2.3: version "2.2.3" @@ -12938,16 +15973,11 @@ safe-buffer@5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -13019,6 +16049,13 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + scheduler@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" @@ -13027,10 +16064,10 @@ scheduler@^0.15.0: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -13044,13 +16081,23 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" - integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== +schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: - ajv "^6.10.2" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" scss-tokenizer@^0.2.3: version "0.2.3" @@ -13123,7 +16170,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -13133,10 +16180,19 @@ semver@6.3.0, semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" - integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== +semver@7.3.5, 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== + dependencies: + lru-cache "^6.0.0" + +semver@7.x, semver@^7.1.1, semver@^7.1.2, semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" semver@~5.3.0: version "5.3.0" @@ -13175,6 +16231,13 @@ serialize-javascript@^2.1.2: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + serve-favicon@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" @@ -13315,18 +16378,18 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== +side-channel@^1.0.2, side-channel@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" + integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" + es-abstract "^1.18.0-next.0" + object-inspect "^1.8.0" signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== signale@^1.2.1: version "1.4.0" @@ -13357,11 +16420,34 @@ simplebar@^4.2.3: lodash.throttle "^4.1.1" resize-observer-polyfill "^1.5.1" +sirv@^1.0.7: + version "1.0.12" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" + integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== + dependencies: + "@polka/url" "^1.0.0-next.15" + mime "^2.3.1" + totalist "^1.0.0" + sisteransi@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb" integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg== +size-limit@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.11.0.tgz#61b325752e1978615ff9acc0745438ee3272172b" + integrity sha512-vguQEHxnBt0ldv4Q1gMkjSKNpCtH5/eXLbVqUumMvUOcA2BI/I82wTe7Ag3it5hKdbZYebDmRutDizxNsvpUAw== + dependencies: + bytes-iec "^3.1.1" + chokidar "^3.5.1" + ci-job-number "^1.2.2" + colorette "^1.2.2" + globby "^11.0.3" + lilconfig "^2.0.2" + ora "^5.4.0" + read-pkg-up "^7.0.1" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -13382,6 +16468,15 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -13482,12 +16577,17 @@ 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-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" @@ -13501,6 +16601,14 @@ source-map-support@^0.5.6, source-map-support@~0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -13523,6 +16631,11 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sourcemap-codec@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" @@ -13647,10 +16760,12 @@ stack-utils@^1.0.1: resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== -state-toggle@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" - integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" static-extend@^0.1.1: version "0.1.2" @@ -13759,11 +16874,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= -strict-event-emitter-types@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" - integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -13779,13 +16889,13 @@ string-argv@0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" + char-regex "^1.0.2" + strip-ansi "^6.0.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" @@ -13822,17 +16932,18 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -"string.prototype.matchall@^4.0.0 || ^3.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== +"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" + integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" has-symbols "^1.0.1" internal-slot "^1.0.2" regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + side-channel "^1.0.3" string.prototype.padend@^3.0.0: version "3.0.0" @@ -13852,60 +16963,42 @@ string.prototype.padstart@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" -string.prototype.trim@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" - integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== +string.prototype.trim@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz#d23a22fde01c1e6571a7fadcb9be11decd8061a7" + integrity sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.13.0" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== +string.prototype.trimend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - function-bind "^1.1.1" -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== +string.prototype.trimstart@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - function-bind "^1.1.1" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= -string_decoder@~1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -stringify-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-2.0.0.tgz#fa7ca6614b355fb6c28448140a20c4ede7462827" - integrity sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.2" - is-hexadecimal "^1.0.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= stringify-object@^3.3.0: version "3.3.0" @@ -13921,7 +17014,7 @@ stringify-package@^1.0.0: resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" integrity sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g== -strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -13949,7 +17042,7 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-bom@4.0.0: +strip-bom@4.0.0, strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== @@ -14005,6 +17098,11 @@ strip-json-comments@3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -14018,6 +17116,29 @@ style-loader@^1.0.0, style-loader@^1.1.3: loader-utils "^1.2.3" schema-utils "^2.6.4" +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -14038,9 +17159,9 @@ supports-color@^6.1.0: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -14084,6 +17205,19 @@ svgo@^1.2.2, svgo@^1.3.0: unquote "~1.1.1" util.promisify "~1.0.0" +svgo@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + swap-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" @@ -14097,7 +17231,7 @@ symbol-observable@^1.1.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-tree@^3.2.2: +symbol-tree@^3.2.2, symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== @@ -14109,16 +17243,42 @@ symbol.prototype.description@^1.0.0: dependencies: has-symbols "^1.0.0" -synchronous-promise@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.10.tgz#e64c6fd3afd25f423963353043f4a68ebd397fd8" - integrity sha512-6PC+JRGmNjiG3kJ56ZMNWDPL8hjyghF5cMXIFOKg+NiwwEZZIvxTWd0pinWKyD227odg9ygF8xVhhz7gb8Uq7A== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" @@ -14181,6 +17341,14 @@ term-size@^2.1.0: resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -14212,14 +17380,23 @@ terser-webpack-plugin@^2.1.2: webpack-sources "^1.4.3" terser@^4.1.2, terser@^4.4.3, terser@^4.6.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" - integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ== + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.0.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -14230,20 +17407,29 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== throttle-debounce@^2.1.0: version "2.1.0" @@ -14265,7 +17451,7 @@ through2@^3.0.0: dependencies: readable-stream "2 || 3" -through@2, "through@>=2.2.7 <3", through@^2.3.6: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -14282,6 +17468,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + tiny-emitter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" @@ -14376,10 +17567,10 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" @@ -14389,6 +17580,15 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -14396,6 +17596,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + traverse@~0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" @@ -14426,16 +17633,6 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -trim-trailing-lines@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" - integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - trough@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" @@ -14453,20 +17650,27 @@ ts-dedent@^1.1.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== -ts-jest@^24.0.2: - version "24.0.2" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" - integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw== +ts-jest@^26.4.4: + version "26.4.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.4.tgz#61f13fb21ab400853c532270e52cc0ed7e502c49" + integrity sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg== dependencies: + "@types/jest" "26.x" bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" + jest-util "^26.1.0" json5 "2.x" + lodash.memoize "4.x" make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-keycode-enum@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ts-keycode-enum/-/ts-keycode-enum-1.0.6.tgz#aeefd1c2fc7b0557f86a0e696e300905bbb4c1c1" + integrity sha512-DF8+Cf/FJJnPRxwz8agCoDelQXKZWQOS/gnnwx01nZ106tPJdB3BgJ9QTtLwXgR82D8O+nTjuZzWgf0Rg4vuRA== ts-loader@^6.2.1: version "6.2.1" @@ -14484,63 +17688,40 @@ ts-pnp@^1.1.2: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA== -tslib@1.10.0, tslib@~1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.12.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.12.0.tgz#d1fc9cacd06a1456c62f2902b361573e83d66473" - integrity sha512-5rxCQkP0kytf4H1T4xz1imjxaUUPMvc5aWp0rJ/VMIN7ClRiH1FwFvBt8wOeMasp/epeUnmSW6CixSIePtiLqA== - -tslint-config-prettier@^1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslint-config-stoplight@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/tslint-config-stoplight/-/tslint-config-stoplight-1.4.0.tgz#07eea5e02395fd3d58c67153334501efabcbe11c" - integrity sha512-C1tfJAO5ybMEj62u2HEpsGPvSKWnNxcOtAuiLlwTb7vf++jnyGYeqEW8oE69jefjwo/s8VxBy9Sw7IAAh5ypsQ== +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== dependencies: - prettier "^1.19.1" - tslint "^5.20.1" - tslint-config-prettier "^1.18.0" - tslint-plugin-prettier "^2.0.1" + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" -tslint-plugin-prettier@^2.0.1: +tslib@2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/tslint-plugin-prettier/-/tslint-plugin-prettier-2.1.0.tgz#e2522d273cb9672d93d0e68f2514fe3c19698c3a" - integrity sha512-nMCpU+QSpXtydcWXeZF+3ljIbG/K8SHVZwB7K/MtuoQQFXxXN6watqTSBpVXCInuPFvmjiWkhxeMoUW4N0zgSg== - dependencies: - eslint-plugin-prettier "^2.2.0" - lines-and-columns "^1.1.6" - tslib "^1.7.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== -tslint@^5.19.0, tslint@^5.20.1: - version "5.20.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" - integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" +tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: tslib "^1.8.1" @@ -14561,6 +17742,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -14568,6 +17756,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" @@ -14601,15 +17794,22 @@ typed-styles@^0.0.7: resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.3.tgz#153bbd468ef07725c1df9c77e8b453f8d36abba5" - integrity sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg== +typescript@^4.0.5: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== ua-parser-js@^0.7.18: version "0.7.20" @@ -14634,19 +17834,19 @@ umask@^1.1.0, umask@~1.1.0: resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= +unbzip2-stream@^1.3.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + unfetch@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== -unherit@^1.0.4: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" - integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== - dependencies: - inherits "^2.0.1" - xtend "^4.0.1" - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -14670,13 +17870,14 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -unified@^8.3.2, unified@~8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-8.3.2.tgz#aed69d0e577d6ef27268431c63a10faef60e63ab" - integrity sha512-NDtUAXcd4c+mKppCbsZHzmhkKEQuhveZNBrFYmNgMIMk2K9bc8hmG3mLEGVtRmSNodobwyMePAnvIGVWZfPdzQ== +unified@^9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3" + integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA== dependencies: bail "^1.0.0" extend "^3.0.0" + is-buffer "^2.0.0" is-plain-obj "^2.0.0" trough "^1.0.0" vfile "^4.0.0" @@ -14696,6 +17897,11 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -14724,35 +17930,45 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== -unist-util-remove-position@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" - integrity sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA== - dependencies: - unist-util-visit "^1.1.0" +unist-util-is@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" + integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== -unist-util-remove@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-1.0.3.tgz#58ec193dfa84b52d5a055ffbc58e5444eb8031a3" - integrity sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g== - dependencies: - unist-util-is "^3.0.0" +unist-util-is@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.0.tgz#93cab236c0d98e7c02265f6cfa3efe8b117a628c" + integrity sha512-pWspZ+AvTqYbC+xWeRmzGqbcY8Na08Eowlfs2xchWTYot8vBBAq+syrE/LWS0bw1D/JOu4lwzDbEb6Mz13tK+g== -unist-util-select@~2.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unist-util-select/-/unist-util-select-2.0.2.tgz#cb2774b599695172e7b60a8b5f50793e418f7ea6" - integrity sha512-Yv5Z5ShMxv7Z9Dw175tKvOiRVXV4FrMHG778DSD9Z0jALgb3wAx9DoeInr3200QlYp71rYUXzzJdCb76xKdrCw== +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-select@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-select/-/unist-util-select-4.0.0.tgz#8bd8ea171d937a56f56bf849861242a232d37466" + integrity sha512-UJsER0ubbBy8KR+5zZpcF/9/aApWOzjNqfseMjcw1h0wAUqbxAf56mMewspAqXtGKiwBylnYB+PbD/XqwcYrWg== dependencies: - css-selector-parser "^1.1.0" - not "^0.1.0" - nth-check "^1.0.1" - unist-util-is "^3.0.0" - zwitch "^1.0.3" + css-selector-parser "^1.0.0" + nth-check "^2.0.0" + unist-util-is "^5.0.0" + zwitch "^2.0.0" unist-util-stringify-position@^2.0.0: version "2.0.1" @@ -14768,13 +17984,47 @@ unist-util-visit-parents@^2.0.0: dependencies: unist-util-is "^3.0.0" -unist-util-visit@^1.0.0, unist-util-visit@^1.1.0: +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== dependencies: unist-util-visit-parents "^2.0.0" +unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +unist-util-visit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + universal-user-agent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.0.tgz#27da2ec87e32769619f68a14996465ea1cb9df16" @@ -14805,6 +18055,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" @@ -14969,6 +18224,25 @@ uuid@^3.1.0, uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" + integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -15019,6 +18293,11 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -15028,10 +18307,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" - integrity sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ== +vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== vfile-message@^2.0.0: version "2.0.1" @@ -15057,12 +18336,19 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= +w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== dependencies: - browser-process-hrtime "^0.1.2" + xml-name-validator "^3.0.0" walker@^1.0.7, walker@~1.0.5: version "1.0.7" @@ -15085,6 +18371,13 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -15094,18 +18387,59 @@ watchpack@^1.6.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -wcwidth@^1.0.0: +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + webidl-conversions@^4.0.2: version "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== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-bundle-analyzer@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + webpack-dev-middleware@^3.7.0: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -15179,6 +18513,35 @@ webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.5: watchpack "^1.6.0" webpack-sources "^1.4.1" +webpack@^4.44.1: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" @@ -15193,7 +18556,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -15205,7 +18568,7 @@ whatwg-fetch@>=0.10.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -15228,6 +18591,15 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -15250,7 +18622,7 @@ which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -15290,7 +18662,7 @@ wolfy87-eventemitter@~5.2.8: resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz#e879f770b30fbb6512a8afbb330c388591099c2a" integrity sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw== -word-wrap@^1.0.3: +word-wrap@^1.0.3, word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -15344,15 +18716,6 @@ wrap-ansi@^4.0.0: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -15362,6 +18725,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" @@ -15385,6 +18757,16 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.3: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + ws@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" @@ -15392,6 +18774,16 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" +ws@^7.2.3: + version "7.4.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" + integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== + +ws@^7.3.1: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" @@ -15402,7 +18794,12 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -15417,6 +18814,11 @@ y18n@^4.0.0: 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" @@ -15432,6 +18834,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yaml@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" @@ -15439,25 +18846,22 @@ yaml@^1.7.2: dependencies: "@babel/runtime" "^7.6.3" -yargs-parser@10.x, yargs-parser@^10.0.0: +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: camelcase "^4.1.0" -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -15520,26 +18924,10 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^13.2.4, yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - -yargs@^15.0.1: - version "15.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" - integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== +yargs@^15.0.1, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -15551,7 +18939,33 @@ yargs@^15.0.1: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^16.1.0" + yargs-parser "^18.1.2" + +yargs@^16.1.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@^17.0.0: + version "17.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" + integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== + 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@^7.0.0: version "7.1.0" @@ -15572,25 +18986,25 @@ yargs@^7.0.0: y18n "^3.2.1" yargs-parser "^5.0.0" -yup@^0.28.3: - version "0.28.3" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.28.3.tgz#1ca607405a8adf24a5ac51f54bd09d527555f0ba" - integrity sha512-amVkCgFWe5bGjrrUiODkbIzrSwtB8JpZrQYSrfj2YsbRdrV+tn9LquWdZDlfOx2HXyfEA8FGnlwidE/bFDxO7Q== +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: - "@babel/runtime" "^7.8.7" - fn-name "~3.0.0" - lodash "^4.17.15" - lodash-es "^4.17.11" - property-expr "^2.0.0" - synchronous-promise "^2.0.10" - toposort "^2.0.2" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" -zoom-level@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/zoom-level/-/zoom-level-1.2.4.tgz#52bc5ae3af945cac82f9f685e8707fa2c9b962e2" - integrity sha512-nGFUhyU3Y4jWh6l+hYCVVUxu3vrD0i/RkumJRzYGU0COMWMs2Szs84mltacd64R9zJcxwKckWQN/KKbfB1btVA== +zustand@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.5.1.tgz#28970280e830924b185ce064061231957398c1d0" + integrity sha512-7J56Ve814z4zap71iaKFD+t65LFI//jEq/Vf55BTSVqJZCm+w9rov8OMBg+YSwIPQk54bfoIWHTrOWuAbpEDMw== -zwitch@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.4.tgz#93b1b993b13c8926753a41afaf8f27bbfac6be8b" - integrity sha512-YO803/X+13GNaZB7fVopjvHH0uWQKgJkgKnU1YCjxShjKGVuN9PPHHW8g+uFDpkHpSTNi3rCMKMewIcbC1BAYg== +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==