diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f5ea69a6..3d200d1a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,11 +92,11 @@ jobs: name: dist path: dist/ - name: Upload build to preview blob storage - run: az storage blob upload-batch -d '$web' -s 'dist' --account-name cosmosexplorerpreview --subscription cosmosdb-portalteam-generaldemo --destination-path "${{github.event.pull_request.head.sha || github.sha}}" --account-key="${PREVIEW_STORAGE_KEY}" + run: az storage blob upload-batch -d '$web' -s 'dist' --account-name cosmosexplorerpreview --destination-path "${{github.event.pull_request.head.sha || github.sha}}" --account-key="${PREVIEW_STORAGE_KEY}" env: PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} - name: Upload preview config to blob storage - run: az storage blob upload -c '$web' -f ./preview/config.json --account-name cosmosexplorerpreview --subscription cosmosdb-portalteam-generaldemo --name "${{github.event.pull_request.head.sha || github.sha}}/config.json" --account-key="${PREVIEW_STORAGE_KEY}" + run: az storage blob upload -c '$web' -f ./preview/config.json --account-name cosmosexplorerpreview --name "${{github.event.pull_request.head.sha || github.sha}}/config.json" --account-key="${PREVIEW_STORAGE_KEY}" env: PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} endtoendemulator: diff --git a/images/CarouselImage1.svg b/images/CarouselImage1.svg new file mode 100644 index 000000000..7901e733f --- /dev/null +++ b/images/CarouselImage1.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/CarouselImage2.svg b/images/CarouselImage2.svg new file mode 100644 index 000000000..83441d9e1 --- /dev/null +++ b/images/CarouselImage2.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/Cost.svg b/images/Cost.svg deleted file mode 100644 index f46733a8e..000000000 --- a/images/Cost.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/images/Green_check.svg b/images/Green_check.svg deleted file mode 100644 index 3bee1e456..000000000 --- a/images/Green_check.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/images/Notebooks.svg b/images/Notebooks.svg index b313b90ea..96de71b63 100644 --- a/images/Notebooks.svg +++ b/images/Notebooks.svg @@ -1,28 +1,23 @@ - - - - - - - - - - - + + + + + + + + + - + - + - - - diff --git a/package-lock.json b/package-lock.json index cef30cb5d..14640d362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,18 +39,18 @@ } }, "@azure/core-auth": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.1.4.tgz", - "integrity": "sha512-+j1embyH1jqf04AIfJPdLafd5SC1y6z1Jz4i+USR1XkTp6KM8P5u4/AjmWMVoEQdM/M29PJcRDZcCEWjK9S1bw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz", + "integrity": "sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA==", "requires": { "@azure/abort-controller": "^1.0.0", - "tslib": "^2.0.0" + "tslib": "^2.2.0" }, "dependencies": { "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" } } }, @@ -108,6 +108,53 @@ } } }, + "@azure/core-rest-pipeline": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.8.1.tgz", + "integrity": "sha512-R/XpxZcDgGbnneEifnsAcjLoR2NCmlDxKDmzd8oi5jx5YEnPE6gsxHQWAk2+uY55Ka717x/fdctyoCYKnumrqw==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "form-data": "^4.0.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + }, + "dependencies": { + "@azure/core-tracing": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", + "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "requires": { + "tslib": "^2.2.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, "@azure/core-tracing": { "version": "1.0.0-preview.9", "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.9.tgz", @@ -125,33 +172,39 @@ } } }, - "@azure/cosmos": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@azure/cosmos/-/cosmos-3.10.5.tgz", - "integrity": "sha512-if1uApYNjNXzB+reNFvzEBHvinxdQOzU8fni9e9Fs9jcPv9m76t2pzmYJNrxxCiFLP0vbNr/QCfQzIPQVw6v/A==", + "@azure/core-util": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.0.0.tgz", + "integrity": "sha512-yWshY9cdPthlebnb3Zuz/j0Lv4kjU6u7PR5sW7A9FF7EX+0irMRJAtyTq5TPiDHJfjH8gTSlnIYFj9m7Ed76IQ==", "requires": { - "@azure/core-auth": "^1.2.0", + "tslib": "^2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@azure/cosmos": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@azure/cosmos/-/cosmos-3.16.1.tgz", + "integrity": "sha512-9J76EMiF+ypZwO/Z7OS4PjrU/3hdRLe18dQh/Hj+jwXG2gKJ1NwgkYqcwu1HiCiX73A8+NCeA3PRDbegEnuuNQ==", + "requires": { + "@azure/core-auth": "^1.3.0", + "@azure/core-rest-pipeline": "^1.2.0", "debug": "^4.1.1", - "fast-json-stable-stringify": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "jsbi": "^3.1.3", - "node-abort-controller": "^1.2.0", - "node-fetch": "^2.6.0", + "node-abort-controller": "^3.0.0", "priorityqueuejs": "^1.0.0", "semaphore": "^1.0.5", - "tslib": "^2.0.0", + "tslib": "^2.2.0", "universal-user-agent": "^6.0.0", "uuid": "^8.3.0" }, "dependencies": { - "@azure/core-auth": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.0.tgz", - "integrity": "sha512-kSDSZBL6c0CYdhb+7KuutnKGf2geeT+bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u+8sOO/CnCsYp8A==", - "requires": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.0.0" - } - }, "tslib": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", @@ -214,25 +267,6 @@ "uuid": "^8.3.0" }, "dependencies": { - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -356,10 +390,11 @@ } }, "@babel/cli": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.16.7.tgz", - "integrity": "sha512-0iBF+G2Qml0y3mY5dirolyToLSR88a/KB6F2Gm8J/lOnyL8wbEOHak0DHF8gjc9XZGgTDGv/jYXNiapvsYyHTA==", + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", + "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", "requires": { + "@jridgewell/trace-mapping": "^0.3.8", "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", "chokidar": "^3.4.0", "commander": "^4.0.1", @@ -367,8 +402,7 @@ "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" + "slash": "^2.0.0" }, "dependencies": { "anymatch": { @@ -397,9 +431,9 @@ } }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "optional": true, "requires": { "anymatch": "~3.1.2", @@ -640,9 +674,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -663,31 +697,22 @@ } }, "@babel/generator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", - "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "requires": { - "@babel/types": "^7.16.7", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -699,9 +724,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-split-export-declaration": { "version": "7.16.7", @@ -717,9 +742,9 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -727,9 +752,9 @@ } }, "@babel/parser": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", - "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==" + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" }, "@babel/template": { "version": "7.16.7", @@ -742,31 +767,41 @@ } }, "@babel/traverse": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", - "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -775,28 +810,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==" }, "@babel/helper-explode-assignable-expression": { "version": "7.13.0", @@ -1372,34 +1388,34 @@ "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.16.0", @@ -1415,19 +1431,19 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -1464,12 +1480,12 @@ } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "dependencies": { @@ -1482,13 +1498,13 @@ } }, "@babel/generator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", - "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "requires": { - "@babel/types": "^7.16.7", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, "@babel/helper-annotate-as-pure": { @@ -1500,35 +1516,26 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", - "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -1540,11 +1547,11 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-optimise-call-expression": { @@ -1556,20 +1563,20 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/helper-split-export-declaration": { @@ -1586,9 +1593,9 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -1596,9 +1603,9 @@ } }, "@babel/parser": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", - "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==" + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" }, "@babel/template": { "version": "7.16.7", @@ -1611,30 +1618,40 @@ } }, "@babel/traverse": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", - "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, @@ -1667,18 +1684,18 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -1701,18 +1718,18 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -1801,12 +1818,12 @@ } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz", - "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "dependencies": { "@babel/code-frame": { @@ -1818,13 +1835,13 @@ } }, "@babel/generator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", - "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "requires": { - "@babel/types": "^7.16.7", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, "@babel/helper-annotate-as-pure": { @@ -1836,35 +1853,26 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", - "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -1876,11 +1884,11 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-optimise-call-expression": { @@ -1892,20 +1900,20 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/helper-split-export-declaration": { @@ -1922,9 +1930,9 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -1932,9 +1940,9 @@ } }, "@babel/parser": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", - "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==" + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" }, "@babel/template": { "version": "7.16.7", @@ -1947,41 +1955,51 @@ } }, "@babel/traverse": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", - "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "dependencies": { @@ -1994,13 +2012,13 @@ } }, "@babel/generator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", - "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "requires": { - "@babel/types": "^7.16.7", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, "@babel/helper-annotate-as-pure": { @@ -2012,35 +2030,26 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", - "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -2052,11 +2061,11 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-optimise-call-expression": { @@ -2068,20 +2077,20 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/helper-split-export-declaration": { @@ -2098,9 +2107,9 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -2108,9 +2117,9 @@ } }, "@babel/parser": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", - "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==" + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" }, "@babel/template": { "version": "7.16.7", @@ -2123,30 +2132,40 @@ } }, "@babel/traverse": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", - "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, @@ -2207,9 +2226,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -2237,6 +2256,21 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + } + } + }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -2326,9 +2360,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -2813,14 +2847,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.7.tgz", - "integrity": "sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" }, @@ -2834,9 +2868,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-validator-identifier": { "version": "7.16.7", @@ -2844,14 +2878,65 @@ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", - "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "requires": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001358", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", + "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==" + }, + "core-js-compat": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", + "requires": { + "browserslist": "^4.20.4", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "electron-to-chromium": { + "version": "1.4.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", + "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==" + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -2925,9 +3010,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -3192,9 +3277,9 @@ "dev": true }, "@emotion/babel-plugin": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", - "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==", + "version": "11.9.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", "requires": { "@babel/helper-module-imports": "^7.12.13", "@babel/plugin-syntax-jsx": "^7.12.13", @@ -3211,9 +3296,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -3236,12 +3321,12 @@ } }, "@emotion/cache": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", - "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", + "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", "requires": { "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", + "@emotion/sheet": "^1.1.1", "@emotion/utils": "^1.0.0", "@emotion/weak-memoize": "^0.2.5", "stylis": "4.0.13" @@ -3285,9 +3370,9 @@ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "@emotion/serialize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", - "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", + "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", "requires": { "@emotion/hash": "^0.8.0", "@emotion/memoize": "^0.7.4", @@ -3297,16 +3382,16 @@ }, "dependencies": { "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" } } }, "@emotion/sheet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", + "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" }, "@emotion/stylis": { "version": "0.8.5", @@ -3319,9 +3404,9 @@ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "@emotion/utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", - "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" }, "@emotion/weak-memoize": { "version": "0.2.5", @@ -3620,6 +3705,12 @@ "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==", "dev": true }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, "@hapi/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", @@ -3752,147 +3843,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@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-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@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", - "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", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@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", - "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" - } - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@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", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, "jest-watcher": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", @@ -3907,14 +3857,6 @@ "string-length": "^2.0.0" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -3923,11 +3865,6 @@ "glob": "^7.1.3" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -4303,130 +4240,21 @@ "string-length": "^2.0.0" }, "dependencies": { - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@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-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@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", - "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" - } - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@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", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } } } }, + "@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "requires": { + "@sinclair/typebox": "^0.23.3" + } + }, "@jest/source-map": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", @@ -4463,142 +4291,6 @@ "jest-haste-map": "^24.9.0", "jest-runner": "^24.9.0", "jest-runtime": "^24.9.0" - }, - "dependencies": { - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@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-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@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", - "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", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@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", - "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" - } - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@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", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@jest/transform": { @@ -4700,9 +4392,9 @@ "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" }, "@jridgewell/trace-mapping": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz", - "integrity": "sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -5411,19 +5103,6 @@ } } } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } } } }, @@ -6139,6 +5818,398 @@ "universal-user-agent": "^6.0.0" }, "dependencies": { + "@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" + }, + "@babel/core": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", + "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2" + } + }, + "@babel/generator": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", + "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==" + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", + "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", + "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==" + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==" + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==" + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==" + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==" + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==" + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "requires": { + "@babel/helper-function-name": "^7.16.7" + } + }, + "@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==" + }, + "@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", + "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, "@octokit/types": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.6.0.tgz", @@ -6149,9 +6220,9 @@ } }, "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "is-plain-object": { "version": "5.0.0", @@ -6166,28 +6237,27 @@ } }, "@octokit/graphql": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.9.tgz", - "integrity": "sha512-c+0yofIugUNqo+ktrLaBlWSbjSq/UF8ChAyxQzbD3X74k1vAuyLKdDJmPwVExUFSp6+U1FzWe+3OkeRsIqV0vg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "requires": { - "@octokit/request": "^5.3.0", + "@octokit/request": "^5.6.0", "@octokit/types": "^6.0.3", "universal-user-agent": "^6.0.0" }, "dependencies": { - "@octokit/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.6.0.tgz", - "integrity": "sha512-nmFoU3HCbw1AmnZU/eto2VvzV06+N7oAqXwMmAHGlNDF+KFykksh/VlAl85xc1P5T7Mw8fKYvXNaImNHCCH/rg==", - "requires": { - "@octokit/openapi-types": "^3.3.0", - "@types/node": ">= 8" - } + "@octokit/openapi-types": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", + "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "@octokit/types": { + "version": "6.37.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", + "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "requires": { + "@octokit/openapi-types": "^12.4.0" + } }, "universal-user-agent": { "version": "6.0.0", @@ -6197,38 +6267,37 @@ } }, "@octokit/openapi-types": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-3.3.0.tgz", - "integrity": "sha512-s3dd32gagPmKaSLNJ9aPNok7U+tl69YLESf6DgQz5Ml/iipPZtif3GLvWpNXoA6qspFm1LFUZX+C3SqWX/Y/TQ==" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-3.5.0.tgz", + "integrity": "sha512-LP15nQhxVblxoA9sKxSnrnJVIZEwTV9DZ16s01DtpttKWvg2lfg+zSWjveuO81c7CiX+HpBYPdUuzM2rvv1+Sw==" }, "@octokit/plugin-paginate-rest": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.9.0.tgz", - "integrity": "sha512-XxbOg45r2n/2QpU6hnGDxQNDRrJ7gjYpMXeDbUCigWTHECmjoyFLizkFO2jMEtidMkfiELn7AF8GBAJ/cbPTnA==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.19.0.tgz", + "integrity": "sha512-hQ4Qysg2hNmEMuZeJkvyzM4eSZiTifOKqYAMsW8FnxFKowhuwWICSgBQ9Gn9GpUmgKB7qaf1hFvMjYaTAg5jQA==", "requires": { - "@octokit/types": "^6.6.0" + "@octokit/types": "^6.36.0" }, "dependencies": { - "@octokit/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.6.0.tgz", - "integrity": "sha512-nmFoU3HCbw1AmnZU/eto2VvzV06+N7oAqXwMmAHGlNDF+KFykksh/VlAl85xc1P5T7Mw8fKYvXNaImNHCCH/rg==", - "requires": { - "@octokit/openapi-types": "^3.3.0", - "@types/node": ">= 8" - } + "@octokit/openapi-types": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", + "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "@octokit/types": { + "version": "6.37.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", + "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "requires": { + "@octokit/openapi-types": "^12.4.0" + } } } }, "@octokit/plugin-request-log": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz", - "integrity": "sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==" }, "@octokit/plugin-rest-endpoint-methods": { "version": "3.17.0", @@ -6248,76 +6317,99 @@ } }, "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" } } }, "@octokit/request": { - "version": "5.4.13", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.13.tgz", - "integrity": "sha512-WcNRH5XPPtg7i1g9Da5U9dvZ6YbTffw9BN2rVezYiE7couoSyaRsw0e+Tl8uk1fArHE7Dn14U7YqUDy59WaqEw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "requires": { "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.0.0", - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "once": "^1.4.0", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" }, "dependencies": { - "@octokit/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.6.0.tgz", - "integrity": "sha512-nmFoU3HCbw1AmnZU/eto2VvzV06+N7oAqXwMmAHGlNDF+KFykksh/VlAl85xc1P5T7Mw8fKYvXNaImNHCCH/rg==", - "requires": { - "@octokit/openapi-types": "^3.3.0", - "@types/node": ">= 8" - } + "@octokit/openapi-types": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", + "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "@octokit/types": { + "version": "6.37.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", + "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "requires": { + "@octokit/openapi-types": "^12.4.0" + } }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } } } }, "@octokit/request-error": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz", - "integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "requires": { "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", "once": "^1.4.0" }, "dependencies": { - "@octokit/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.6.0.tgz", - "integrity": "sha512-nmFoU3HCbw1AmnZU/eto2VvzV06+N7oAqXwMmAHGlNDF+KFykksh/VlAl85xc1P5T7Mw8fKYvXNaImNHCCH/rg==", - "requires": { - "@octokit/openapi-types": "^3.3.0", - "@types/node": ">= 8" - } + "@octokit/openapi-types": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz", + "integrity": "sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA==" }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "@octokit/types": { + "version": "6.37.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz", + "integrity": "sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA==", + "requires": { + "@octokit/openapi-types": "^12.4.0" + } } } }, @@ -6341,9 +6433,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" } } }, @@ -6473,15 +6565,15 @@ } }, "@polka/url": { - "version": "1.0.0-next.15", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", - "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==", + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", "dev": true }, "@react-dnd/asap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", - "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", + "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==" }, "@react-dnd/invariant": { "version": "2.0.0", @@ -6541,20 +6633,12 @@ "integrity": "sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg==" }, "@sideway/address": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz", - "integrity": "sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dev": true, "requires": { "@hapi/hoek": "^9.0.0" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==", - "dev": true - } } }, "@sideway/formula": { @@ -6569,10 +6653,15 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, + "@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==" + }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -6615,9 +6704,9 @@ "dev": true }, "@testing-library/dom": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.4.tgz", - "integrity": "sha512-CtrJRiSYEfbtNGtEsd78mk1n1v2TUbeABlNIcOCJdDfkN5/JTOwQEbbQpoSRxGqzcWPgStMvJ4mNolSuBRv1NA==", + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -6625,7 +6714,7 @@ "@types/aria-query": "^4.2.0", "aria-query": "^4.2.2", "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.4", + "dom-accessibility-api": "^0.5.6", "lz-string": "^1.4.4", "pretty-format": "^26.6.2" }, @@ -6644,27 +6733,27 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "@types/yargs": { - "version": "15.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", - "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -6677,9 +6766,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -6701,6 +6790,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6720,9 +6815,9 @@ } }, "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "supports-color": { @@ -6809,13 +6904,15 @@ "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-3.0.0.tgz", + "integrity": "sha512-qLChUo6yhpQ9k905NwL74GU7TxH+9UODwwQ6ICNI+O6EDMExqH/Cv9NsbmcZ7yC/rRXJ/AHCzfgjsFRY5fKjYw==", + "requires": { + "anymatch": "*" + } }, "@types/applicationinsights-js": { "version": "1.0.7", @@ -6824,15 +6921,15 @@ "dev": true }, "@types/aria-query": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", - "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", "dev": true }, "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -6842,34 +6939,34 @@ } }, "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", "requires": { "@babel/types": "^7.3.0" } }, "@types/cheerio": { - "version": "0.22.23", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.23.tgz", - "integrity": "sha512-QfHLujVMlGqcS/ePSf3Oe5hK3H8wi/yN2JYuxSB1U10VvW1fO3K8C+mURQesFYS1Hn7lspOsTT75SKq/XtydQg==", + "version": "0.22.31", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.31.tgz", + "integrity": "sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==", "dev": true, "requires": { "@types/node": "*" @@ -6930,33 +7027,33 @@ } }, "@types/d3-array": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.8.tgz", - "integrity": "sha512-wWV0wT6oLUGprrOR5LMK7Dh8EBiondhnqINsvazv6UucYfTdb2oaFF4knlqzZV2RKB9ZC9G7G1Iojt8b/wolsw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.9.tgz", + "integrity": "sha512-E/7RgPr2ylT5dWG0CswMi9NpFcjIEDqLcUSBgNHe/EMahfqYaTx4zhcggG3khqoEB/leY4Vl6nTSbwLUPjXceA==", "dev": true }, "@types/d3-axis": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-2.0.0.tgz", - "integrity": "sha512-gUdlEwGBLl3tXGiBnBNmNzph9W3bCfa4tBgWZD60Z1eDQKTY4zyCAcZ3LksignGfKawYatmDYcBdjJ5h/54sqA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.1.tgz", + "integrity": "sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw==", "dev": true, "requires": { "@types/d3-selection": "*" } }, "@types/d3-brush": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-2.1.0.tgz", - "integrity": "sha512-rLQqxQeXWF4ArXi81GlV8HBNwJw9EDpz0jcWvvzv548EDE4tXrayBTOHYi/8Q4FZ/Df8PGXFzxpAVQmJMjOtvQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.1.tgz", + "integrity": "sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw==", "dev": true, "requires": { "@types/d3-selection": "*" } }, "@types/d3-chord": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.10.tgz", - "integrity": "sha512-U6YojfET6ITL1/bUJo+/Lh3pMV9XPAfOWwbshl3y3RlgAX9VO/Bxa13IMAylZIDY4VsA3Gkh29kZP1AcAeyoYA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.11.tgz", + "integrity": "sha512-0DdfJ//bxyW3G9Nefwq/LDgazSKNN8NU0lBT3Cza6uVuInC2awMNsAcv1oKyRFLn9z7kXClH5XjwpveZjuz2eg==", "dev": true }, "@types/d3-collection": { @@ -6966,15 +7063,15 @@ "dev": true }, "@types/d3-color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.1.tgz", - "integrity": "sha512-u7LTCL7RnaavFSmob2rIAJLNwu50i6gFwY9cHFr80BrQURYQBRkJ+Yv47nA3Fm7FeRhdWTiVTeqvSeOuMAOzBQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==", "dev": true }, "@types/d3-contour": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.1.tgz", - "integrity": "sha512-wWwsM/3NfKTRBdH00cSf+XlsaHlNTkvH66PgDedobyvKQZ4sJrXXpr16LXvDnAal4B67v8JGrWDgyx6dqqKLuQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.3.tgz", + "integrity": "sha512-LxwmGIfVJIc1cKs7ZFRQ1FbtXpfH7QTXYRdMIJsFP71uCMdF6jJ0XZakYDX6Hn4yZkLf+7V8FgD34yCcok+5Ww==", "dev": true, "requires": { "@types/d3-array": "^1", @@ -6982,72 +7079,72 @@ } }, "@types/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-Sh0KW6z/d7uxssD7K4s4uCSzlEG/+SP+U47q098NVdOfFvUKNTvKAIV4XqjxsUuhE/854ARAREHOxkr9gQOCyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw==", "dev": true }, "@types/d3-drag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-2.0.0.tgz", - "integrity": "sha512-VaUJPjbMnDn02tcRqsHLRAX5VjcRIzCjBfeXTLGe6QjMn5JccB5Cz4ztMRXMJfkbC45ovgJFWuj6DHvWMX1thA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.1.tgz", + "integrity": "sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA==", "dev": true, "requires": { "@types/d3-selection": "*" } }, "@types/d3-dsv": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-2.0.1.tgz", - "integrity": "sha512-wovgiG9Mgkr/SZ/m/c0m+RwrIT4ozsuCWeLxJyoObDWsie2DeQT4wzMdHZPR9Ya5oZLQT3w3uSl0NehG0+0dCA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.0.tgz", + "integrity": "sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A==", "dev": true }, "@types/d3-ease": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-2.0.0.tgz", - "integrity": "sha512-6aZrTyX5LG+ptofVHf+gTsThLRY1nhLotJjgY4drYqk1OkJMu2UvuoZRlPw2fffjRHeYepue3/fxTufqKKmvsA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", + "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==", "dev": true }, "@types/d3-fetch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-2.0.0.tgz", - "integrity": "sha512-WnLepGtxepFfXRdPI8I5FTgNiHn9p4vMTTqaNCzJJfAswXx0rOY2jjeolzEU063em3iJmGZ+U79InnEeFOrCRw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw==", "dev": true, "requires": { "@types/d3-dsv": "*" } }, "@types/d3-force": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.0.tgz", - "integrity": "sha512-LGDtC2YADu8OBniq9EBx/MOsXsMcJbEkmfSpXuz6oVdRamB+3CLCiq5EKFPEILGZQckkilGFq1ZTJ7kc289k+Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.3.tgz", + "integrity": "sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA==", "dev": true }, "@types/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-uagdkftxnGkO4pZw5jEYOM5ZnZOEsh7z8j11Qxk85UkB2RzfUUxRl7R9VvvJZHwKn8l+x+rpS77Nusq7FkFmIg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz", + "integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==", "dev": true }, "@types/d3-geo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-2.0.0.tgz", - "integrity": "sha512-DHHgYXW36lnAEQMYU2udKVOxxljHrn2EdOINeSC9jWCAXwOnGn7A19B8sNsHqgpu4F7O2bSD7//cqBXD3W0Deg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.2.tgz", + "integrity": "sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ==", "dev": true, "requires": { "@types/geojson": "*" } }, "@types/d3-hierarchy": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.7.tgz", - "integrity": "sha512-fvht6DOYKzqmXjMb/+xfgkmrWM4SD7rMA/ZbM+gGwr9ZTuIDfky95J8CARtaJo/ExeWyS0xGVdL2gqno2zrQ0Q==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", + "integrity": "sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg==", "dev": true }, "@types/d3-interpolate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.0.tgz", - "integrity": "sha512-Wt1v2zTlEN8dSx8hhx6MoOhWQgTkz0Ukj7owAEIOF2QtI0e219paFX9rf/SLOr/UExWb1TcUzatU8zWwFby6gg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", "dev": true, "requires": { "@types/d3-color": "*" @@ -7066,21 +7163,21 @@ "dev": true }, "@types/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-YZuJuGBnijD0H+98xMJD4oZXgv/umPXy5deu3IimYTPGH3Kr8Th6iQUff0/6S80oNBD7KtOuIHwHUCymUiRoeQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz", + "integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==", "dev": true }, "@types/d3-random": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.0.tgz", - "integrity": "sha512-Hjfj9m68NmYZzushzEG7etPvKH/nj9b9s9+qtkNG3/dbRBjQZQg1XS6nRuHJcCASTjxXlyXZnKu2gDxyQIIu9A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==", "dev": true }, "@types/d3-scale": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.2.2.tgz", - "integrity": "sha512-qpQe8G02tzUwt9sdWX1h8A/W0Q1+N48wMnYXVOkrzeLUkCfvzJYV9Ee3aORCS4dN4ONRLFmMvaXdziQ29XGLjQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA==", "dev": true, "requires": { "@types/d3-time": "*" @@ -7099,24 +7196,24 @@ "dev": true }, "@types/d3-shape": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.0.0.tgz", - "integrity": "sha512-NLzD02m5PiD1KLEDjLN+MtqEcFYn4ZL9+Rqc9ZwARK1cpKZXd91zBETbe6wpBB6Ia0D0VZbpmbW3+BsGPGnCpA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-jYIYxFFA9vrJ8Hd4Se83YI6XF+gzDL1aC5DCsldai4XYYiVNdhtpGbA/GM6iyQ8ayhSp3a148LY34hy7A4TxZA==", "dev": true, "requires": { - "@types/d3-path": "^1" + "@types/d3-path": "*" } }, "@types/d3-time": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.0.0.tgz", - "integrity": "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", "dev": true }, "@types/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UpLg1mn/8PLyjr+J/JwdQJM/GzysMvv2CS8y+WYAL5K0+wbvXv/pPSLEfdNaprCZsGcXTxPsFMy8QtkYv9ueew==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz", + "integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==", "dev": true }, "@types/d3-timer": { @@ -7126,9 +7223,9 @@ "dev": true }, "@types/d3-transition": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-2.0.0.tgz", - "integrity": "sha512-UJDzI98utcZQUJt3uIit/Ho0/eBIANzrWJrTmi4+TaKIyWL2iCu7ShP0o4QajCskhyjOA7C8+4CE3b1YirTzEQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-Sv4qEI9uq3bnZwlOANvYK853zvpdKEm1yz9rcc8ZTsxvRklcs9Fx4YFuGA3gXoQN/c/1T6QkVNjhaRO/cWj94g==", "dev": true, "requires": { "@types/d3-selection": "*" @@ -7141,9 +7238,9 @@ "dev": true }, "@types/d3-zoom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-2.0.0.tgz", - "integrity": "sha512-daL0PJm4yT0ISTGa7p2lHX0kvv9FO/IR1ooWbHR/7H4jpbaKiLux5FslyS/OvISPiJ5SXb4sOqYhO6fMB6hKRw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.1.tgz", + "integrity": "sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ==", "dev": true, "requires": { "@types/d3-interpolate": "*", @@ -7157,9 +7254,9 @@ "dev": true }, "@types/dom4": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.1.tgz", - "integrity": "sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.2.tgz", + "integrity": "sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g==" }, "@types/enzyme": { "version": "3.10.7", @@ -7181,9 +7278,9 @@ } }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", + "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", "dev": true, "requires": { "@types/estree": "*", @@ -7191,9 +7288,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, "requires": { "@types/eslint": "*", @@ -7207,18 +7304,25 @@ "dev": true }, "@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", "dev": true }, "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "requires": { "@types/minimatch": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" + } } }, "@types/graceful-fs": { @@ -7246,6 +7350,23 @@ "requires": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" + }, + "dependencies": { + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + } } }, "@types/html-minifier-terser": { @@ -7255,9 +7376,9 @@ "dev": true }, "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "@types/istanbul-lib-report": { "version": "3.0.0", @@ -7280,6 +7401,7 @@ "version": "26.0.20", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "dev": true, "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" @@ -7289,6 +7411,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -7298,43 +7421,43 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, - "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" - }, "@types/yargs": { - "version": "15.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", - "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, "requires": { "@types/yargs-parser": "*" } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7344,6 +7467,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -7351,22 +7475,26 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "jest-diff": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^26.6.2", @@ -7377,12 +7505,14 @@ "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, "requires": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -7391,14 +7521,16 @@ } }, "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -7406,9 +7538,9 @@ } }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "@types/lodash": { "version": "4.14.171", @@ -7429,16 +7561,17 @@ }, "dependencies": { "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" } } }, "@types/node": { "version": "12.11.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.1.tgz", - "integrity": "sha512-TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A==" + "integrity": "sha512-TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A==", + "dev": true }, "@types/node-fetch": { "version": "2.5.7", @@ -7450,14 +7583,14 @@ }, "dependencies": { "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7467,9 +7600,9 @@ } }, "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" }, "@types/parse-json": { "version": "4.0.0", @@ -7483,15 +7616,15 @@ "dev": true }, "@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", "dev": true }, "@types/prop-types": { - "version": "15.5.8", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz", - "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==" + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/q": { "version": "1.5.1", @@ -7503,6 +7636,7 @@ "version": "17.0.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz", "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==", + "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -7510,9 +7644,10 @@ }, "dependencies": { "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true } } }, @@ -7526,9 +7661,9 @@ } }, "@types/react-native": { - "version": "0.63.46", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.46.tgz", - "integrity": "sha512-SnBnWRErpISIaWk4K8kAfIKqSPdZ8fdH6HIw7kVdz6jMl/5FAf6iXeIwRfVZg1bCMh+ymNPCpSENNNEVprxj/w==", + "version": "0.68.0", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.68.0.tgz", + "integrity": "sha512-E+m91xtoX+GRh2MpbIYOanbtXlX76woVgRs6zU7PsJ4ZPFzdsRkpKNTqMZyKgyt7eraZDnJvwFXGXDIW+8NRjA==", "dev": true, "requires": { "@types/react": "*" @@ -7565,17 +7700,34 @@ } }, "@types/react-table": { - "version": "6.8.7", - "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.7.tgz", - "integrity": "sha512-1U0xl47jk0BzE+HNHgxZYSLvtybSvnlLhOpW9Mfqf9iuRm/fGqgRab3TKivPCY6Tl7WPFM2hWEJ1GnsuSFc9AQ==", + "version": "6.8.9", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.9.tgz", + "integrity": "sha512-fVQXjy/EYDbgraScgjDONA291McKqGrw0R0NeK639fx2bS4T19TnXMjg3FjOPlkI3qYTQtFTPADlRYysaQIMpA==", "requires": { "@types/react": "*" + }, + "dependencies": { + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + } } }, "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" }, "@types/sanitize-html": { "version": "1.27.2", @@ -7650,6 +7802,120 @@ "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", "requires": { "@types/jest": "*" + }, + "dependencies": { + "@types/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-Tsbjk8Y2hkBaY/gJsataeb4q9Mubw9EOz7+4RjPkzD5KjTvHHs7cpws22InaoXxAVAhF5HfFbzJjo6oKWqSZLw==", + "requires": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-diff": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", + "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" + }, + "jest-matcher-utils": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz", + "integrity": "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + } + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@types/tunnel": { @@ -7717,6 +7983,11 @@ "source-map": "^0.6.0" }, "dependencies": { + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7734,6 +8005,11 @@ "source-map": "^0.7.3" }, "dependencies": { + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -7747,6 +8023,13 @@ "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" + } } }, "@types/yargs": { @@ -7772,6 +8055,12 @@ "@types/node": "*" } }, + "@types/youtube-player": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/@types/youtube-player/-/youtube-player-5.5.6.tgz", + "integrity": "sha512-RcWWUEuAZZX24dG55Xk558/HHCZxYf798/xPnV6wTwDlUF8HZNAmqyXyi+4QgN2l9juP9GRjCwILxXLSPKQBBw==", + "dev": true + }, "@typescript-eslint/eslint-plugin": { "version": "4.22.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", @@ -7788,999 +8077,6 @@ "tsutils": "^3.17.1" }, "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", - "debug": "^4.1.1" - }, - "dependencies": { - "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" - } - }, - "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } - } - }, - "@ungap/url-search-params": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@ungap/url-search-params/-/url-search-params-0.2.2.tgz", - "integrity": "sha512-qQsguKXZVKdCixOHX9jqnX/K/1HekPDpGKyEcXHT+zR6EjGA7S4boSuelL4uuPv6YfhN0n8c4UxW+v/Z3gM2iw==" - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", - "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", - "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz", - "integrity": "sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abort-controller-es5": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abort-controller-es5/-/abort-controller-es5-2.0.0.tgz", - "integrity": "sha512-jqZ41YtAmAIxLDHVzU2tw4DeIKbmal3tmxlWEk2bWzNUFBGrr7nGuV/G9yAGeZt7C48rlTzwXOuelZUPBgOf/w==", - "requires": { - "@babel/cli": "^7.14.5", - "@babel/core": "^7.14.6", - "@babel/plugin-transform-runtime": "^7.14.5", - "@babel/preset-env": "^7.14.7", - "@babel/runtime-corejs3": "^7.14.7", - "esbuild": "^0.12.15", - "mkdirp": "^1.0.4", - "read-pkg-up": "^8.0.0", - "terser": "^5.7.1" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" - }, - "@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", - "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, "@babel/plugin-transform-regenerator": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", @@ -8792,87 +8088,50 @@ "@babel/plugin-transform-reserved-words": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==" }, "@babel/plugin-transform-shorthand-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==" }, "@babel/plugin-transform-spread": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==" }, "@babel/plugin-transform-sticky-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==" }, "@babel/plugin-transform-template-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==" }, "@babel/plugin-transform-typeof-symbol": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==" }, "@babel/plugin-transform-unicode-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==" }, "@babel/preset-env": { "version": "7.17.10", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-class-static-block": "^7.17.6", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", "@babel/plugin-proposal-private-methods": "^7.16.11", "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", @@ -8886,30 +8145,6 @@ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.17.9", "@babel/plugin-transform-reserved-words": "^7.16.7", "@babel/plugin-transform-shorthand-properties": "^7.16.7", @@ -8924,8 +8159,7 @@ "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" + "core-js-compat": "^3.22.1" } }, "@babel/preset-modules": { @@ -8954,8 +8188,6 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" } }, @@ -8964,13 +8196,7 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", "@babel/types": "^7.17.10", "debug": "^4.1.0", "globals": "^11.1.0" @@ -8981,10 +8207,38 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, + "@typescript-eslint/experimental-utils": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", + "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/typescript-estree": "4.22.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", + "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/visitor-keys": "4.22.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, "babel-plugin-polyfill-corejs3": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", @@ -9203,6 +8457,1373 @@ } } }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", + "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/typescript-estree": "4.22.0", + "debug": "^4.1.1" + }, + "dependencies": { + "@typescript-eslint/typescript-estree": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", + "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/visitor-keys": "4.22.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", + "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/visitor-keys": "4.22.0" + } + }, + "@typescript-eslint/types": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", + "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", + "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.22.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "@ungap/url-search-params": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@ungap/url-search-params/-/url-search-params-0.2.2.tgz", + "integrity": "sha512-qQsguKXZVKdCixOHX9jqnX/K/1HekPDpGKyEcXHT+zR6EjGA7S4boSuelL4uuPv6YfhN0n8c4UxW+v/Z3gM2iw==" + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz", + "integrity": "sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abort-controller-es5": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abort-controller-es5/-/abort-controller-es5-2.0.0.tgz", + "integrity": "sha512-jqZ41YtAmAIxLDHVzU2tw4DeIKbmal3tmxlWEk2bWzNUFBGrr7nGuV/G9yAGeZt7C48rlTzwXOuelZUPBgOf/w==", + "requires": { + "@babel/cli": "^7.14.5", + "@babel/core": "^7.14.6", + "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/preset-env": "^7.14.7", + "@babel/runtime-corejs3": "^7.14.7", + "esbuild": "^0.12.15", + "mkdirp": "^1.0.4", + "read-pkg-up": "^8.0.0", + "terser": "^5.7.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==" + }, + "@babel/core": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "requires": { + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime-corejs3": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "requires": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001358", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", + "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==" + }, + "core-js-compat": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", + "requires": { + "browserslist": "^4.20.4", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz", + "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==" + }, + "electron-to-chromium": { + "version": "1.4.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", + "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + } + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -10536,6 +11157,16 @@ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "sanitize-html": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.4.0.tgz", @@ -10571,6 +11202,16 @@ "simple-update-in": "2.2.0" }, "dependencies": { + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, "@types/react-redux": { "version": "7.1.21", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.21.tgz", @@ -10582,6 +11223,21 @@ "redux": "^4.0.0" } }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "react-redux": { "version": "7.2.4", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz", @@ -10630,6 +11286,16 @@ "simple-update-in": "2.2.0" }, "dependencies": { + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, "@types/react-redux": { "version": "7.1.21", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.21.tgz", @@ -10646,6 +11312,11 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, "event-target-shim": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", @@ -10656,6 +11327,16 @@ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "react-redux": { "version": "7.2.4", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz", @@ -12902,12 +13583,6 @@ "esutils": "^2.0.2" } }, - "dom-accessibility-api": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", - "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==", - "dev": true - }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -15980,7 +16655,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -16013,7 +16687,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, "requires": { "agent-base": "6", "debug": "4" @@ -17048,6 +17721,26 @@ } } }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", @@ -18645,6 +19338,16 @@ "moo-color": "^1.0.2" } }, + "jest-changed-files": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", + "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", + "requires": { + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" + } + }, "jest-circus": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", @@ -18677,6 +19380,7 @@ "dev": true, "requires": { "@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", @@ -18764,6 +19468,39 @@ "v8-to-istanbul": "^7.0.0" } }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "requires": { + "@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", + "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", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + } + }, "@jest/source-map": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", @@ -19067,7 +19804,8 @@ "dev": true, "requires": { "path-key": "^3.1.0", - "shebang-command": "^2.0.0" + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "cssom": { @@ -19826,7 +20564,9 @@ "growly": "^1.3.0", "is-wsl": "^2.2.0", "semver": "^7.3.2", - "shellwords": "^0.1.1" + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" }, "dependencies": { "semver": { @@ -20113,6 +20853,13 @@ "punycode": "^2.1.1" } }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "optional": true + }, "w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", @@ -20139,6 +20886,15 @@ "webidl-conversions": "^6.1.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -20532,6 +21288,15 @@ } } }, + "jest-leak-detector": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", + "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", + "requires": { + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, "jest-matcher-utils": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", @@ -22130,6 +22895,42 @@ "realpath-native": "^1.1.0" } }, + "jest-resolve-dependencies": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", + "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", + "requires": { + "@jest/types": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-snapshot": "^24.9.0" + } + }, + "jest-runner": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", + "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", + "requires": { + "@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", + "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", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + } + }, "jest-runtime": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", @@ -22905,6 +23706,27 @@ "safe-buffer": "^5.0.1" } }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + }, + "dependencies": { + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + } + } + }, "jwt-decode": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", @@ -25173,9 +25995,9 @@ } }, "node-abort-controller": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-1.2.1.tgz", - "integrity": "sha512-79PYeJuj6S9+yOHirR0JBLFOgjB6sQCir10uN6xRx25iD+ZD4ULqgRn3MwWBRaQGB0vEgReJzWwJo42T1R6YbQ==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==" }, "node-fetch": { "version": "2.6.1", @@ -27847,13 +28669,13 @@ } }, "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" } }, "prop-types-exact": { @@ -28317,6 +29139,16 @@ "version": "3.20.2", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } } } }, @@ -28415,6 +29247,16 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } } } }, @@ -28556,6 +29398,16 @@ "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } } } }, @@ -28643,6 +29495,16 @@ "react-lifecycles-compat": "^3.0.4" } }, + "react-youtube": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-9.0.1.tgz", + "integrity": "sha512-w2yt3o1H0fjlMjoqn8zEmtCqgiV+bYS1JfMSUfh70zky2rwWVORQzpt2DWoDio1+nZ1X9kSTzakdif6gaJdFuQ==", + "requires": { + "fast-deep-equal": "3.1.3", + "prop-types": "15.8.1", + "youtube-player": "5.5.2" + } + }, "reactcss": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", @@ -29820,6 +30682,11 @@ "totalist": "^1.0.0" } }, + "sister": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sister/-/sister-3.0.2.tgz", + "integrity": "sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==" + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -30677,6 +31544,11 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==" }, + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -31517,6 +32389,15 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, + "update-browserslist-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", + "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -32911,6 +33792,31 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" }, + "youtube-player": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/youtube-player/-/youtube-player-5.5.2.tgz", + "integrity": "sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==", + "requires": { + "debug": "^2.6.6", + "load-script": "^1.0.0", + "sister": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "zalgo-promise": { "version": "1.0.46", "resolved": "https://registry.npmjs.org/zalgo-promise/-/zalgo-promise-1.0.46.tgz", diff --git a/package.json b/package.json index e8bf0c371..2ddb10e18 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "dependencies": { "@azure/arm-cosmosdb": "9.1.0", - "@azure/cosmos": "3.10.5", + "@azure/cosmos": "3.16.1", "@azure/cosmos-language-service": "0.0.5", "@azure/identity": "1.2.1", "@azure/ms-rest-nodeauth": "3.0.7", @@ -92,6 +92,7 @@ "react-notification-system": "0.2.17", "react-redux": "7.1.3", "react-splitter-layout": "4.0.0", + "react-youtube": "9.0.1", "redux": "4.0.4", "reflect-metadata": "0.1.13", "rx-jupyter": "5.5.12", @@ -131,6 +132,7 @@ "@types/sinon": "2.3.3", "@types/styled-components": "5.1.1", "@types/underscore": "1.7.36", + "@types/youtube-player": "5.5.6", "@typescript-eslint/eslint-plugin": "4.22.0", "@typescript-eslint/parser": "4.22.0", "@webpack-cli/serve": "1.5.2", diff --git a/preview/package.json b/preview/package.json index 8118ce77a..0ef3999fc 100644 --- a/preview/package.json +++ b/preview/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "deploy": "az webapp up -n cosmos-explorer-preview --subscription cosmosdb-portalteam-generaldemo -g stfaul", + "deploy": "az webapp up --name \"cosmos-explorer-preview\" --subscription \"cosmosdb-portalteam-generaltest-msft\" --resource-group \"stfaul\"", "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, @@ -15,4 +15,4 @@ "http-proxy-middleware": "^1.1.0", "node-fetch": "^2.6.1" } -} +} \ No newline at end of file diff --git a/sampleData/sqlSampleData.json b/sampleData/sqlSampleData.json index 46b607a50..1cde20e57 100644 --- a/sampleData/sqlSampleData.json +++ b/sampleData/sqlSampleData.json @@ -1,26 +1,25 @@ { - "databaseId": "SampleDB", - "offerThroughput": 400, - "databaseLevelThroughput": false, - "collectionId": "Persons", - "createNewDatabase": true, - "partitionKey": { "kind": "Hash", "paths": ["/firstname"], "version": 1 }, "data": [ - { - "firstname": "Eva", - "age": 44 - }, - { - "firstname": "Véronique", - "age": 50 - }, - { - "firstname": "亜妃子", - "age": 5 - }, - { - "firstname": "John", - "age": 23 - } + { "address": "2007, NE 37TH PL" }, + { "address": "11635, SE MAY CREEK PARK DR" }, + { "address": "8923, 133RD AVE SE" }, + { "address": "1124, N 33RD ST" }, + { "address": "4288, 131ST PL SE" }, + { "address": "10900, SE 66TH ST" }, + { "address": "6260, 139TH AVE NE" }, + { "address": "13427, NE SPRING BLVD" }, + { "address": "13812, NE SPRING BLVD" }, + { "address": "5029, 159TH PL SE" }, + { "address": "8604, 117TH AVE SE" }, + { "address": "1561, 139TH LN NE" }, + { "address": "1575, 139TH CT NE" }, + { "address": "13901, NE 15TH CT" }, + { "address": "16365, NE 12TH PL" }, + { "address": "12226, NE 37TH ST" }, + { "address": "4021, 129TH CT SE" }, + { "address": "1455, 159TH PL NE" }, + { "address": "15825, NE 14TH RD" }, + { "address": "1418, 157TH CT NE" }, + { "address": "889, 131ST PL NE" } ] } diff --git a/src/Common/Constants.ts b/src/Common/Constants.ts index 537685a2c..2e877f872 100644 --- a/src/Common/Constants.ts +++ b/src/Common/Constants.ts @@ -354,6 +354,10 @@ export enum ContainerStatusType { Disconnected = "Disconnected", } +export enum PoolIdType { + DefaultPoolId = "default", +} + export const EmulatorMasterKey = //[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Well known public masterKey for emulator")] "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="; diff --git a/src/Common/CosmosClient.test.ts b/src/Common/CosmosClient.test.ts index 96505f208..ddac0de7d 100644 --- a/src/Common/CosmosClient.test.ts +++ b/src/Common/CosmosClient.test.ts @@ -1,4 +1,4 @@ -import { ResourceType } from "@azure/cosmos/dist-esm/common/constants"; +import { ResourceType } from "@azure/cosmos"; import { Platform, resetConfigContext, updateConfigContext } from "../ConfigContext"; import { updateUserContext } from "../UserContext"; import { endpoint, getTokenFromAuthService, requestPlugin, tokenProvider } from "./CosmosClient"; diff --git a/src/Common/CosmosClient.ts b/src/Common/CosmosClient.ts index 75359e363..f973df855 100644 --- a/src/Common/CosmosClient.ts +++ b/src/Common/CosmosClient.ts @@ -1,6 +1,4 @@ import * as Cosmos from "@azure/cosmos"; -import { RequestInfo, setAuthorizationTokenHeaderUsingMasterKey } from "@azure/cosmos"; -import { CosmosHeaders } from "@azure/cosmos/dist-esm"; import { configContext, Platform } from "../ConfigContext"; import { userContext } from "../UserContext"; import { logConsoleError } from "../Utils/NotificationConsoleUtils"; @@ -9,7 +7,7 @@ import { getErrorMessage } from "./ErrorHandlingUtils"; const _global = typeof self === "undefined" ? window : self; -export const tokenProvider = async (requestInfo: RequestInfo) => { +export const tokenProvider = async (requestInfo: Cosmos.RequestInfo) => { const { verb, resourceId, resourceType, headers } = requestInfo; if (userContext.features.enableAadDataPlane && userContext.aadToken) { @@ -20,13 +18,13 @@ export const tokenProvider = async (requestInfo: RequestInfo) => { if (configContext.platform === Platform.Emulator) { // TODO This SDK method mutates the headers object. Find a better one or fix the SDK. - await setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey); + await Cosmos.setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey); return decodeURIComponent(headers.authorization); } if (userContext.masterKey) { // TODO This SDK method mutates the headers object. Find a better one or fix the SDK. - await setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey); + await Cosmos.setAuthorizationTokenHeaderUsingMasterKey(verb, resourceId, resourceType, headers, EmulatorMasterKey); return decodeURIComponent(headers.authorization); } @@ -89,7 +87,7 @@ let _client: Cosmos.CosmosClient; export function client(): Cosmos.CosmosClient { if (_client) return _client; - let _defaultHeaders: CosmosHeaders = {}; + let _defaultHeaders: Cosmos.CosmosHeaders = {}; _defaultHeaders["x-ms-cosmos-sdk-supportedcapabilities"] = SDKSupportedCapabilities.None | SDKSupportedCapabilities.PartitionMerge; diff --git a/src/Common/dataAccess/createCollection.ts b/src/Common/dataAccess/createCollection.ts index 791b29fcc..7c657e667 100644 --- a/src/Common/dataAccess/createCollection.ts +++ b/src/Common/dataAccess/createCollection.ts @@ -1,7 +1,4 @@ -import { ContainerResponse, DatabaseResponse } from "@azure/cosmos"; -import { RequestOptions } from "@azure/cosmos/dist-esm"; -import { ContainerRequest } from "@azure/cosmos/dist-esm/client/Container/ContainerRequest"; -import { DatabaseRequest } from "@azure/cosmos/dist-esm/client/Database/DatabaseRequest"; +import { ContainerRequest, ContainerResponse, DatabaseRequest, DatabaseResponse, RequestOptions } from "@azure/cosmos"; import { AuthType } from "../../AuthType"; import * as DataModels from "../../Contracts/DataModels"; import { useDatabases } from "../../Explorer/useDatabases"; diff --git a/src/Common/dataAccess/createDatabase.ts b/src/Common/dataAccess/createDatabase.ts index 2467b7975..9208119ad 100644 --- a/src/Common/dataAccess/createDatabase.ts +++ b/src/Common/dataAccess/createDatabase.ts @@ -1,5 +1,4 @@ -import { DatabaseResponse } from "@azure/cosmos"; -import { DatabaseRequest } from "@azure/cosmos/dist-esm/client/Database/DatabaseRequest"; +import { DatabaseRequest, DatabaseResponse } from "@azure/cosmos"; import { AuthType } from "../../AuthType"; import * as DataModels from "../../Contracts/DataModels"; import { useDatabases } from "../../Explorer/useDatabases"; diff --git a/src/Common/dataAccess/deleteDocument.ts b/src/Common/dataAccess/deleteDocument.ts index 0ab2e6999..51713e791 100644 --- a/src/Common/dataAccess/deleteDocument.ts +++ b/src/Common/dataAccess/deleteDocument.ts @@ -1,9 +1,9 @@ import { CollectionBase } from "../../Contracts/ViewModels"; +import DocumentId from "../../Explorer/Tree/DocumentId"; +import { logConsoleInfo, logConsoleProgress } from "../../Utils/NotificationConsoleUtils"; import { client } from "../CosmosClient"; import { getEntityName } from "../DocumentUtility"; import { handleError } from "../ErrorHandlingUtils"; -import { logConsoleInfo, logConsoleProgress } from "../../Utils/NotificationConsoleUtils"; -import DocumentId from "../../Explorer/Tree/DocumentId"; export const deleteDocument = async (collection: CollectionBase, documentId: DocumentId): Promise => { const entityName: string = getEntityName(); @@ -13,7 +13,7 @@ export const deleteDocument = async (collection: CollectionBase, documentId: Doc await client() .database(collection.databaseId) .container(collection.id()) - .item(documentId.id(), documentId.partitionKeyValue) + .item(documentId.id(), documentId.partitionKeyValue?.length === 0 ? undefined : documentId.partitionKeyValue) .delete(); logConsoleInfo(`Successfully deleted ${entityName} ${documentId.id()}`); } catch (error) { diff --git a/src/Common/dataAccess/readOfferWithSDK.ts b/src/Common/dataAccess/readOfferWithSDK.ts index 761d9b282..7332a4e4f 100644 --- a/src/Common/dataAccess/readOfferWithSDK.ts +++ b/src/Common/dataAccess/readOfferWithSDK.ts @@ -1,6 +1,6 @@ -import { HttpHeaders } from "../Constants"; +import { RequestOptions } from "@azure/cosmos"; import { Offer } from "../../Contracts/DataModels"; -import { RequestOptions } from "@azure/cosmos/dist-esm"; +import { HttpHeaders } from "../Constants"; import { client } from "../CosmosClient"; import { parseSDKOfferResponse } from "../OfferUtility"; import { readOffers } from "./readOffers"; diff --git a/src/Common/dataAccess/updateCollection.ts b/src/Common/dataAccess/updateCollection.ts index cb553b77f..8b4c075e2 100644 --- a/src/Common/dataAccess/updateCollection.ts +++ b/src/Common/dataAccess/updateCollection.ts @@ -1,5 +1,4 @@ -import { ContainerDefinition } from "@azure/cosmos"; -import { RequestOptions } from "@azure/cosmos/dist-esm"; +import { ContainerDefinition, RequestOptions } from "@azure/cosmos"; import { AuthType } from "../../AuthType"; import { Collection } from "../../Contracts/DataModels"; import { userContext } from "../../UserContext"; diff --git a/src/Common/dataAccess/updateDocument.ts b/src/Common/dataAccess/updateDocument.ts index 7cda6566d..8aa100bbc 100644 --- a/src/Common/dataAccess/updateDocument.ts +++ b/src/Common/dataAccess/updateDocument.ts @@ -25,7 +25,7 @@ export const updateDocument = async ( const response = await client() .database(collection.databaseId) .container(collection.id()) - .item(documentId.id(), documentId.partitionKeyValue) + .item(documentId.id(), documentId.partitionKeyValue?.length === 0 ? undefined : documentId.partitionKeyValue) .replace(newDocument, options); logConsoleInfo(`Successfully updated ${entityName} ${documentId.id()}`); diff --git a/src/Common/dataAccess/updateOffer.ts b/src/Common/dataAccess/updateOffer.ts index 380de430d..88a3355d5 100644 --- a/src/Common/dataAccess/updateOffer.ts +++ b/src/Common/dataAccess/updateOffer.ts @@ -1,5 +1,4 @@ -import { OfferDefinition } from "@azure/cosmos"; -import { RequestOptions } from "@azure/cosmos/dist-esm"; +import { OfferDefinition, RequestOptions } from "@azure/cosmos"; import { AuthType } from "../../AuthType"; import { Offer, SDKOfferDefinition, UpdateOfferParams } from "../../Contracts/DataModels"; import { userContext } from "../../UserContext"; diff --git a/src/Contracts/DataModels.ts b/src/Contracts/DataModels.ts index ca76351cf..8bec7e6f9 100644 --- a/src/Contracts/DataModels.ts +++ b/src/Contracts/DataModels.ts @@ -7,6 +7,11 @@ export interface DatabaseAccount { type: string; kind: string; properties: DatabaseAccountExtendedProperties; + systemData?: DatabaseAccountSystemData; +} + +export interface DatabaseAccountSystemData { + createdAt: string; } export interface DatabaseAccountExtendedProperties { @@ -433,44 +438,51 @@ export interface NotebookWorkspaceConnectionInfo { export interface ContainerInfo { durationLeftInMinutes: number; - notebookServerInfo: NotebookWorkspaceConnectionInfo; + phoenixServerInfo: NotebookWorkspaceConnectionInfo; status: ContainerStatusType; } export interface IProvisionData { cosmosEndpoint: string; + poolId: string; } export interface IContainerData { forwardingId: string; } +export interface IDbAccountAllow { + status: number; + message?: string; + type?: string; +} + export interface IResponse { status: number; data: T; } -export interface IValidationError { +export interface IPhoenixError { message: string; type: string; } -export interface IMaxAllocationTimeExceeded extends IValidationError { +export interface IMaxAllocationTimeExceeded extends IPhoenixError { earliestAllocationTimestamp: string; maxAllocationTimePerDayPerUserInMinutes: string; } -export interface IMaxDbAccountsPerUserExceeded extends IValidationError { +export interface IMaxDbAccountsPerUserExceeded extends IPhoenixError { maxSimultaneousConnectionsPerUser: string; } -export interface IMaxUsersPerDbAccountExceeded extends IValidationError { +export interface IMaxUsersPerDbAccountExceeded extends IPhoenixError { maxSimultaneousUsersPerDbAccount: string; } export interface IPhoenixConnectionInfoResult { - readonly notebookAuthToken?: string; - readonly notebookServerUrl?: string; + readonly authToken?: string; + readonly phoenixServiceUrl?: string; readonly forwardingId?: string; } @@ -557,4 +569,6 @@ export enum PhoenixErrorType { AllocationValidationResult = "AllocationValidationResult", RegionNotServicable = "RegionNotServicable", SubscriptionNotAllowed = "SubscriptionNotAllowed", + UnknownError = "UnknownError", + PhoenixFlightFallback = "PhoenixFlightFallback", } diff --git a/src/Contracts/ExplorerContracts.ts b/src/Contracts/ExplorerContracts.ts index 09a271194..7fd127bec 100644 --- a/src/Contracts/ExplorerContracts.ts +++ b/src/Contracts/ExplorerContracts.ts @@ -34,6 +34,7 @@ export enum MessageTypes { CreateSparkPool, RefreshDatabaseAccount, CloseTab, + OpenQuickstartBlade, } export { Versions, ActionContracts, Diagnostics }; diff --git a/src/Contracts/ViewModels.ts b/src/Contracts/ViewModels.ts index ef775e2ce..9e89807e2 100644 --- a/src/Contracts/ViewModels.ts +++ b/src/Contracts/ViewModels.ts @@ -86,6 +86,7 @@ export interface Database extends TreeNode { offer: ko.Observable; isDatabaseExpanded: ko.Observable; isDatabaseShared: ko.Computed; + isSampleDB?: boolean; selectedSubnodeKind: ko.Observable; @@ -112,6 +113,7 @@ export interface CollectionBase extends TreeNode { selectedSubnodeKind: ko.Observable; children: ko.ObservableArray; isCollectionExpanded: ko.Observable; + isSampleCollection?: boolean; onDocumentDBDocumentsClick(): void; onNewQueryClick(source: any, event?: MouseEvent, queryText?: string): void; diff --git a/src/Explorer/ContextMenuButtonFactory.tsx b/src/Explorer/ContextMenuButtonFactory.tsx index 70d02e5aa..8f85ddbdb 100644 --- a/src/Explorer/ContextMenuButtonFactory.tsx +++ b/src/Explorer/ContextMenuButtonFactory.tsx @@ -39,7 +39,7 @@ export const createDatabaseContextMenu = (container: Explorer, databaseId: strin const items: TreeNodeMenuItem[] = [ { iconSrc: AddCollectionIcon, - onClick: () => container.onNewCollectionClicked(databaseId), + onClick: () => container.onNewCollectionClicked({ databaseId }), label: `New ${getCollectionName()}`, }, ]; diff --git a/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap b/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap index ea8341d10..fd3b28ed5 100644 --- a/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap +++ b/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap @@ -32,1611 +32,6 @@ exports[`SettingsComponent renders 1`] = ` "_resetNotebookWorkspace": [Function], "isFixedCollectionWithSharedThroughputSupported": [Function], "isTabsContentExpanded": [Function], - "notebookManager": NotebookManager { - "gitHubClient": GitHubClient { - "errorCallback": [Function], - "ocktokit": OctokitWithDefaults { - "actions": Object { - "addSelectedRepoToOrgSecret": [Function], - "cancelWorkflowRun": [Function], - "createOrUpdateOrgSecret": [Function], - "createOrUpdateRepoSecret": [Function], - "createOrUpdateSecretForRepo": [Function], - "createRegistrationToken": [Function], - "createRegistrationTokenForOrg": [Function], - "createRegistrationTokenForRepo": [Function], - "createRemoveToken": [Function], - "createRemoveTokenForOrg": [Function], - "createRemoveTokenForRepo": [Function], - "deleteArtifact": [Function], - "deleteOrgSecret": [Function], - "deleteRepoSecret": [Function], - "deleteSecretFromRepo": [Function], - "deleteSelfHostedRunnerFromOrg": [Function], - "deleteSelfHostedRunnerFromRepo": [Function], - "deleteWorkflowRunLogs": [Function], - "downloadArtifact": [Function], - "downloadJobLogsForWorkflowRun": [Function], - "downloadWorkflowJobLogs": [Function], - "downloadWorkflowRunLogs": [Function], - "getArtifact": [Function], - "getJobForWorkflowRun": [Function], - "getOrgPublicKey": [Function], - "getOrgSecret": [Function], - "getPublicKey": [Function], - "getRepoPublicKey": [Function], - "getRepoSecret": [Function], - "getSecret": [Function], - "getSelfHostedRunner": [Function], - "getSelfHostedRunnerForOrg": [Function], - "getSelfHostedRunnerForRepo": [Function], - "getWorkflow": [Function], - "getWorkflowJob": [Function], - "getWorkflowRun": [Function], - "getWorkflowRunUsage": [Function], - "getWorkflowUsage": [Function], - "listArtifactsForRepo": [Function], - "listDownloadsForSelfHostedRunnerApplication": [Function], - "listJobsForWorkflowRun": [Function], - "listOrgSecrets": [Function], - "listRepoSecrets": [Function], - "listRepoWorkflowRuns": [Function], - "listRepoWorkflows": [Function], - "listRunnerApplicationsForOrg": [Function], - "listRunnerApplicationsForRepo": [Function], - "listSecretsForRepo": [Function], - "listSelectedReposForOrgSecret": [Function], - "listSelfHostedRunnersForOrg": [Function], - "listSelfHostedRunnersForRepo": [Function], - "listWorkflowJobLogs": [Function], - "listWorkflowRunArtifacts": [Function], - "listWorkflowRunLogs": [Function], - "listWorkflowRuns": [Function], - "listWorkflowRunsForRepo": [Function], - "reRunWorkflow": [Function], - "removeSelectedRepoFromOrgSecret": [Function], - "removeSelfHostedRunner": [Function], - "setSelectedReposForOrgSecret": [Function], - }, - "activity": Object { - "checkRepoIsStarredByAuthenticatedUser": [Function], - "checkStarringRepo": [Function], - "deleteRepoSubscription": [Function], - "deleteThreadSubscription": [Function], - "getFeeds": [Function], - "getRepoSubscription": [Function], - "getThread": [Function], - "getThreadSubscription": [Function], - "getThreadSubscriptionForAuthenticatedUser": [Function], - "listEventsForAuthenticatedUser": [Function], - "listEventsForOrg": [Function], - "listEventsForUser": [Function], - "listFeeds": [Function], - "listNotifications": [Function], - "listNotificationsForAuthenticatedUser": [Function], - "listNotificationsForRepo": [Function], - "listOrgEventsForAuthenticatedUser": [Function], - "listPublicEvents": [Function], - "listPublicEventsForOrg": [Function], - "listPublicEventsForRepoNetwork": [Function], - "listPublicEventsForUser": [Function], - "listPublicOrgEvents": [Function], - "listReceivedEventsForUser": [Function], - "listReceivedPublicEventsForUser": [Function], - "listRepoEvents": [Function], - "listRepoNotificationsForAuthenticatedUser": [Function], - "listReposStarredByAuthenticatedUser": [Function], - "listReposStarredByUser": [Function], - "listReposWatchedByUser": [Function], - "listStargazersForRepo": [Function], - "listWatchedReposForAuthenticatedUser": [Function], - "listWatchersForRepo": [Function], - "markAsRead": [Function], - "markNotificationsAsRead": [Function], - "markNotificationsAsReadForRepo": [Function], - "markRepoNotificationsAsRead": [Function], - "markThreadAsRead": [Function], - "setRepoSubscription": [Function], - "setThreadSubscription": [Function], - "starRepo": [Function], - "starRepoForAuthenticatedUser": [Function], - "unstarRepo": [Function], - "unstarRepoForAuthenticatedUser": [Function], - }, - "apps": Object { - "addRepoToInstallation": [Function], - "checkAccountIsAssociatedWithAny": [Function], - "checkAccountIsAssociatedWithAnyStubbed": [Function], - "checkToken": [Function], - "createContentAttachment": [Function], - "createFromManifest": [Function], - "createInstallationAccessToken": [Function], - "createInstallationToken": [Function], - "deleteAuthorization": [Function], - "deleteInstallation": [Function], - "deleteToken": [Function], - "getAuthenticated": [Function], - "getBySlug": [Function], - "getInstallation": [Function], - "getOrgInstallation": [Function], - "getRepoInstallation": [Function], - "getSubscriptionPlanForAccount": [Function], - "getSubscriptionPlanForAccountStubbed": [Function], - "getUserInstallation": [Function], - "listAccountsForPlan": [Function], - "listAccountsForPlanStubbed": [Function], - "listAccountsUserOrOrgOnPlan": [Function], - "listAccountsUserOrOrgOnPlanStubbed": [Function], - "listInstallationReposForAuthenticatedUser": [Function], - "listInstallations": [Function], - "listInstallationsForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUserStubbed": [Function], - "listPlans": [Function], - "listPlansStubbed": [Function], - "listRepos": [Function], - "listReposAccessibleToInstallation": [Function], - "listSubscriptionsForAuthenticatedUser": [Function], - "listSubscriptionsForAuthenticatedUserStubbed": [Function], - "removeRepoFromInstallation": [Function], - "resetToken": [Function], - "revokeInstallationAccessToken": [Function], - "revokeInstallationToken": [Function], - "suspendInstallation": [Function], - "unsuspendInstallation": [Function], - }, - "auth": [Function], - "checks": Object { - "create": [Function], - "createSuite": [Function], - "get": [Function], - "getSuite": [Function], - "listAnnotations": [Function], - "listForRef": [Function], - "listForSuite": [Function], - "listSuitesForRef": [Function], - "rerequestSuite": [Function], - "setSuitesPreferences": [Function], - "update": [Function], - }, - "codeScanning": Object { - "getAlert": [Function], - "listAlertsForRepo": [Function], - }, - "codesOfConduct": Object { - "getAllCodesOfConduct": [Function], - "getConductCode": [Function], - "getForRepo": [Function], - "listConductCodes": [Function], - }, - "emojis": Object { - "get": [Function], - }, - "gists": Object { - "checkIsStarred": [Function], - "create": [Function], - "createComment": [Function], - "delete": [Function], - "deleteComment": [Function], - "fork": [Function], - "get": [Function], - "getComment": [Function], - "getRevision": [Function], - "list": [Function], - "listComments": [Function], - "listCommits": [Function], - "listForUser": [Function], - "listForks": [Function], - "listPublic": [Function], - "listPublicForUser": [Function], - "listStarred": [Function], - "star": [Function], - "unstar": [Function], - "update": [Function], - "updateComment": [Function], - }, - "git": Object { - "createBlob": [Function], - "createCommit": [Function], - "createRef": [Function], - "createTag": [Function], - "createTree": [Function], - "deleteRef": [Function], - "getBlob": [Function], - "getCommit": [Function], - "getRef": [Function], - "getTag": [Function], - "getTree": [Function], - "listMatchingRefs": [Function], - "updateRef": [Function], - }, - "gitignore": Object { - "getAllTemplates": [Function], - "getTemplate": [Function], - "listTemplates": [Function], - }, - "graphql": [Function], - "hook": [Function], - "interactions": Object { - "addOrUpdateRestrictionsForOrg": [Function], - "addOrUpdateRestrictionsForRepo": [Function], - "getRestrictionsForOrg": [Function], - "getRestrictionsForRepo": [Function], - "removeRestrictionsForOrg": [Function], - "removeRestrictionsForRepo": [Function], - "setRestrictionsForOrg": [Function], - "setRestrictionsForRepo": [Function], - }, - "issues": Object { - "addAssignees": [Function], - "addLabels": [Function], - "checkAssignee": [Function], - "checkUserCanBeAssigned": [Function], - "create": [Function], - "createComment": [Function], - "createLabel": [Function], - "createMilestone": [Function], - "deleteComment": [Function], - "deleteLabel": [Function], - "deleteMilestone": [Function], - "get": [Function], - "getComment": [Function], - "getEvent": [Function], - "getLabel": [Function], - "getMilestone": [Function], - "list": [Function], - "listAssignees": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listEvents": [Function], - "listEventsForRepo": [Function], - "listEventsForTimeline": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listLabelsForMilestone": [Function], - "listLabelsForRepo": [Function], - "listLabelsOnIssue": [Function], - "listMilestones": [Function], - "listMilestonesForRepo": [Function], - "lock": [Function], - "removeAllLabels": [Function], - "removeAssignees": [Function], - "removeLabel": [Function], - "removeLabels": [Function], - "replaceAllLabels": [Function], - "replaceLabels": [Function], - "setLabels": [Function], - "unlock": [Function], - "update": [Function], - "updateComment": [Function], - "updateLabel": [Function], - "updateMilestone": [Function], - }, - "licenses": Object { - "get": [Function], - "getAllCommonlyUsed": [Function], - "getForRepo": [Function], - "listCommonlyUsed": [Function], - }, - "log": Object { - "debug": [Function], - "error": [Function], - "info": [Function], - "warn": [Function], - }, - "markdown": Object { - "render": [Function], - "renderRaw": [Function], - }, - "meta": Object { - "get": [Function], - }, - "migrations": Object { - "cancelImport": [Function], - "deleteArchiveForAuthenticatedUser": [Function], - "deleteArchiveForOrg": [Function], - "downloadArchiveForOrg": [Function], - "getArchiveForAuthenticatedUser": [Function], - "getCommitAuthors": [Function], - "getImportProgress": [Function], - "getImportStatus": [Function], - "getLargeFiles": [Function], - "getStatusForAuthenticatedUser": [Function], - "getStatusForOrg": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listReposForOrg": [Function], - "listReposForUser": [Function], - "mapCommitAuthor": [Function], - "setLfsPreference": [Function], - "startForAuthenticatedUser": [Function], - "startForOrg": [Function], - "startImport": [Function], - "unlockRepoForAuthenticatedUser": [Function], - "unlockRepoForOrg": [Function], - "updateImport": [Function], - }, - "orgs": Object { - "addOrUpdateMembership": [Function], - "blockUser": [Function], - "checkBlockedUser": [Function], - "checkMembership": [Function], - "checkMembershipForUser": [Function], - "checkPublicMembership": [Function], - "checkPublicMembershipForUser": [Function], - "concealMembership": [Function], - "convertMemberToOutsideCollaborator": [Function], - "createHook": [Function], - "createInvitation": [Function], - "createWebhook": [Function], - "deleteHook": [Function], - "deleteWebhook": [Function], - "get": [Function], - "getHook": [Function], - "getMembership": [Function], - "getMembershipForAuthenticatedUser": [Function], - "getMembershipForUser": [Function], - "getWebhook": [Function], - "list": [Function], - "listAppInstallations": [Function], - "listBlockedUsers": [Function], - "listForAuthenticatedUser": [Function], - "listForUser": [Function], - "listHooks": [Function], - "listInstallations": [Function], - "listInvitationTeams": [Function], - "listMembers": [Function], - "listMemberships": [Function], - "listMembershipsForAuthenticatedUser": [Function], - "listOutsideCollaborators": [Function], - "listPendingInvitations": [Function], - "listPublicMembers": [Function], - "listWebhooks": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "publicizeMembership": [Function], - "removeMember": [Function], - "removeMembership": [Function], - "removeMembershipForUser": [Function], - "removeOutsideCollaborator": [Function], - "removePublicMembershipForAuthenticatedUser": [Function], - "setMembershipForUser": [Function], - "setPublicMembershipForAuthenticatedUser": [Function], - "unblockUser": [Function], - "update": [Function], - "updateHook": [Function], - "updateMembership": [Function], - "updateMembershipForAuthenticatedUser": [Function], - "updateWebhook": [Function], - }, - "paginate": [Function], - "projects": Object { - "addCollaborator": [Function], - "createCard": [Function], - "createColumn": [Function], - "createForAuthenticatedUser": [Function], - "createForOrg": [Function], - "createForRepo": [Function], - "delete": [Function], - "deleteCard": [Function], - "deleteColumn": [Function], - "get": [Function], - "getCard": [Function], - "getColumn": [Function], - "getPermissionForUser": [Function], - "listCards": [Function], - "listCollaborators": [Function], - "listColumns": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listForUser": [Function], - "moveCard": [Function], - "moveColumn": [Function], - "removeCollaborator": [Function], - "reviewUserPermissionLevel": [Function], - "update": [Function], - "updateCard": [Function], - "updateColumn": [Function], - }, - "pulls": Object { - "checkIfMerged": [Function], - "create": [Function], - "createComment": [Function], - "createReplyForReviewComment": [Function], - "createReview": [Function], - "createReviewComment": [Function], - "createReviewCommentReply": [Function], - "createReviewRequest": [Function], - "deleteComment": [Function], - "deletePendingReview": [Function], - "deleteReviewComment": [Function], - "deleteReviewRequest": [Function], - "dismissReview": [Function], - "get": [Function], - "getComment": [Function], - "getCommentsForReview": [Function], - "getReview": [Function], - "getReviewComment": [Function], - "list": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listCommentsForReview": [Function], - "listCommits": [Function], - "listFiles": [Function], - "listRequestedReviewers": [Function], - "listReviewComments": [Function], - "listReviewCommentsForRepo": [Function], - "listReviewRequests": [Function], - "listReviews": [Function], - "merge": [Function], - "removeRequestedReviewers": [Function], - "requestReviewers": [Function], - "submitReview": [Function], - "update": [Function], - "updateBranch": [Function], - "updateComment": [Function], - "updateReview": [Function], - "updateReviewComment": [Function], - }, - "rateLimit": Object { - "get": [Function], - }, - "reactions": Object { - "createForCommitComment": [Function], - "createForIssue": [Function], - "createForIssueComment": [Function], - "createForPullRequestReviewComment": [Function], - "createForTeamDiscussionCommentInOrg": [Function], - "createForTeamDiscussionInOrg": [Function], - "delete": [Function], - "deleteForCommitComment": [Function], - "deleteForIssue": [Function], - "deleteForIssueComment": [Function], - "deleteForPullRequestComment": [Function], - "deleteForTeamDiscussion": [Function], - "deleteForTeamDiscussionComment": [Function], - "deleteLegacy": [Function], - "listForCommitComment": [Function], - "listForIssue": [Function], - "listForIssueComment": [Function], - "listForPullRequestReviewComment": [Function], - "listForTeamDiscussionCommentInOrg": [Function], - "listForTeamDiscussionInOrg": [Function], - }, - "repos": Object { - "acceptInvitation": [Function], - "addAppAccessRestrictions": [Function], - "addCollaborator": [Function], - "addDeployKey": [Function], - "addProtectedBranchAdminEnforcement": [Function], - "addProtectedBranchAppRestrictions": [Function], - "addProtectedBranchRequiredSignatures": [Function], - "addProtectedBranchRequiredStatusChecksContexts": [Function], - "addProtectedBranchTeamRestrictions": [Function], - "addProtectedBranchUserRestrictions": [Function], - "addStatusCheckContexts": [Function], - "addTeamAccessRestrictions": [Function], - "addUserAccessRestrictions": [Function], - "checkCollaborator": [Function], - "checkVulnerabilityAlerts": [Function], - "compareCommits": [Function], - "createCommitComment": [Function], - "createCommitSignatureProtection": [Function], - "createCommitStatus": [Function], - "createDeployKey": [Function], - "createDeployment": [Function], - "createDeploymentStatus": [Function], - "createDispatchEvent": [Function], - "createForAuthenticatedUser": [Function], - "createFork": [Function], - "createHook": [Function], - "createInOrg": [Function], - "createOrUpdateFile": [Function], - "createOrUpdateFileContents": [Function], - "createPagesSite": [Function], - "createRelease": [Function], - "createStatus": [Function], - "createUsingTemplate": [Function], - "createWebhook": [Function], - "declineInvitation": [Function], - "delete": [Function], - "deleteAccessRestrictions": [Function], - "deleteAdminBranchProtection": [Function], - "deleteBranchProtection": [Function], - "deleteCommitComment": [Function], - "deleteCommitSignatureProtection": [Function], - "deleteDeployKey": [Function], - "deleteDeployment": [Function], - "deleteDownload": [Function], - "deleteFile": [Function], - "deleteHook": [Function], - "deleteInvitation": [Function], - "deletePagesSite": [Function], - "deletePullRequestReviewProtection": [Function], - "deleteRelease": [Function], - "deleteReleaseAsset": [Function], - "deleteWebhook": [Function], - "disableAutomatedSecurityFixes": [Function], - "disablePagesSite": [Function], - "disableVulnerabilityAlerts": [Function], - "downloadArchive": [Function], - "enableAutomatedSecurityFixes": [Function], - "enablePagesSite": [Function], - "enableVulnerabilityAlerts": [Function], - "get": [Function], - "getAccessRestrictions": [Function], - "getAdminBranchProtection": [Function], - "getAllStatusCheckContexts": [Function], - "getAllTopics": [Function], - "getAppsWithAccessToProtectedBranch": [Function], - "getArchiveLink": [Function], - "getBranch": [Function], - "getBranchProtection": [Function], - "getClones": [Function], - "getCodeFrequencyStats": [Function], - "getCollaboratorPermissionLevel": [Function], - "getCombinedStatusForRef": [Function], - "getCommit": [Function], - "getCommitActivityStats": [Function], - "getCommitComment": [Function], - "getCommitSignatureProtection": [Function], - "getCommunityProfileMetrics": [Function], - "getContent": [Function], - "getContents": [Function], - "getContributorsStats": [Function], - "getDeployKey": [Function], - "getDeployment": [Function], - "getDeploymentStatus": [Function], - "getDownload": [Function], - "getHook": [Function], - "getLatestPagesBuild": [Function], - "getLatestRelease": [Function], - "getPages": [Function], - "getPagesBuild": [Function], - "getParticipationStats": [Function], - "getProtectedBranchAdminEnforcement": [Function], - "getProtectedBranchPullRequestReviewEnforcement": [Function], - "getProtectedBranchRequiredSignatures": [Function], - "getProtectedBranchRequiredStatusChecks": [Function], - "getProtectedBranchRestrictions": [Function], - "getPullRequestReviewProtection": [Function], - "getPunchCardStats": [Function], - "getReadme": [Function], - "getRelease": [Function], - "getReleaseAsset": [Function], - "getReleaseByTag": [Function], - "getStatusChecksProtection": [Function], - "getTeamsWithAccessToProtectedBranch": [Function], - "getTopPaths": [Function], - "getTopReferrers": [Function], - "getUsersWithAccessToProtectedBranch": [Function], - "getViews": [Function], - "getWebhook": [Function], - "list": [Function], - "listAssetsForRelease": [Function], - "listBranches": [Function], - "listBranchesForHeadCommit": [Function], - "listCollaborators": [Function], - "listCommentsForCommit": [Function], - "listCommitComments": [Function], - "listCommitCommentsForRepo": [Function], - "listCommitStatusesForRef": [Function], - "listCommits": [Function], - "listContributors": [Function], - "listDeployKeys": [Function], - "listDeploymentStatuses": [Function], - "listDeployments": [Function], - "listDownloads": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForUser": [Function], - "listForks": [Function], - "listHooks": [Function], - "listInvitations": [Function], - "listInvitationsForAuthenticatedUser": [Function], - "listLanguages": [Function], - "listPagesBuilds": [Function], - "listProtectedBranchRequiredStatusChecksContexts": [Function], - "listPublic": [Function], - "listPullRequestsAssociatedWithCommit": [Function], - "listReleaseAssets": [Function], - "listReleases": [Function], - "listStatusesForRef": [Function], - "listTags": [Function], - "listTeams": [Function], - "listTopics": [Function], - "listWebhooks": [Function], - "merge": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "removeAppAccessRestrictions": [Function], - "removeBranchProtection": [Function], - "removeCollaborator": [Function], - "removeDeployKey": [Function], - "removeProtectedBranchAdminEnforcement": [Function], - "removeProtectedBranchAppRestrictions": [Function], - "removeProtectedBranchPullRequestReviewEnforcement": [Function], - "removeProtectedBranchRequiredSignatures": [Function], - "removeProtectedBranchRequiredStatusChecks": [Function], - "removeProtectedBranchRequiredStatusChecksContexts": [Function], - "removeProtectedBranchRestrictions": [Function], - "removeProtectedBranchTeamRestrictions": [Function], - "removeProtectedBranchUserRestrictions": [Function], - "removeStatusCheckContexts": [Function], - "removeStatusCheckProtection": [Function], - "removeTeamAccessRestrictions": [Function], - "removeUserAccessRestrictions": [Function], - "replaceAllTopics": [Function], - "replaceProtectedBranchAppRestrictions": [Function], - "replaceProtectedBranchRequiredStatusChecksContexts": [Function], - "replaceProtectedBranchTeamRestrictions": [Function], - "replaceProtectedBranchUserRestrictions": [Function], - "replaceTopics": [Function], - "requestPageBuild": [Function], - "requestPagesBuild": [Function], - "retrieveCommunityProfileMetrics": [Function], - "setAdminBranchProtection": [Function], - "setAppAccessRestrictions": [Function], - "setStatusCheckContexts": [Function], - "setTeamAccessRestrictions": [Function], - "setUserAccessRestrictions": [Function], - "testPushHook": [Function], - "testPushWebhook": [Function], - "transfer": [Function], - "update": [Function], - "updateBranchProtection": [Function], - "updateCommitComment": [Function], - "updateHook": [Function], - "updateInformationAboutPagesSite": [Function], - "updateInvitation": [Function], - "updateProtectedBranchPullRequestReviewEnforcement": [Function], - "updateProtectedBranchRequiredStatusChecks": [Function], - "updatePullRequestReviewProtection": [Function], - "updateRelease": [Function], - "updateReleaseAsset": [Function], - "updateStatusCheckPotection": [Function], - "updateWebhook": [Function], - "uploadReleaseAsset": [Function], - }, - "request": [Function], - "search": Object { - "code": [Function], - "commits": [Function], - "issuesAndPullRequests": [Function], - "labels": [Function], - "repos": [Function], - "topics": [Function], - "users": [Function], - }, - "teams": Object { - "addOrUpdateMembershipForUserInOrg": [Function], - "addOrUpdateMembershipInOrg": [Function], - "addOrUpdateProjectInOrg": [Function], - "addOrUpdateProjectPermissionsInOrg": [Function], - "addOrUpdateRepoInOrg": [Function], - "addOrUpdateRepoPermissionsInOrg": [Function], - "checkManagesRepoInOrg": [Function], - "checkPermissionsForProjectInOrg": [Function], - "checkPermissionsForRepoInOrg": [Function], - "create": [Function], - "createDiscussionCommentInOrg": [Function], - "createDiscussionInOrg": [Function], - "deleteDiscussionCommentInOrg": [Function], - "deleteDiscussionInOrg": [Function], - "deleteInOrg": [Function], - "getByName": [Function], - "getDiscussionCommentInOrg": [Function], - "getDiscussionInOrg": [Function], - "getMembershipForUserInOrg": [Function], - "getMembershipInOrg": [Function], - "list": [Function], - "listChildInOrg": [Function], - "listDiscussionCommentsInOrg": [Function], - "listDiscussionsInOrg": [Function], - "listForAuthenticatedUser": [Function], - "listMembersInOrg": [Function], - "listPendingInvitationsInOrg": [Function], - "listProjectsInOrg": [Function], - "listReposInOrg": [Function], - "removeMembershipForUserInOrg": [Function], - "removeMembershipInOrg": [Function], - "removeProjectInOrg": [Function], - "removeRepoInOrg": [Function], - "reviewProjectInOrg": [Function], - "updateDiscussionCommentInOrg": [Function], - "updateDiscussionInOrg": [Function], - "updateInOrg": [Function], - }, - "users": Object { - "addEmailForAuthenticated": [Function], - "addEmails": [Function], - "block": [Function], - "checkBlocked": [Function], - "checkFollowing": [Function], - "checkFollowingForUser": [Function], - "checkPersonIsFollowedByAuthenticated": [Function], - "createGpgKey": [Function], - "createGpgKeyForAuthenticated": [Function], - "createPublicKey": [Function], - "createPublicSshKeyForAuthenticated": [Function], - "deleteEmailForAuthenticated": [Function], - "deleteEmails": [Function], - "deleteGpgKey": [Function], - "deleteGpgKeyForAuthenticated": [Function], - "deletePublicKey": [Function], - "deletePublicSshKeyForAuthenticated": [Function], - "follow": [Function], - "getAuthenticated": [Function], - "getByUsername": [Function], - "getContextForUser": [Function], - "getGpgKey": [Function], - "getGpgKeyForAuthenticated": [Function], - "getPublicKey": [Function], - "getPublicSshKeyForAuthenticated": [Function], - "list": [Function], - "listBlocked": [Function], - "listBlockedByAuthenticated": [Function], - "listEmails": [Function], - "listEmailsForAuthenticated": [Function], - "listFollowedByAuthenticated": [Function], - "listFollowersForAuthenticatedUser": [Function], - "listFollowersForUser": [Function], - "listFollowingForAuthenticatedUser": [Function], - "listFollowingForUser": [Function], - "listGpgKeys": [Function], - "listGpgKeysForAuthenticated": [Function], - "listGpgKeysForUser": [Function], - "listPublicEmails": [Function], - "listPublicEmailsForAuthenticated": [Function], - "listPublicKeys": [Function], - "listPublicKeysForUser": [Function], - "listPublicSshKeysForAuthenticated": [Function], - "setPrimaryEmailVisibilityForAuthenticated": [Function], - "togglePrimaryEmailVisibility": [Function], - "unblock": [Function], - "unfollow": [Function], - "updateAuthenticated": [Function], - }, - }, - }, - "gitHubContentProvider": GitHubContentProvider { - "params": Object { - "gitHubClient": GitHubClient { - "errorCallback": [Function], - "ocktokit": OctokitWithDefaults { - "actions": Object { - "addSelectedRepoToOrgSecret": [Function], - "cancelWorkflowRun": [Function], - "createOrUpdateOrgSecret": [Function], - "createOrUpdateRepoSecret": [Function], - "createOrUpdateSecretForRepo": [Function], - "createRegistrationToken": [Function], - "createRegistrationTokenForOrg": [Function], - "createRegistrationTokenForRepo": [Function], - "createRemoveToken": [Function], - "createRemoveTokenForOrg": [Function], - "createRemoveTokenForRepo": [Function], - "deleteArtifact": [Function], - "deleteOrgSecret": [Function], - "deleteRepoSecret": [Function], - "deleteSecretFromRepo": [Function], - "deleteSelfHostedRunnerFromOrg": [Function], - "deleteSelfHostedRunnerFromRepo": [Function], - "deleteWorkflowRunLogs": [Function], - "downloadArtifact": [Function], - "downloadJobLogsForWorkflowRun": [Function], - "downloadWorkflowJobLogs": [Function], - "downloadWorkflowRunLogs": [Function], - "getArtifact": [Function], - "getJobForWorkflowRun": [Function], - "getOrgPublicKey": [Function], - "getOrgSecret": [Function], - "getPublicKey": [Function], - "getRepoPublicKey": [Function], - "getRepoSecret": [Function], - "getSecret": [Function], - "getSelfHostedRunner": [Function], - "getSelfHostedRunnerForOrg": [Function], - "getSelfHostedRunnerForRepo": [Function], - "getWorkflow": [Function], - "getWorkflowJob": [Function], - "getWorkflowRun": [Function], - "getWorkflowRunUsage": [Function], - "getWorkflowUsage": [Function], - "listArtifactsForRepo": [Function], - "listDownloadsForSelfHostedRunnerApplication": [Function], - "listJobsForWorkflowRun": [Function], - "listOrgSecrets": [Function], - "listRepoSecrets": [Function], - "listRepoWorkflowRuns": [Function], - "listRepoWorkflows": [Function], - "listRunnerApplicationsForOrg": [Function], - "listRunnerApplicationsForRepo": [Function], - "listSecretsForRepo": [Function], - "listSelectedReposForOrgSecret": [Function], - "listSelfHostedRunnersForOrg": [Function], - "listSelfHostedRunnersForRepo": [Function], - "listWorkflowJobLogs": [Function], - "listWorkflowRunArtifacts": [Function], - "listWorkflowRunLogs": [Function], - "listWorkflowRuns": [Function], - "listWorkflowRunsForRepo": [Function], - "reRunWorkflow": [Function], - "removeSelectedRepoFromOrgSecret": [Function], - "removeSelfHostedRunner": [Function], - "setSelectedReposForOrgSecret": [Function], - }, - "activity": Object { - "checkRepoIsStarredByAuthenticatedUser": [Function], - "checkStarringRepo": [Function], - "deleteRepoSubscription": [Function], - "deleteThreadSubscription": [Function], - "getFeeds": [Function], - "getRepoSubscription": [Function], - "getThread": [Function], - "getThreadSubscription": [Function], - "getThreadSubscriptionForAuthenticatedUser": [Function], - "listEventsForAuthenticatedUser": [Function], - "listEventsForOrg": [Function], - "listEventsForUser": [Function], - "listFeeds": [Function], - "listNotifications": [Function], - "listNotificationsForAuthenticatedUser": [Function], - "listNotificationsForRepo": [Function], - "listOrgEventsForAuthenticatedUser": [Function], - "listPublicEvents": [Function], - "listPublicEventsForOrg": [Function], - "listPublicEventsForRepoNetwork": [Function], - "listPublicEventsForUser": [Function], - "listPublicOrgEvents": [Function], - "listReceivedEventsForUser": [Function], - "listReceivedPublicEventsForUser": [Function], - "listRepoEvents": [Function], - "listRepoNotificationsForAuthenticatedUser": [Function], - "listReposStarredByAuthenticatedUser": [Function], - "listReposStarredByUser": [Function], - "listReposWatchedByUser": [Function], - "listStargazersForRepo": [Function], - "listWatchedReposForAuthenticatedUser": [Function], - "listWatchersForRepo": [Function], - "markAsRead": [Function], - "markNotificationsAsRead": [Function], - "markNotificationsAsReadForRepo": [Function], - "markRepoNotificationsAsRead": [Function], - "markThreadAsRead": [Function], - "setRepoSubscription": [Function], - "setThreadSubscription": [Function], - "starRepo": [Function], - "starRepoForAuthenticatedUser": [Function], - "unstarRepo": [Function], - "unstarRepoForAuthenticatedUser": [Function], - }, - "apps": Object { - "addRepoToInstallation": [Function], - "checkAccountIsAssociatedWithAny": [Function], - "checkAccountIsAssociatedWithAnyStubbed": [Function], - "checkToken": [Function], - "createContentAttachment": [Function], - "createFromManifest": [Function], - "createInstallationAccessToken": [Function], - "createInstallationToken": [Function], - "deleteAuthorization": [Function], - "deleteInstallation": [Function], - "deleteToken": [Function], - "getAuthenticated": [Function], - "getBySlug": [Function], - "getInstallation": [Function], - "getOrgInstallation": [Function], - "getRepoInstallation": [Function], - "getSubscriptionPlanForAccount": [Function], - "getSubscriptionPlanForAccountStubbed": [Function], - "getUserInstallation": [Function], - "listAccountsForPlan": [Function], - "listAccountsForPlanStubbed": [Function], - "listAccountsUserOrOrgOnPlan": [Function], - "listAccountsUserOrOrgOnPlanStubbed": [Function], - "listInstallationReposForAuthenticatedUser": [Function], - "listInstallations": [Function], - "listInstallationsForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUserStubbed": [Function], - "listPlans": [Function], - "listPlansStubbed": [Function], - "listRepos": [Function], - "listReposAccessibleToInstallation": [Function], - "listSubscriptionsForAuthenticatedUser": [Function], - "listSubscriptionsForAuthenticatedUserStubbed": [Function], - "removeRepoFromInstallation": [Function], - "resetToken": [Function], - "revokeInstallationAccessToken": [Function], - "revokeInstallationToken": [Function], - "suspendInstallation": [Function], - "unsuspendInstallation": [Function], - }, - "auth": [Function], - "checks": Object { - "create": [Function], - "createSuite": [Function], - "get": [Function], - "getSuite": [Function], - "listAnnotations": [Function], - "listForRef": [Function], - "listForSuite": [Function], - "listSuitesForRef": [Function], - "rerequestSuite": [Function], - "setSuitesPreferences": [Function], - "update": [Function], - }, - "codeScanning": Object { - "getAlert": [Function], - "listAlertsForRepo": [Function], - }, - "codesOfConduct": Object { - "getAllCodesOfConduct": [Function], - "getConductCode": [Function], - "getForRepo": [Function], - "listConductCodes": [Function], - }, - "emojis": Object { - "get": [Function], - }, - "gists": Object { - "checkIsStarred": [Function], - "create": [Function], - "createComment": [Function], - "delete": [Function], - "deleteComment": [Function], - "fork": [Function], - "get": [Function], - "getComment": [Function], - "getRevision": [Function], - "list": [Function], - "listComments": [Function], - "listCommits": [Function], - "listForUser": [Function], - "listForks": [Function], - "listPublic": [Function], - "listPublicForUser": [Function], - "listStarred": [Function], - "star": [Function], - "unstar": [Function], - "update": [Function], - "updateComment": [Function], - }, - "git": Object { - "createBlob": [Function], - "createCommit": [Function], - "createRef": [Function], - "createTag": [Function], - "createTree": [Function], - "deleteRef": [Function], - "getBlob": [Function], - "getCommit": [Function], - "getRef": [Function], - "getTag": [Function], - "getTree": [Function], - "listMatchingRefs": [Function], - "updateRef": [Function], - }, - "gitignore": Object { - "getAllTemplates": [Function], - "getTemplate": [Function], - "listTemplates": [Function], - }, - "graphql": [Function], - "hook": [Function], - "interactions": Object { - "addOrUpdateRestrictionsForOrg": [Function], - "addOrUpdateRestrictionsForRepo": [Function], - "getRestrictionsForOrg": [Function], - "getRestrictionsForRepo": [Function], - "removeRestrictionsForOrg": [Function], - "removeRestrictionsForRepo": [Function], - "setRestrictionsForOrg": [Function], - "setRestrictionsForRepo": [Function], - }, - "issues": Object { - "addAssignees": [Function], - "addLabels": [Function], - "checkAssignee": [Function], - "checkUserCanBeAssigned": [Function], - "create": [Function], - "createComment": [Function], - "createLabel": [Function], - "createMilestone": [Function], - "deleteComment": [Function], - "deleteLabel": [Function], - "deleteMilestone": [Function], - "get": [Function], - "getComment": [Function], - "getEvent": [Function], - "getLabel": [Function], - "getMilestone": [Function], - "list": [Function], - "listAssignees": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listEvents": [Function], - "listEventsForRepo": [Function], - "listEventsForTimeline": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listLabelsForMilestone": [Function], - "listLabelsForRepo": [Function], - "listLabelsOnIssue": [Function], - "listMilestones": [Function], - "listMilestonesForRepo": [Function], - "lock": [Function], - "removeAllLabels": [Function], - "removeAssignees": [Function], - "removeLabel": [Function], - "removeLabels": [Function], - "replaceAllLabels": [Function], - "replaceLabels": [Function], - "setLabels": [Function], - "unlock": [Function], - "update": [Function], - "updateComment": [Function], - "updateLabel": [Function], - "updateMilestone": [Function], - }, - "licenses": Object { - "get": [Function], - "getAllCommonlyUsed": [Function], - "getForRepo": [Function], - "listCommonlyUsed": [Function], - }, - "log": Object { - "debug": [Function], - "error": [Function], - "info": [Function], - "warn": [Function], - }, - "markdown": Object { - "render": [Function], - "renderRaw": [Function], - }, - "meta": Object { - "get": [Function], - }, - "migrations": Object { - "cancelImport": [Function], - "deleteArchiveForAuthenticatedUser": [Function], - "deleteArchiveForOrg": [Function], - "downloadArchiveForOrg": [Function], - "getArchiveForAuthenticatedUser": [Function], - "getCommitAuthors": [Function], - "getImportProgress": [Function], - "getImportStatus": [Function], - "getLargeFiles": [Function], - "getStatusForAuthenticatedUser": [Function], - "getStatusForOrg": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listReposForOrg": [Function], - "listReposForUser": [Function], - "mapCommitAuthor": [Function], - "setLfsPreference": [Function], - "startForAuthenticatedUser": [Function], - "startForOrg": [Function], - "startImport": [Function], - "unlockRepoForAuthenticatedUser": [Function], - "unlockRepoForOrg": [Function], - "updateImport": [Function], - }, - "orgs": Object { - "addOrUpdateMembership": [Function], - "blockUser": [Function], - "checkBlockedUser": [Function], - "checkMembership": [Function], - "checkMembershipForUser": [Function], - "checkPublicMembership": [Function], - "checkPublicMembershipForUser": [Function], - "concealMembership": [Function], - "convertMemberToOutsideCollaborator": [Function], - "createHook": [Function], - "createInvitation": [Function], - "createWebhook": [Function], - "deleteHook": [Function], - "deleteWebhook": [Function], - "get": [Function], - "getHook": [Function], - "getMembership": [Function], - "getMembershipForAuthenticatedUser": [Function], - "getMembershipForUser": [Function], - "getWebhook": [Function], - "list": [Function], - "listAppInstallations": [Function], - "listBlockedUsers": [Function], - "listForAuthenticatedUser": [Function], - "listForUser": [Function], - "listHooks": [Function], - "listInstallations": [Function], - "listInvitationTeams": [Function], - "listMembers": [Function], - "listMemberships": [Function], - "listMembershipsForAuthenticatedUser": [Function], - "listOutsideCollaborators": [Function], - "listPendingInvitations": [Function], - "listPublicMembers": [Function], - "listWebhooks": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "publicizeMembership": [Function], - "removeMember": [Function], - "removeMembership": [Function], - "removeMembershipForUser": [Function], - "removeOutsideCollaborator": [Function], - "removePublicMembershipForAuthenticatedUser": [Function], - "setMembershipForUser": [Function], - "setPublicMembershipForAuthenticatedUser": [Function], - "unblockUser": [Function], - "update": [Function], - "updateHook": [Function], - "updateMembership": [Function], - "updateMembershipForAuthenticatedUser": [Function], - "updateWebhook": [Function], - }, - "paginate": [Function], - "projects": Object { - "addCollaborator": [Function], - "createCard": [Function], - "createColumn": [Function], - "createForAuthenticatedUser": [Function], - "createForOrg": [Function], - "createForRepo": [Function], - "delete": [Function], - "deleteCard": [Function], - "deleteColumn": [Function], - "get": [Function], - "getCard": [Function], - "getColumn": [Function], - "getPermissionForUser": [Function], - "listCards": [Function], - "listCollaborators": [Function], - "listColumns": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listForUser": [Function], - "moveCard": [Function], - "moveColumn": [Function], - "removeCollaborator": [Function], - "reviewUserPermissionLevel": [Function], - "update": [Function], - "updateCard": [Function], - "updateColumn": [Function], - }, - "pulls": Object { - "checkIfMerged": [Function], - "create": [Function], - "createComment": [Function], - "createReplyForReviewComment": [Function], - "createReview": [Function], - "createReviewComment": [Function], - "createReviewCommentReply": [Function], - "createReviewRequest": [Function], - "deleteComment": [Function], - "deletePendingReview": [Function], - "deleteReviewComment": [Function], - "deleteReviewRequest": [Function], - "dismissReview": [Function], - "get": [Function], - "getComment": [Function], - "getCommentsForReview": [Function], - "getReview": [Function], - "getReviewComment": [Function], - "list": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listCommentsForReview": [Function], - "listCommits": [Function], - "listFiles": [Function], - "listRequestedReviewers": [Function], - "listReviewComments": [Function], - "listReviewCommentsForRepo": [Function], - "listReviewRequests": [Function], - "listReviews": [Function], - "merge": [Function], - "removeRequestedReviewers": [Function], - "requestReviewers": [Function], - "submitReview": [Function], - "update": [Function], - "updateBranch": [Function], - "updateComment": [Function], - "updateReview": [Function], - "updateReviewComment": [Function], - }, - "rateLimit": Object { - "get": [Function], - }, - "reactions": Object { - "createForCommitComment": [Function], - "createForIssue": [Function], - "createForIssueComment": [Function], - "createForPullRequestReviewComment": [Function], - "createForTeamDiscussionCommentInOrg": [Function], - "createForTeamDiscussionInOrg": [Function], - "delete": [Function], - "deleteForCommitComment": [Function], - "deleteForIssue": [Function], - "deleteForIssueComment": [Function], - "deleteForPullRequestComment": [Function], - "deleteForTeamDiscussion": [Function], - "deleteForTeamDiscussionComment": [Function], - "deleteLegacy": [Function], - "listForCommitComment": [Function], - "listForIssue": [Function], - "listForIssueComment": [Function], - "listForPullRequestReviewComment": [Function], - "listForTeamDiscussionCommentInOrg": [Function], - "listForTeamDiscussionInOrg": [Function], - }, - "repos": Object { - "acceptInvitation": [Function], - "addAppAccessRestrictions": [Function], - "addCollaborator": [Function], - "addDeployKey": [Function], - "addProtectedBranchAdminEnforcement": [Function], - "addProtectedBranchAppRestrictions": [Function], - "addProtectedBranchRequiredSignatures": [Function], - "addProtectedBranchRequiredStatusChecksContexts": [Function], - "addProtectedBranchTeamRestrictions": [Function], - "addProtectedBranchUserRestrictions": [Function], - "addStatusCheckContexts": [Function], - "addTeamAccessRestrictions": [Function], - "addUserAccessRestrictions": [Function], - "checkCollaborator": [Function], - "checkVulnerabilityAlerts": [Function], - "compareCommits": [Function], - "createCommitComment": [Function], - "createCommitSignatureProtection": [Function], - "createCommitStatus": [Function], - "createDeployKey": [Function], - "createDeployment": [Function], - "createDeploymentStatus": [Function], - "createDispatchEvent": [Function], - "createForAuthenticatedUser": [Function], - "createFork": [Function], - "createHook": [Function], - "createInOrg": [Function], - "createOrUpdateFile": [Function], - "createOrUpdateFileContents": [Function], - "createPagesSite": [Function], - "createRelease": [Function], - "createStatus": [Function], - "createUsingTemplate": [Function], - "createWebhook": [Function], - "declineInvitation": [Function], - "delete": [Function], - "deleteAccessRestrictions": [Function], - "deleteAdminBranchProtection": [Function], - "deleteBranchProtection": [Function], - "deleteCommitComment": [Function], - "deleteCommitSignatureProtection": [Function], - "deleteDeployKey": [Function], - "deleteDeployment": [Function], - "deleteDownload": [Function], - "deleteFile": [Function], - "deleteHook": [Function], - "deleteInvitation": [Function], - "deletePagesSite": [Function], - "deletePullRequestReviewProtection": [Function], - "deleteRelease": [Function], - "deleteReleaseAsset": [Function], - "deleteWebhook": [Function], - "disableAutomatedSecurityFixes": [Function], - "disablePagesSite": [Function], - "disableVulnerabilityAlerts": [Function], - "downloadArchive": [Function], - "enableAutomatedSecurityFixes": [Function], - "enablePagesSite": [Function], - "enableVulnerabilityAlerts": [Function], - "get": [Function], - "getAccessRestrictions": [Function], - "getAdminBranchProtection": [Function], - "getAllStatusCheckContexts": [Function], - "getAllTopics": [Function], - "getAppsWithAccessToProtectedBranch": [Function], - "getArchiveLink": [Function], - "getBranch": [Function], - "getBranchProtection": [Function], - "getClones": [Function], - "getCodeFrequencyStats": [Function], - "getCollaboratorPermissionLevel": [Function], - "getCombinedStatusForRef": [Function], - "getCommit": [Function], - "getCommitActivityStats": [Function], - "getCommitComment": [Function], - "getCommitSignatureProtection": [Function], - "getCommunityProfileMetrics": [Function], - "getContent": [Function], - "getContents": [Function], - "getContributorsStats": [Function], - "getDeployKey": [Function], - "getDeployment": [Function], - "getDeploymentStatus": [Function], - "getDownload": [Function], - "getHook": [Function], - "getLatestPagesBuild": [Function], - "getLatestRelease": [Function], - "getPages": [Function], - "getPagesBuild": [Function], - "getParticipationStats": [Function], - "getProtectedBranchAdminEnforcement": [Function], - "getProtectedBranchPullRequestReviewEnforcement": [Function], - "getProtectedBranchRequiredSignatures": [Function], - "getProtectedBranchRequiredStatusChecks": [Function], - "getProtectedBranchRestrictions": [Function], - "getPullRequestReviewProtection": [Function], - "getPunchCardStats": [Function], - "getReadme": [Function], - "getRelease": [Function], - "getReleaseAsset": [Function], - "getReleaseByTag": [Function], - "getStatusChecksProtection": [Function], - "getTeamsWithAccessToProtectedBranch": [Function], - "getTopPaths": [Function], - "getTopReferrers": [Function], - "getUsersWithAccessToProtectedBranch": [Function], - "getViews": [Function], - "getWebhook": [Function], - "list": [Function], - "listAssetsForRelease": [Function], - "listBranches": [Function], - "listBranchesForHeadCommit": [Function], - "listCollaborators": [Function], - "listCommentsForCommit": [Function], - "listCommitComments": [Function], - "listCommitCommentsForRepo": [Function], - "listCommitStatusesForRef": [Function], - "listCommits": [Function], - "listContributors": [Function], - "listDeployKeys": [Function], - "listDeploymentStatuses": [Function], - "listDeployments": [Function], - "listDownloads": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForUser": [Function], - "listForks": [Function], - "listHooks": [Function], - "listInvitations": [Function], - "listInvitationsForAuthenticatedUser": [Function], - "listLanguages": [Function], - "listPagesBuilds": [Function], - "listProtectedBranchRequiredStatusChecksContexts": [Function], - "listPublic": [Function], - "listPullRequestsAssociatedWithCommit": [Function], - "listReleaseAssets": [Function], - "listReleases": [Function], - "listStatusesForRef": [Function], - "listTags": [Function], - "listTeams": [Function], - "listTopics": [Function], - "listWebhooks": [Function], - "merge": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "removeAppAccessRestrictions": [Function], - "removeBranchProtection": [Function], - "removeCollaborator": [Function], - "removeDeployKey": [Function], - "removeProtectedBranchAdminEnforcement": [Function], - "removeProtectedBranchAppRestrictions": [Function], - "removeProtectedBranchPullRequestReviewEnforcement": [Function], - "removeProtectedBranchRequiredSignatures": [Function], - "removeProtectedBranchRequiredStatusChecks": [Function], - "removeProtectedBranchRequiredStatusChecksContexts": [Function], - "removeProtectedBranchRestrictions": [Function], - "removeProtectedBranchTeamRestrictions": [Function], - "removeProtectedBranchUserRestrictions": [Function], - "removeStatusCheckContexts": [Function], - "removeStatusCheckProtection": [Function], - "removeTeamAccessRestrictions": [Function], - "removeUserAccessRestrictions": [Function], - "replaceAllTopics": [Function], - "replaceProtectedBranchAppRestrictions": [Function], - "replaceProtectedBranchRequiredStatusChecksContexts": [Function], - "replaceProtectedBranchTeamRestrictions": [Function], - "replaceProtectedBranchUserRestrictions": [Function], - "replaceTopics": [Function], - "requestPageBuild": [Function], - "requestPagesBuild": [Function], - "retrieveCommunityProfileMetrics": [Function], - "setAdminBranchProtection": [Function], - "setAppAccessRestrictions": [Function], - "setStatusCheckContexts": [Function], - "setTeamAccessRestrictions": [Function], - "setUserAccessRestrictions": [Function], - "testPushHook": [Function], - "testPushWebhook": [Function], - "transfer": [Function], - "update": [Function], - "updateBranchProtection": [Function], - "updateCommitComment": [Function], - "updateHook": [Function], - "updateInformationAboutPagesSite": [Function], - "updateInvitation": [Function], - "updateProtectedBranchPullRequestReviewEnforcement": [Function], - "updateProtectedBranchRequiredStatusChecks": [Function], - "updatePullRequestReviewProtection": [Function], - "updateRelease": [Function], - "updateReleaseAsset": [Function], - "updateStatusCheckPotection": [Function], - "updateWebhook": [Function], - "uploadReleaseAsset": [Function], - }, - "request": [Function], - "search": Object { - "code": [Function], - "commits": [Function], - "issuesAndPullRequests": [Function], - "labels": [Function], - "repos": [Function], - "topics": [Function], - "users": [Function], - }, - "teams": Object { - "addOrUpdateMembershipForUserInOrg": [Function], - "addOrUpdateMembershipInOrg": [Function], - "addOrUpdateProjectInOrg": [Function], - "addOrUpdateProjectPermissionsInOrg": [Function], - "addOrUpdateRepoInOrg": [Function], - "addOrUpdateRepoPermissionsInOrg": [Function], - "checkManagesRepoInOrg": [Function], - "checkPermissionsForProjectInOrg": [Function], - "checkPermissionsForRepoInOrg": [Function], - "create": [Function], - "createDiscussionCommentInOrg": [Function], - "createDiscussionInOrg": [Function], - "deleteDiscussionCommentInOrg": [Function], - "deleteDiscussionInOrg": [Function], - "deleteInOrg": [Function], - "getByName": [Function], - "getDiscussionCommentInOrg": [Function], - "getDiscussionInOrg": [Function], - "getMembershipForUserInOrg": [Function], - "getMembershipInOrg": [Function], - "list": [Function], - "listChildInOrg": [Function], - "listDiscussionCommentsInOrg": [Function], - "listDiscussionsInOrg": [Function], - "listForAuthenticatedUser": [Function], - "listMembersInOrg": [Function], - "listPendingInvitationsInOrg": [Function], - "listProjectsInOrg": [Function], - "listReposInOrg": [Function], - "removeMembershipForUserInOrg": [Function], - "removeMembershipInOrg": [Function], - "removeProjectInOrg": [Function], - "removeRepoInOrg": [Function], - "reviewProjectInOrg": [Function], - "updateDiscussionCommentInOrg": [Function], - "updateDiscussionInOrg": [Function], - "updateInOrg": [Function], - }, - "users": Object { - "addEmailForAuthenticated": [Function], - "addEmails": [Function], - "block": [Function], - "checkBlocked": [Function], - "checkFollowing": [Function], - "checkFollowingForUser": [Function], - "checkPersonIsFollowedByAuthenticated": [Function], - "createGpgKey": [Function], - "createGpgKeyForAuthenticated": [Function], - "createPublicKey": [Function], - "createPublicSshKeyForAuthenticated": [Function], - "deleteEmailForAuthenticated": [Function], - "deleteEmails": [Function], - "deleteGpgKey": [Function], - "deleteGpgKeyForAuthenticated": [Function], - "deletePublicKey": [Function], - "deletePublicSshKeyForAuthenticated": [Function], - "follow": [Function], - "getAuthenticated": [Function], - "getByUsername": [Function], - "getContextForUser": [Function], - "getGpgKey": [Function], - "getGpgKeyForAuthenticated": [Function], - "getPublicKey": [Function], - "getPublicSshKeyForAuthenticated": [Function], - "list": [Function], - "listBlocked": [Function], - "listBlockedByAuthenticated": [Function], - "listEmails": [Function], - "listEmailsForAuthenticated": [Function], - "listFollowedByAuthenticated": [Function], - "listFollowersForAuthenticatedUser": [Function], - "listFollowersForUser": [Function], - "listFollowingForAuthenticatedUser": [Function], - "listFollowingForUser": [Function], - "listGpgKeys": [Function], - "listGpgKeysForAuthenticated": [Function], - "listGpgKeysForUser": [Function], - "listPublicEmails": [Function], - "listPublicEmailsForAuthenticated": [Function], - "listPublicKeys": [Function], - "listPublicKeysForUser": [Function], - "listPublicSshKeysForAuthenticated": [Function], - "setPrimaryEmailVisibilityForAuthenticated": [Function], - "togglePrimaryEmailVisibility": [Function], - "unblock": [Function], - "unfollow": [Function], - "updateAuthenticated": [Function], - }, - }, - }, - "promptForCommitMsg": [Function], - }, - }, - "gitHubOAuthService": GitHubOAuthService { - "junoClient": JunoClient { - "cachedPinnedRepos": [Function], - }, - "token": [Function], - }, - "inMemoryContentProvider": InMemoryContentProvider { - "params": Object { - "memory://schema-analyzer-component-notebook.ipynb": Object { - "content": Object { - "content": Object { - "cells": Array [ - Object { - "cell_type": "code", - "execution_count": 0, - "metadata": Object {}, - "outputs": Array [], - "source": "", - }, - ], - "metadata": Object { - "kernelspec": Object { - "displayName": "Mongo", - "language": "mongocli", - "name": "mongo", - }, - "language_info": Object { - "file_extension": "ipynb", - "mimetype": "application/json", - "name": "mongo", - "version": "1.0", - }, - }, - "nbformat": 4, - "nbformat_minor": 4, - }, - "created": "", - "format": "json", - "last_modified": "", - "mimetype": "application/x-ipynb+json", - "name": "schema-analyzer-component-notebook.ipynb", - "path": "memory://schema-analyzer-component-notebook.ipynb", - "type": "notebook", - "writable": true, - }, - "readonly": true, - }, - }, - }, - "junoClient": JunoClient { - "cachedPinnedRepos": [Function], - }, - "onGitHubClientError": [Function], - "params": Object { - "container": [Circular], - "refreshCommandBarButtons": [Function], - "refreshNotebookList": [Function], - "resourceTree": ResourceTreeAdapter { - "container": [Circular], - "copyNotebook": [Function], - "parameters": [Function], - }, - }, - "promptForCommitMsg": [Function], - }, "onRefreshDatabasesKeyPress": [Function], "onRefreshResourcesClick": [Function], "phoenixClient": PhoenixClient { @@ -1713,1611 +108,6 @@ exports[`SettingsComponent renders 1`] = ` "_resetNotebookWorkspace": [Function], "isFixedCollectionWithSharedThroughputSupported": [Function], "isTabsContentExpanded": [Function], - "notebookManager": NotebookManager { - "gitHubClient": GitHubClient { - "errorCallback": [Function], - "ocktokit": OctokitWithDefaults { - "actions": Object { - "addSelectedRepoToOrgSecret": [Function], - "cancelWorkflowRun": [Function], - "createOrUpdateOrgSecret": [Function], - "createOrUpdateRepoSecret": [Function], - "createOrUpdateSecretForRepo": [Function], - "createRegistrationToken": [Function], - "createRegistrationTokenForOrg": [Function], - "createRegistrationTokenForRepo": [Function], - "createRemoveToken": [Function], - "createRemoveTokenForOrg": [Function], - "createRemoveTokenForRepo": [Function], - "deleteArtifact": [Function], - "deleteOrgSecret": [Function], - "deleteRepoSecret": [Function], - "deleteSecretFromRepo": [Function], - "deleteSelfHostedRunnerFromOrg": [Function], - "deleteSelfHostedRunnerFromRepo": [Function], - "deleteWorkflowRunLogs": [Function], - "downloadArtifact": [Function], - "downloadJobLogsForWorkflowRun": [Function], - "downloadWorkflowJobLogs": [Function], - "downloadWorkflowRunLogs": [Function], - "getArtifact": [Function], - "getJobForWorkflowRun": [Function], - "getOrgPublicKey": [Function], - "getOrgSecret": [Function], - "getPublicKey": [Function], - "getRepoPublicKey": [Function], - "getRepoSecret": [Function], - "getSecret": [Function], - "getSelfHostedRunner": [Function], - "getSelfHostedRunnerForOrg": [Function], - "getSelfHostedRunnerForRepo": [Function], - "getWorkflow": [Function], - "getWorkflowJob": [Function], - "getWorkflowRun": [Function], - "getWorkflowRunUsage": [Function], - "getWorkflowUsage": [Function], - "listArtifactsForRepo": [Function], - "listDownloadsForSelfHostedRunnerApplication": [Function], - "listJobsForWorkflowRun": [Function], - "listOrgSecrets": [Function], - "listRepoSecrets": [Function], - "listRepoWorkflowRuns": [Function], - "listRepoWorkflows": [Function], - "listRunnerApplicationsForOrg": [Function], - "listRunnerApplicationsForRepo": [Function], - "listSecretsForRepo": [Function], - "listSelectedReposForOrgSecret": [Function], - "listSelfHostedRunnersForOrg": [Function], - "listSelfHostedRunnersForRepo": [Function], - "listWorkflowJobLogs": [Function], - "listWorkflowRunArtifacts": [Function], - "listWorkflowRunLogs": [Function], - "listWorkflowRuns": [Function], - "listWorkflowRunsForRepo": [Function], - "reRunWorkflow": [Function], - "removeSelectedRepoFromOrgSecret": [Function], - "removeSelfHostedRunner": [Function], - "setSelectedReposForOrgSecret": [Function], - }, - "activity": Object { - "checkRepoIsStarredByAuthenticatedUser": [Function], - "checkStarringRepo": [Function], - "deleteRepoSubscription": [Function], - "deleteThreadSubscription": [Function], - "getFeeds": [Function], - "getRepoSubscription": [Function], - "getThread": [Function], - "getThreadSubscription": [Function], - "getThreadSubscriptionForAuthenticatedUser": [Function], - "listEventsForAuthenticatedUser": [Function], - "listEventsForOrg": [Function], - "listEventsForUser": [Function], - "listFeeds": [Function], - "listNotifications": [Function], - "listNotificationsForAuthenticatedUser": [Function], - "listNotificationsForRepo": [Function], - "listOrgEventsForAuthenticatedUser": [Function], - "listPublicEvents": [Function], - "listPublicEventsForOrg": [Function], - "listPublicEventsForRepoNetwork": [Function], - "listPublicEventsForUser": [Function], - "listPublicOrgEvents": [Function], - "listReceivedEventsForUser": [Function], - "listReceivedPublicEventsForUser": [Function], - "listRepoEvents": [Function], - "listRepoNotificationsForAuthenticatedUser": [Function], - "listReposStarredByAuthenticatedUser": [Function], - "listReposStarredByUser": [Function], - "listReposWatchedByUser": [Function], - "listStargazersForRepo": [Function], - "listWatchedReposForAuthenticatedUser": [Function], - "listWatchersForRepo": [Function], - "markAsRead": [Function], - "markNotificationsAsRead": [Function], - "markNotificationsAsReadForRepo": [Function], - "markRepoNotificationsAsRead": [Function], - "markThreadAsRead": [Function], - "setRepoSubscription": [Function], - "setThreadSubscription": [Function], - "starRepo": [Function], - "starRepoForAuthenticatedUser": [Function], - "unstarRepo": [Function], - "unstarRepoForAuthenticatedUser": [Function], - }, - "apps": Object { - "addRepoToInstallation": [Function], - "checkAccountIsAssociatedWithAny": [Function], - "checkAccountIsAssociatedWithAnyStubbed": [Function], - "checkToken": [Function], - "createContentAttachment": [Function], - "createFromManifest": [Function], - "createInstallationAccessToken": [Function], - "createInstallationToken": [Function], - "deleteAuthorization": [Function], - "deleteInstallation": [Function], - "deleteToken": [Function], - "getAuthenticated": [Function], - "getBySlug": [Function], - "getInstallation": [Function], - "getOrgInstallation": [Function], - "getRepoInstallation": [Function], - "getSubscriptionPlanForAccount": [Function], - "getSubscriptionPlanForAccountStubbed": [Function], - "getUserInstallation": [Function], - "listAccountsForPlan": [Function], - "listAccountsForPlanStubbed": [Function], - "listAccountsUserOrOrgOnPlan": [Function], - "listAccountsUserOrOrgOnPlanStubbed": [Function], - "listInstallationReposForAuthenticatedUser": [Function], - "listInstallations": [Function], - "listInstallationsForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUserStubbed": [Function], - "listPlans": [Function], - "listPlansStubbed": [Function], - "listRepos": [Function], - "listReposAccessibleToInstallation": [Function], - "listSubscriptionsForAuthenticatedUser": [Function], - "listSubscriptionsForAuthenticatedUserStubbed": [Function], - "removeRepoFromInstallation": [Function], - "resetToken": [Function], - "revokeInstallationAccessToken": [Function], - "revokeInstallationToken": [Function], - "suspendInstallation": [Function], - "unsuspendInstallation": [Function], - }, - "auth": [Function], - "checks": Object { - "create": [Function], - "createSuite": [Function], - "get": [Function], - "getSuite": [Function], - "listAnnotations": [Function], - "listForRef": [Function], - "listForSuite": [Function], - "listSuitesForRef": [Function], - "rerequestSuite": [Function], - "setSuitesPreferences": [Function], - "update": [Function], - }, - "codeScanning": Object { - "getAlert": [Function], - "listAlertsForRepo": [Function], - }, - "codesOfConduct": Object { - "getAllCodesOfConduct": [Function], - "getConductCode": [Function], - "getForRepo": [Function], - "listConductCodes": [Function], - }, - "emojis": Object { - "get": [Function], - }, - "gists": Object { - "checkIsStarred": [Function], - "create": [Function], - "createComment": [Function], - "delete": [Function], - "deleteComment": [Function], - "fork": [Function], - "get": [Function], - "getComment": [Function], - "getRevision": [Function], - "list": [Function], - "listComments": [Function], - "listCommits": [Function], - "listForUser": [Function], - "listForks": [Function], - "listPublic": [Function], - "listPublicForUser": [Function], - "listStarred": [Function], - "star": [Function], - "unstar": [Function], - "update": [Function], - "updateComment": [Function], - }, - "git": Object { - "createBlob": [Function], - "createCommit": [Function], - "createRef": [Function], - "createTag": [Function], - "createTree": [Function], - "deleteRef": [Function], - "getBlob": [Function], - "getCommit": [Function], - "getRef": [Function], - "getTag": [Function], - "getTree": [Function], - "listMatchingRefs": [Function], - "updateRef": [Function], - }, - "gitignore": Object { - "getAllTemplates": [Function], - "getTemplate": [Function], - "listTemplates": [Function], - }, - "graphql": [Function], - "hook": [Function], - "interactions": Object { - "addOrUpdateRestrictionsForOrg": [Function], - "addOrUpdateRestrictionsForRepo": [Function], - "getRestrictionsForOrg": [Function], - "getRestrictionsForRepo": [Function], - "removeRestrictionsForOrg": [Function], - "removeRestrictionsForRepo": [Function], - "setRestrictionsForOrg": [Function], - "setRestrictionsForRepo": [Function], - }, - "issues": Object { - "addAssignees": [Function], - "addLabels": [Function], - "checkAssignee": [Function], - "checkUserCanBeAssigned": [Function], - "create": [Function], - "createComment": [Function], - "createLabel": [Function], - "createMilestone": [Function], - "deleteComment": [Function], - "deleteLabel": [Function], - "deleteMilestone": [Function], - "get": [Function], - "getComment": [Function], - "getEvent": [Function], - "getLabel": [Function], - "getMilestone": [Function], - "list": [Function], - "listAssignees": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listEvents": [Function], - "listEventsForRepo": [Function], - "listEventsForTimeline": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listLabelsForMilestone": [Function], - "listLabelsForRepo": [Function], - "listLabelsOnIssue": [Function], - "listMilestones": [Function], - "listMilestonesForRepo": [Function], - "lock": [Function], - "removeAllLabels": [Function], - "removeAssignees": [Function], - "removeLabel": [Function], - "removeLabels": [Function], - "replaceAllLabels": [Function], - "replaceLabels": [Function], - "setLabels": [Function], - "unlock": [Function], - "update": [Function], - "updateComment": [Function], - "updateLabel": [Function], - "updateMilestone": [Function], - }, - "licenses": Object { - "get": [Function], - "getAllCommonlyUsed": [Function], - "getForRepo": [Function], - "listCommonlyUsed": [Function], - }, - "log": Object { - "debug": [Function], - "error": [Function], - "info": [Function], - "warn": [Function], - }, - "markdown": Object { - "render": [Function], - "renderRaw": [Function], - }, - "meta": Object { - "get": [Function], - }, - "migrations": Object { - "cancelImport": [Function], - "deleteArchiveForAuthenticatedUser": [Function], - "deleteArchiveForOrg": [Function], - "downloadArchiveForOrg": [Function], - "getArchiveForAuthenticatedUser": [Function], - "getCommitAuthors": [Function], - "getImportProgress": [Function], - "getImportStatus": [Function], - "getLargeFiles": [Function], - "getStatusForAuthenticatedUser": [Function], - "getStatusForOrg": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listReposForOrg": [Function], - "listReposForUser": [Function], - "mapCommitAuthor": [Function], - "setLfsPreference": [Function], - "startForAuthenticatedUser": [Function], - "startForOrg": [Function], - "startImport": [Function], - "unlockRepoForAuthenticatedUser": [Function], - "unlockRepoForOrg": [Function], - "updateImport": [Function], - }, - "orgs": Object { - "addOrUpdateMembership": [Function], - "blockUser": [Function], - "checkBlockedUser": [Function], - "checkMembership": [Function], - "checkMembershipForUser": [Function], - "checkPublicMembership": [Function], - "checkPublicMembershipForUser": [Function], - "concealMembership": [Function], - "convertMemberToOutsideCollaborator": [Function], - "createHook": [Function], - "createInvitation": [Function], - "createWebhook": [Function], - "deleteHook": [Function], - "deleteWebhook": [Function], - "get": [Function], - "getHook": [Function], - "getMembership": [Function], - "getMembershipForAuthenticatedUser": [Function], - "getMembershipForUser": [Function], - "getWebhook": [Function], - "list": [Function], - "listAppInstallations": [Function], - "listBlockedUsers": [Function], - "listForAuthenticatedUser": [Function], - "listForUser": [Function], - "listHooks": [Function], - "listInstallations": [Function], - "listInvitationTeams": [Function], - "listMembers": [Function], - "listMemberships": [Function], - "listMembershipsForAuthenticatedUser": [Function], - "listOutsideCollaborators": [Function], - "listPendingInvitations": [Function], - "listPublicMembers": [Function], - "listWebhooks": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "publicizeMembership": [Function], - "removeMember": [Function], - "removeMembership": [Function], - "removeMembershipForUser": [Function], - "removeOutsideCollaborator": [Function], - "removePublicMembershipForAuthenticatedUser": [Function], - "setMembershipForUser": [Function], - "setPublicMembershipForAuthenticatedUser": [Function], - "unblockUser": [Function], - "update": [Function], - "updateHook": [Function], - "updateMembership": [Function], - "updateMembershipForAuthenticatedUser": [Function], - "updateWebhook": [Function], - }, - "paginate": [Function], - "projects": Object { - "addCollaborator": [Function], - "createCard": [Function], - "createColumn": [Function], - "createForAuthenticatedUser": [Function], - "createForOrg": [Function], - "createForRepo": [Function], - "delete": [Function], - "deleteCard": [Function], - "deleteColumn": [Function], - "get": [Function], - "getCard": [Function], - "getColumn": [Function], - "getPermissionForUser": [Function], - "listCards": [Function], - "listCollaborators": [Function], - "listColumns": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listForUser": [Function], - "moveCard": [Function], - "moveColumn": [Function], - "removeCollaborator": [Function], - "reviewUserPermissionLevel": [Function], - "update": [Function], - "updateCard": [Function], - "updateColumn": [Function], - }, - "pulls": Object { - "checkIfMerged": [Function], - "create": [Function], - "createComment": [Function], - "createReplyForReviewComment": [Function], - "createReview": [Function], - "createReviewComment": [Function], - "createReviewCommentReply": [Function], - "createReviewRequest": [Function], - "deleteComment": [Function], - "deletePendingReview": [Function], - "deleteReviewComment": [Function], - "deleteReviewRequest": [Function], - "dismissReview": [Function], - "get": [Function], - "getComment": [Function], - "getCommentsForReview": [Function], - "getReview": [Function], - "getReviewComment": [Function], - "list": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listCommentsForReview": [Function], - "listCommits": [Function], - "listFiles": [Function], - "listRequestedReviewers": [Function], - "listReviewComments": [Function], - "listReviewCommentsForRepo": [Function], - "listReviewRequests": [Function], - "listReviews": [Function], - "merge": [Function], - "removeRequestedReviewers": [Function], - "requestReviewers": [Function], - "submitReview": [Function], - "update": [Function], - "updateBranch": [Function], - "updateComment": [Function], - "updateReview": [Function], - "updateReviewComment": [Function], - }, - "rateLimit": Object { - "get": [Function], - }, - "reactions": Object { - "createForCommitComment": [Function], - "createForIssue": [Function], - "createForIssueComment": [Function], - "createForPullRequestReviewComment": [Function], - "createForTeamDiscussionCommentInOrg": [Function], - "createForTeamDiscussionInOrg": [Function], - "delete": [Function], - "deleteForCommitComment": [Function], - "deleteForIssue": [Function], - "deleteForIssueComment": [Function], - "deleteForPullRequestComment": [Function], - "deleteForTeamDiscussion": [Function], - "deleteForTeamDiscussionComment": [Function], - "deleteLegacy": [Function], - "listForCommitComment": [Function], - "listForIssue": [Function], - "listForIssueComment": [Function], - "listForPullRequestReviewComment": [Function], - "listForTeamDiscussionCommentInOrg": [Function], - "listForTeamDiscussionInOrg": [Function], - }, - "repos": Object { - "acceptInvitation": [Function], - "addAppAccessRestrictions": [Function], - "addCollaborator": [Function], - "addDeployKey": [Function], - "addProtectedBranchAdminEnforcement": [Function], - "addProtectedBranchAppRestrictions": [Function], - "addProtectedBranchRequiredSignatures": [Function], - "addProtectedBranchRequiredStatusChecksContexts": [Function], - "addProtectedBranchTeamRestrictions": [Function], - "addProtectedBranchUserRestrictions": [Function], - "addStatusCheckContexts": [Function], - "addTeamAccessRestrictions": [Function], - "addUserAccessRestrictions": [Function], - "checkCollaborator": [Function], - "checkVulnerabilityAlerts": [Function], - "compareCommits": [Function], - "createCommitComment": [Function], - "createCommitSignatureProtection": [Function], - "createCommitStatus": [Function], - "createDeployKey": [Function], - "createDeployment": [Function], - "createDeploymentStatus": [Function], - "createDispatchEvent": [Function], - "createForAuthenticatedUser": [Function], - "createFork": [Function], - "createHook": [Function], - "createInOrg": [Function], - "createOrUpdateFile": [Function], - "createOrUpdateFileContents": [Function], - "createPagesSite": [Function], - "createRelease": [Function], - "createStatus": [Function], - "createUsingTemplate": [Function], - "createWebhook": [Function], - "declineInvitation": [Function], - "delete": [Function], - "deleteAccessRestrictions": [Function], - "deleteAdminBranchProtection": [Function], - "deleteBranchProtection": [Function], - "deleteCommitComment": [Function], - "deleteCommitSignatureProtection": [Function], - "deleteDeployKey": [Function], - "deleteDeployment": [Function], - "deleteDownload": [Function], - "deleteFile": [Function], - "deleteHook": [Function], - "deleteInvitation": [Function], - "deletePagesSite": [Function], - "deletePullRequestReviewProtection": [Function], - "deleteRelease": [Function], - "deleteReleaseAsset": [Function], - "deleteWebhook": [Function], - "disableAutomatedSecurityFixes": [Function], - "disablePagesSite": [Function], - "disableVulnerabilityAlerts": [Function], - "downloadArchive": [Function], - "enableAutomatedSecurityFixes": [Function], - "enablePagesSite": [Function], - "enableVulnerabilityAlerts": [Function], - "get": [Function], - "getAccessRestrictions": [Function], - "getAdminBranchProtection": [Function], - "getAllStatusCheckContexts": [Function], - "getAllTopics": [Function], - "getAppsWithAccessToProtectedBranch": [Function], - "getArchiveLink": [Function], - "getBranch": [Function], - "getBranchProtection": [Function], - "getClones": [Function], - "getCodeFrequencyStats": [Function], - "getCollaboratorPermissionLevel": [Function], - "getCombinedStatusForRef": [Function], - "getCommit": [Function], - "getCommitActivityStats": [Function], - "getCommitComment": [Function], - "getCommitSignatureProtection": [Function], - "getCommunityProfileMetrics": [Function], - "getContent": [Function], - "getContents": [Function], - "getContributorsStats": [Function], - "getDeployKey": [Function], - "getDeployment": [Function], - "getDeploymentStatus": [Function], - "getDownload": [Function], - "getHook": [Function], - "getLatestPagesBuild": [Function], - "getLatestRelease": [Function], - "getPages": [Function], - "getPagesBuild": [Function], - "getParticipationStats": [Function], - "getProtectedBranchAdminEnforcement": [Function], - "getProtectedBranchPullRequestReviewEnforcement": [Function], - "getProtectedBranchRequiredSignatures": [Function], - "getProtectedBranchRequiredStatusChecks": [Function], - "getProtectedBranchRestrictions": [Function], - "getPullRequestReviewProtection": [Function], - "getPunchCardStats": [Function], - "getReadme": [Function], - "getRelease": [Function], - "getReleaseAsset": [Function], - "getReleaseByTag": [Function], - "getStatusChecksProtection": [Function], - "getTeamsWithAccessToProtectedBranch": [Function], - "getTopPaths": [Function], - "getTopReferrers": [Function], - "getUsersWithAccessToProtectedBranch": [Function], - "getViews": [Function], - "getWebhook": [Function], - "list": [Function], - "listAssetsForRelease": [Function], - "listBranches": [Function], - "listBranchesForHeadCommit": [Function], - "listCollaborators": [Function], - "listCommentsForCommit": [Function], - "listCommitComments": [Function], - "listCommitCommentsForRepo": [Function], - "listCommitStatusesForRef": [Function], - "listCommits": [Function], - "listContributors": [Function], - "listDeployKeys": [Function], - "listDeploymentStatuses": [Function], - "listDeployments": [Function], - "listDownloads": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForUser": [Function], - "listForks": [Function], - "listHooks": [Function], - "listInvitations": [Function], - "listInvitationsForAuthenticatedUser": [Function], - "listLanguages": [Function], - "listPagesBuilds": [Function], - "listProtectedBranchRequiredStatusChecksContexts": [Function], - "listPublic": [Function], - "listPullRequestsAssociatedWithCommit": [Function], - "listReleaseAssets": [Function], - "listReleases": [Function], - "listStatusesForRef": [Function], - "listTags": [Function], - "listTeams": [Function], - "listTopics": [Function], - "listWebhooks": [Function], - "merge": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "removeAppAccessRestrictions": [Function], - "removeBranchProtection": [Function], - "removeCollaborator": [Function], - "removeDeployKey": [Function], - "removeProtectedBranchAdminEnforcement": [Function], - "removeProtectedBranchAppRestrictions": [Function], - "removeProtectedBranchPullRequestReviewEnforcement": [Function], - "removeProtectedBranchRequiredSignatures": [Function], - "removeProtectedBranchRequiredStatusChecks": [Function], - "removeProtectedBranchRequiredStatusChecksContexts": [Function], - "removeProtectedBranchRestrictions": [Function], - "removeProtectedBranchTeamRestrictions": [Function], - "removeProtectedBranchUserRestrictions": [Function], - "removeStatusCheckContexts": [Function], - "removeStatusCheckProtection": [Function], - "removeTeamAccessRestrictions": [Function], - "removeUserAccessRestrictions": [Function], - "replaceAllTopics": [Function], - "replaceProtectedBranchAppRestrictions": [Function], - "replaceProtectedBranchRequiredStatusChecksContexts": [Function], - "replaceProtectedBranchTeamRestrictions": [Function], - "replaceProtectedBranchUserRestrictions": [Function], - "replaceTopics": [Function], - "requestPageBuild": [Function], - "requestPagesBuild": [Function], - "retrieveCommunityProfileMetrics": [Function], - "setAdminBranchProtection": [Function], - "setAppAccessRestrictions": [Function], - "setStatusCheckContexts": [Function], - "setTeamAccessRestrictions": [Function], - "setUserAccessRestrictions": [Function], - "testPushHook": [Function], - "testPushWebhook": [Function], - "transfer": [Function], - "update": [Function], - "updateBranchProtection": [Function], - "updateCommitComment": [Function], - "updateHook": [Function], - "updateInformationAboutPagesSite": [Function], - "updateInvitation": [Function], - "updateProtectedBranchPullRequestReviewEnforcement": [Function], - "updateProtectedBranchRequiredStatusChecks": [Function], - "updatePullRequestReviewProtection": [Function], - "updateRelease": [Function], - "updateReleaseAsset": [Function], - "updateStatusCheckPotection": [Function], - "updateWebhook": [Function], - "uploadReleaseAsset": [Function], - }, - "request": [Function], - "search": Object { - "code": [Function], - "commits": [Function], - "issuesAndPullRequests": [Function], - "labels": [Function], - "repos": [Function], - "topics": [Function], - "users": [Function], - }, - "teams": Object { - "addOrUpdateMembershipForUserInOrg": [Function], - "addOrUpdateMembershipInOrg": [Function], - "addOrUpdateProjectInOrg": [Function], - "addOrUpdateProjectPermissionsInOrg": [Function], - "addOrUpdateRepoInOrg": [Function], - "addOrUpdateRepoPermissionsInOrg": [Function], - "checkManagesRepoInOrg": [Function], - "checkPermissionsForProjectInOrg": [Function], - "checkPermissionsForRepoInOrg": [Function], - "create": [Function], - "createDiscussionCommentInOrg": [Function], - "createDiscussionInOrg": [Function], - "deleteDiscussionCommentInOrg": [Function], - "deleteDiscussionInOrg": [Function], - "deleteInOrg": [Function], - "getByName": [Function], - "getDiscussionCommentInOrg": [Function], - "getDiscussionInOrg": [Function], - "getMembershipForUserInOrg": [Function], - "getMembershipInOrg": [Function], - "list": [Function], - "listChildInOrg": [Function], - "listDiscussionCommentsInOrg": [Function], - "listDiscussionsInOrg": [Function], - "listForAuthenticatedUser": [Function], - "listMembersInOrg": [Function], - "listPendingInvitationsInOrg": [Function], - "listProjectsInOrg": [Function], - "listReposInOrg": [Function], - "removeMembershipForUserInOrg": [Function], - "removeMembershipInOrg": [Function], - "removeProjectInOrg": [Function], - "removeRepoInOrg": [Function], - "reviewProjectInOrg": [Function], - "updateDiscussionCommentInOrg": [Function], - "updateDiscussionInOrg": [Function], - "updateInOrg": [Function], - }, - "users": Object { - "addEmailForAuthenticated": [Function], - "addEmails": [Function], - "block": [Function], - "checkBlocked": [Function], - "checkFollowing": [Function], - "checkFollowingForUser": [Function], - "checkPersonIsFollowedByAuthenticated": [Function], - "createGpgKey": [Function], - "createGpgKeyForAuthenticated": [Function], - "createPublicKey": [Function], - "createPublicSshKeyForAuthenticated": [Function], - "deleteEmailForAuthenticated": [Function], - "deleteEmails": [Function], - "deleteGpgKey": [Function], - "deleteGpgKeyForAuthenticated": [Function], - "deletePublicKey": [Function], - "deletePublicSshKeyForAuthenticated": [Function], - "follow": [Function], - "getAuthenticated": [Function], - "getByUsername": [Function], - "getContextForUser": [Function], - "getGpgKey": [Function], - "getGpgKeyForAuthenticated": [Function], - "getPublicKey": [Function], - "getPublicSshKeyForAuthenticated": [Function], - "list": [Function], - "listBlocked": [Function], - "listBlockedByAuthenticated": [Function], - "listEmails": [Function], - "listEmailsForAuthenticated": [Function], - "listFollowedByAuthenticated": [Function], - "listFollowersForAuthenticatedUser": [Function], - "listFollowersForUser": [Function], - "listFollowingForAuthenticatedUser": [Function], - "listFollowingForUser": [Function], - "listGpgKeys": [Function], - "listGpgKeysForAuthenticated": [Function], - "listGpgKeysForUser": [Function], - "listPublicEmails": [Function], - "listPublicEmailsForAuthenticated": [Function], - "listPublicKeys": [Function], - "listPublicKeysForUser": [Function], - "listPublicSshKeysForAuthenticated": [Function], - "setPrimaryEmailVisibilityForAuthenticated": [Function], - "togglePrimaryEmailVisibility": [Function], - "unblock": [Function], - "unfollow": [Function], - "updateAuthenticated": [Function], - }, - }, - }, - "gitHubContentProvider": GitHubContentProvider { - "params": Object { - "gitHubClient": GitHubClient { - "errorCallback": [Function], - "ocktokit": OctokitWithDefaults { - "actions": Object { - "addSelectedRepoToOrgSecret": [Function], - "cancelWorkflowRun": [Function], - "createOrUpdateOrgSecret": [Function], - "createOrUpdateRepoSecret": [Function], - "createOrUpdateSecretForRepo": [Function], - "createRegistrationToken": [Function], - "createRegistrationTokenForOrg": [Function], - "createRegistrationTokenForRepo": [Function], - "createRemoveToken": [Function], - "createRemoveTokenForOrg": [Function], - "createRemoveTokenForRepo": [Function], - "deleteArtifact": [Function], - "deleteOrgSecret": [Function], - "deleteRepoSecret": [Function], - "deleteSecretFromRepo": [Function], - "deleteSelfHostedRunnerFromOrg": [Function], - "deleteSelfHostedRunnerFromRepo": [Function], - "deleteWorkflowRunLogs": [Function], - "downloadArtifact": [Function], - "downloadJobLogsForWorkflowRun": [Function], - "downloadWorkflowJobLogs": [Function], - "downloadWorkflowRunLogs": [Function], - "getArtifact": [Function], - "getJobForWorkflowRun": [Function], - "getOrgPublicKey": [Function], - "getOrgSecret": [Function], - "getPublicKey": [Function], - "getRepoPublicKey": [Function], - "getRepoSecret": [Function], - "getSecret": [Function], - "getSelfHostedRunner": [Function], - "getSelfHostedRunnerForOrg": [Function], - "getSelfHostedRunnerForRepo": [Function], - "getWorkflow": [Function], - "getWorkflowJob": [Function], - "getWorkflowRun": [Function], - "getWorkflowRunUsage": [Function], - "getWorkflowUsage": [Function], - "listArtifactsForRepo": [Function], - "listDownloadsForSelfHostedRunnerApplication": [Function], - "listJobsForWorkflowRun": [Function], - "listOrgSecrets": [Function], - "listRepoSecrets": [Function], - "listRepoWorkflowRuns": [Function], - "listRepoWorkflows": [Function], - "listRunnerApplicationsForOrg": [Function], - "listRunnerApplicationsForRepo": [Function], - "listSecretsForRepo": [Function], - "listSelectedReposForOrgSecret": [Function], - "listSelfHostedRunnersForOrg": [Function], - "listSelfHostedRunnersForRepo": [Function], - "listWorkflowJobLogs": [Function], - "listWorkflowRunArtifacts": [Function], - "listWorkflowRunLogs": [Function], - "listWorkflowRuns": [Function], - "listWorkflowRunsForRepo": [Function], - "reRunWorkflow": [Function], - "removeSelectedRepoFromOrgSecret": [Function], - "removeSelfHostedRunner": [Function], - "setSelectedReposForOrgSecret": [Function], - }, - "activity": Object { - "checkRepoIsStarredByAuthenticatedUser": [Function], - "checkStarringRepo": [Function], - "deleteRepoSubscription": [Function], - "deleteThreadSubscription": [Function], - "getFeeds": [Function], - "getRepoSubscription": [Function], - "getThread": [Function], - "getThreadSubscription": [Function], - "getThreadSubscriptionForAuthenticatedUser": [Function], - "listEventsForAuthenticatedUser": [Function], - "listEventsForOrg": [Function], - "listEventsForUser": [Function], - "listFeeds": [Function], - "listNotifications": [Function], - "listNotificationsForAuthenticatedUser": [Function], - "listNotificationsForRepo": [Function], - "listOrgEventsForAuthenticatedUser": [Function], - "listPublicEvents": [Function], - "listPublicEventsForOrg": [Function], - "listPublicEventsForRepoNetwork": [Function], - "listPublicEventsForUser": [Function], - "listPublicOrgEvents": [Function], - "listReceivedEventsForUser": [Function], - "listReceivedPublicEventsForUser": [Function], - "listRepoEvents": [Function], - "listRepoNotificationsForAuthenticatedUser": [Function], - "listReposStarredByAuthenticatedUser": [Function], - "listReposStarredByUser": [Function], - "listReposWatchedByUser": [Function], - "listStargazersForRepo": [Function], - "listWatchedReposForAuthenticatedUser": [Function], - "listWatchersForRepo": [Function], - "markAsRead": [Function], - "markNotificationsAsRead": [Function], - "markNotificationsAsReadForRepo": [Function], - "markRepoNotificationsAsRead": [Function], - "markThreadAsRead": [Function], - "setRepoSubscription": [Function], - "setThreadSubscription": [Function], - "starRepo": [Function], - "starRepoForAuthenticatedUser": [Function], - "unstarRepo": [Function], - "unstarRepoForAuthenticatedUser": [Function], - }, - "apps": Object { - "addRepoToInstallation": [Function], - "checkAccountIsAssociatedWithAny": [Function], - "checkAccountIsAssociatedWithAnyStubbed": [Function], - "checkToken": [Function], - "createContentAttachment": [Function], - "createFromManifest": [Function], - "createInstallationAccessToken": [Function], - "createInstallationToken": [Function], - "deleteAuthorization": [Function], - "deleteInstallation": [Function], - "deleteToken": [Function], - "getAuthenticated": [Function], - "getBySlug": [Function], - "getInstallation": [Function], - "getOrgInstallation": [Function], - "getRepoInstallation": [Function], - "getSubscriptionPlanForAccount": [Function], - "getSubscriptionPlanForAccountStubbed": [Function], - "getUserInstallation": [Function], - "listAccountsForPlan": [Function], - "listAccountsForPlanStubbed": [Function], - "listAccountsUserOrOrgOnPlan": [Function], - "listAccountsUserOrOrgOnPlanStubbed": [Function], - "listInstallationReposForAuthenticatedUser": [Function], - "listInstallations": [Function], - "listInstallationsForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUser": [Function], - "listMarketplacePurchasesForAuthenticatedUserStubbed": [Function], - "listPlans": [Function], - "listPlansStubbed": [Function], - "listRepos": [Function], - "listReposAccessibleToInstallation": [Function], - "listSubscriptionsForAuthenticatedUser": [Function], - "listSubscriptionsForAuthenticatedUserStubbed": [Function], - "removeRepoFromInstallation": [Function], - "resetToken": [Function], - "revokeInstallationAccessToken": [Function], - "revokeInstallationToken": [Function], - "suspendInstallation": [Function], - "unsuspendInstallation": [Function], - }, - "auth": [Function], - "checks": Object { - "create": [Function], - "createSuite": [Function], - "get": [Function], - "getSuite": [Function], - "listAnnotations": [Function], - "listForRef": [Function], - "listForSuite": [Function], - "listSuitesForRef": [Function], - "rerequestSuite": [Function], - "setSuitesPreferences": [Function], - "update": [Function], - }, - "codeScanning": Object { - "getAlert": [Function], - "listAlertsForRepo": [Function], - }, - "codesOfConduct": Object { - "getAllCodesOfConduct": [Function], - "getConductCode": [Function], - "getForRepo": [Function], - "listConductCodes": [Function], - }, - "emojis": Object { - "get": [Function], - }, - "gists": Object { - "checkIsStarred": [Function], - "create": [Function], - "createComment": [Function], - "delete": [Function], - "deleteComment": [Function], - "fork": [Function], - "get": [Function], - "getComment": [Function], - "getRevision": [Function], - "list": [Function], - "listComments": [Function], - "listCommits": [Function], - "listForUser": [Function], - "listForks": [Function], - "listPublic": [Function], - "listPublicForUser": [Function], - "listStarred": [Function], - "star": [Function], - "unstar": [Function], - "update": [Function], - "updateComment": [Function], - }, - "git": Object { - "createBlob": [Function], - "createCommit": [Function], - "createRef": [Function], - "createTag": [Function], - "createTree": [Function], - "deleteRef": [Function], - "getBlob": [Function], - "getCommit": [Function], - "getRef": [Function], - "getTag": [Function], - "getTree": [Function], - "listMatchingRefs": [Function], - "updateRef": [Function], - }, - "gitignore": Object { - "getAllTemplates": [Function], - "getTemplate": [Function], - "listTemplates": [Function], - }, - "graphql": [Function], - "hook": [Function], - "interactions": Object { - "addOrUpdateRestrictionsForOrg": [Function], - "addOrUpdateRestrictionsForRepo": [Function], - "getRestrictionsForOrg": [Function], - "getRestrictionsForRepo": [Function], - "removeRestrictionsForOrg": [Function], - "removeRestrictionsForRepo": [Function], - "setRestrictionsForOrg": [Function], - "setRestrictionsForRepo": [Function], - }, - "issues": Object { - "addAssignees": [Function], - "addLabels": [Function], - "checkAssignee": [Function], - "checkUserCanBeAssigned": [Function], - "create": [Function], - "createComment": [Function], - "createLabel": [Function], - "createMilestone": [Function], - "deleteComment": [Function], - "deleteLabel": [Function], - "deleteMilestone": [Function], - "get": [Function], - "getComment": [Function], - "getEvent": [Function], - "getLabel": [Function], - "getMilestone": [Function], - "list": [Function], - "listAssignees": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listEvents": [Function], - "listEventsForRepo": [Function], - "listEventsForTimeline": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listLabelsForMilestone": [Function], - "listLabelsForRepo": [Function], - "listLabelsOnIssue": [Function], - "listMilestones": [Function], - "listMilestonesForRepo": [Function], - "lock": [Function], - "removeAllLabels": [Function], - "removeAssignees": [Function], - "removeLabel": [Function], - "removeLabels": [Function], - "replaceAllLabels": [Function], - "replaceLabels": [Function], - "setLabels": [Function], - "unlock": [Function], - "update": [Function], - "updateComment": [Function], - "updateLabel": [Function], - "updateMilestone": [Function], - }, - "licenses": Object { - "get": [Function], - "getAllCommonlyUsed": [Function], - "getForRepo": [Function], - "listCommonlyUsed": [Function], - }, - "log": Object { - "debug": [Function], - "error": [Function], - "info": [Function], - "warn": [Function], - }, - "markdown": Object { - "render": [Function], - "renderRaw": [Function], - }, - "meta": Object { - "get": [Function], - }, - "migrations": Object { - "cancelImport": [Function], - "deleteArchiveForAuthenticatedUser": [Function], - "deleteArchiveForOrg": [Function], - "downloadArchiveForOrg": [Function], - "getArchiveForAuthenticatedUser": [Function], - "getCommitAuthors": [Function], - "getImportProgress": [Function], - "getImportStatus": [Function], - "getLargeFiles": [Function], - "getStatusForAuthenticatedUser": [Function], - "getStatusForOrg": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listReposForOrg": [Function], - "listReposForUser": [Function], - "mapCommitAuthor": [Function], - "setLfsPreference": [Function], - "startForAuthenticatedUser": [Function], - "startForOrg": [Function], - "startImport": [Function], - "unlockRepoForAuthenticatedUser": [Function], - "unlockRepoForOrg": [Function], - "updateImport": [Function], - }, - "orgs": Object { - "addOrUpdateMembership": [Function], - "blockUser": [Function], - "checkBlockedUser": [Function], - "checkMembership": [Function], - "checkMembershipForUser": [Function], - "checkPublicMembership": [Function], - "checkPublicMembershipForUser": [Function], - "concealMembership": [Function], - "convertMemberToOutsideCollaborator": [Function], - "createHook": [Function], - "createInvitation": [Function], - "createWebhook": [Function], - "deleteHook": [Function], - "deleteWebhook": [Function], - "get": [Function], - "getHook": [Function], - "getMembership": [Function], - "getMembershipForAuthenticatedUser": [Function], - "getMembershipForUser": [Function], - "getWebhook": [Function], - "list": [Function], - "listAppInstallations": [Function], - "listBlockedUsers": [Function], - "listForAuthenticatedUser": [Function], - "listForUser": [Function], - "listHooks": [Function], - "listInstallations": [Function], - "listInvitationTeams": [Function], - "listMembers": [Function], - "listMemberships": [Function], - "listMembershipsForAuthenticatedUser": [Function], - "listOutsideCollaborators": [Function], - "listPendingInvitations": [Function], - "listPublicMembers": [Function], - "listWebhooks": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "publicizeMembership": [Function], - "removeMember": [Function], - "removeMembership": [Function], - "removeMembershipForUser": [Function], - "removeOutsideCollaborator": [Function], - "removePublicMembershipForAuthenticatedUser": [Function], - "setMembershipForUser": [Function], - "setPublicMembershipForAuthenticatedUser": [Function], - "unblockUser": [Function], - "update": [Function], - "updateHook": [Function], - "updateMembership": [Function], - "updateMembershipForAuthenticatedUser": [Function], - "updateWebhook": [Function], - }, - "paginate": [Function], - "projects": Object { - "addCollaborator": [Function], - "createCard": [Function], - "createColumn": [Function], - "createForAuthenticatedUser": [Function], - "createForOrg": [Function], - "createForRepo": [Function], - "delete": [Function], - "deleteCard": [Function], - "deleteColumn": [Function], - "get": [Function], - "getCard": [Function], - "getColumn": [Function], - "getPermissionForUser": [Function], - "listCards": [Function], - "listCollaborators": [Function], - "listColumns": [Function], - "listForOrg": [Function], - "listForRepo": [Function], - "listForUser": [Function], - "moveCard": [Function], - "moveColumn": [Function], - "removeCollaborator": [Function], - "reviewUserPermissionLevel": [Function], - "update": [Function], - "updateCard": [Function], - "updateColumn": [Function], - }, - "pulls": Object { - "checkIfMerged": [Function], - "create": [Function], - "createComment": [Function], - "createReplyForReviewComment": [Function], - "createReview": [Function], - "createReviewComment": [Function], - "createReviewCommentReply": [Function], - "createReviewRequest": [Function], - "deleteComment": [Function], - "deletePendingReview": [Function], - "deleteReviewComment": [Function], - "deleteReviewRequest": [Function], - "dismissReview": [Function], - "get": [Function], - "getComment": [Function], - "getCommentsForReview": [Function], - "getReview": [Function], - "getReviewComment": [Function], - "list": [Function], - "listComments": [Function], - "listCommentsForRepo": [Function], - "listCommentsForReview": [Function], - "listCommits": [Function], - "listFiles": [Function], - "listRequestedReviewers": [Function], - "listReviewComments": [Function], - "listReviewCommentsForRepo": [Function], - "listReviewRequests": [Function], - "listReviews": [Function], - "merge": [Function], - "removeRequestedReviewers": [Function], - "requestReviewers": [Function], - "submitReview": [Function], - "update": [Function], - "updateBranch": [Function], - "updateComment": [Function], - "updateReview": [Function], - "updateReviewComment": [Function], - }, - "rateLimit": Object { - "get": [Function], - }, - "reactions": Object { - "createForCommitComment": [Function], - "createForIssue": [Function], - "createForIssueComment": [Function], - "createForPullRequestReviewComment": [Function], - "createForTeamDiscussionCommentInOrg": [Function], - "createForTeamDiscussionInOrg": [Function], - "delete": [Function], - "deleteForCommitComment": [Function], - "deleteForIssue": [Function], - "deleteForIssueComment": [Function], - "deleteForPullRequestComment": [Function], - "deleteForTeamDiscussion": [Function], - "deleteForTeamDiscussionComment": [Function], - "deleteLegacy": [Function], - "listForCommitComment": [Function], - "listForIssue": [Function], - "listForIssueComment": [Function], - "listForPullRequestReviewComment": [Function], - "listForTeamDiscussionCommentInOrg": [Function], - "listForTeamDiscussionInOrg": [Function], - }, - "repos": Object { - "acceptInvitation": [Function], - "addAppAccessRestrictions": [Function], - "addCollaborator": [Function], - "addDeployKey": [Function], - "addProtectedBranchAdminEnforcement": [Function], - "addProtectedBranchAppRestrictions": [Function], - "addProtectedBranchRequiredSignatures": [Function], - "addProtectedBranchRequiredStatusChecksContexts": [Function], - "addProtectedBranchTeamRestrictions": [Function], - "addProtectedBranchUserRestrictions": [Function], - "addStatusCheckContexts": [Function], - "addTeamAccessRestrictions": [Function], - "addUserAccessRestrictions": [Function], - "checkCollaborator": [Function], - "checkVulnerabilityAlerts": [Function], - "compareCommits": [Function], - "createCommitComment": [Function], - "createCommitSignatureProtection": [Function], - "createCommitStatus": [Function], - "createDeployKey": [Function], - "createDeployment": [Function], - "createDeploymentStatus": [Function], - "createDispatchEvent": [Function], - "createForAuthenticatedUser": [Function], - "createFork": [Function], - "createHook": [Function], - "createInOrg": [Function], - "createOrUpdateFile": [Function], - "createOrUpdateFileContents": [Function], - "createPagesSite": [Function], - "createRelease": [Function], - "createStatus": [Function], - "createUsingTemplate": [Function], - "createWebhook": [Function], - "declineInvitation": [Function], - "delete": [Function], - "deleteAccessRestrictions": [Function], - "deleteAdminBranchProtection": [Function], - "deleteBranchProtection": [Function], - "deleteCommitComment": [Function], - "deleteCommitSignatureProtection": [Function], - "deleteDeployKey": [Function], - "deleteDeployment": [Function], - "deleteDownload": [Function], - "deleteFile": [Function], - "deleteHook": [Function], - "deleteInvitation": [Function], - "deletePagesSite": [Function], - "deletePullRequestReviewProtection": [Function], - "deleteRelease": [Function], - "deleteReleaseAsset": [Function], - "deleteWebhook": [Function], - "disableAutomatedSecurityFixes": [Function], - "disablePagesSite": [Function], - "disableVulnerabilityAlerts": [Function], - "downloadArchive": [Function], - "enableAutomatedSecurityFixes": [Function], - "enablePagesSite": [Function], - "enableVulnerabilityAlerts": [Function], - "get": [Function], - "getAccessRestrictions": [Function], - "getAdminBranchProtection": [Function], - "getAllStatusCheckContexts": [Function], - "getAllTopics": [Function], - "getAppsWithAccessToProtectedBranch": [Function], - "getArchiveLink": [Function], - "getBranch": [Function], - "getBranchProtection": [Function], - "getClones": [Function], - "getCodeFrequencyStats": [Function], - "getCollaboratorPermissionLevel": [Function], - "getCombinedStatusForRef": [Function], - "getCommit": [Function], - "getCommitActivityStats": [Function], - "getCommitComment": [Function], - "getCommitSignatureProtection": [Function], - "getCommunityProfileMetrics": [Function], - "getContent": [Function], - "getContents": [Function], - "getContributorsStats": [Function], - "getDeployKey": [Function], - "getDeployment": [Function], - "getDeploymentStatus": [Function], - "getDownload": [Function], - "getHook": [Function], - "getLatestPagesBuild": [Function], - "getLatestRelease": [Function], - "getPages": [Function], - "getPagesBuild": [Function], - "getParticipationStats": [Function], - "getProtectedBranchAdminEnforcement": [Function], - "getProtectedBranchPullRequestReviewEnforcement": [Function], - "getProtectedBranchRequiredSignatures": [Function], - "getProtectedBranchRequiredStatusChecks": [Function], - "getProtectedBranchRestrictions": [Function], - "getPullRequestReviewProtection": [Function], - "getPunchCardStats": [Function], - "getReadme": [Function], - "getRelease": [Function], - "getReleaseAsset": [Function], - "getReleaseByTag": [Function], - "getStatusChecksProtection": [Function], - "getTeamsWithAccessToProtectedBranch": [Function], - "getTopPaths": [Function], - "getTopReferrers": [Function], - "getUsersWithAccessToProtectedBranch": [Function], - "getViews": [Function], - "getWebhook": [Function], - "list": [Function], - "listAssetsForRelease": [Function], - "listBranches": [Function], - "listBranchesForHeadCommit": [Function], - "listCollaborators": [Function], - "listCommentsForCommit": [Function], - "listCommitComments": [Function], - "listCommitCommentsForRepo": [Function], - "listCommitStatusesForRef": [Function], - "listCommits": [Function], - "listContributors": [Function], - "listDeployKeys": [Function], - "listDeploymentStatuses": [Function], - "listDeployments": [Function], - "listDownloads": [Function], - "listForAuthenticatedUser": [Function], - "listForOrg": [Function], - "listForUser": [Function], - "listForks": [Function], - "listHooks": [Function], - "listInvitations": [Function], - "listInvitationsForAuthenticatedUser": [Function], - "listLanguages": [Function], - "listPagesBuilds": [Function], - "listProtectedBranchRequiredStatusChecksContexts": [Function], - "listPublic": [Function], - "listPullRequestsAssociatedWithCommit": [Function], - "listReleaseAssets": [Function], - "listReleases": [Function], - "listStatusesForRef": [Function], - "listTags": [Function], - "listTeams": [Function], - "listTopics": [Function], - "listWebhooks": [Function], - "merge": [Function], - "pingHook": [Function], - "pingWebhook": [Function], - "removeAppAccessRestrictions": [Function], - "removeBranchProtection": [Function], - "removeCollaborator": [Function], - "removeDeployKey": [Function], - "removeProtectedBranchAdminEnforcement": [Function], - "removeProtectedBranchAppRestrictions": [Function], - "removeProtectedBranchPullRequestReviewEnforcement": [Function], - "removeProtectedBranchRequiredSignatures": [Function], - "removeProtectedBranchRequiredStatusChecks": [Function], - "removeProtectedBranchRequiredStatusChecksContexts": [Function], - "removeProtectedBranchRestrictions": [Function], - "removeProtectedBranchTeamRestrictions": [Function], - "removeProtectedBranchUserRestrictions": [Function], - "removeStatusCheckContexts": [Function], - "removeStatusCheckProtection": [Function], - "removeTeamAccessRestrictions": [Function], - "removeUserAccessRestrictions": [Function], - "replaceAllTopics": [Function], - "replaceProtectedBranchAppRestrictions": [Function], - "replaceProtectedBranchRequiredStatusChecksContexts": [Function], - "replaceProtectedBranchTeamRestrictions": [Function], - "replaceProtectedBranchUserRestrictions": [Function], - "replaceTopics": [Function], - "requestPageBuild": [Function], - "requestPagesBuild": [Function], - "retrieveCommunityProfileMetrics": [Function], - "setAdminBranchProtection": [Function], - "setAppAccessRestrictions": [Function], - "setStatusCheckContexts": [Function], - "setTeamAccessRestrictions": [Function], - "setUserAccessRestrictions": [Function], - "testPushHook": [Function], - "testPushWebhook": [Function], - "transfer": [Function], - "update": [Function], - "updateBranchProtection": [Function], - "updateCommitComment": [Function], - "updateHook": [Function], - "updateInformationAboutPagesSite": [Function], - "updateInvitation": [Function], - "updateProtectedBranchPullRequestReviewEnforcement": [Function], - "updateProtectedBranchRequiredStatusChecks": [Function], - "updatePullRequestReviewProtection": [Function], - "updateRelease": [Function], - "updateReleaseAsset": [Function], - "updateStatusCheckPotection": [Function], - "updateWebhook": [Function], - "uploadReleaseAsset": [Function], - }, - "request": [Function], - "search": Object { - "code": [Function], - "commits": [Function], - "issuesAndPullRequests": [Function], - "labels": [Function], - "repos": [Function], - "topics": [Function], - "users": [Function], - }, - "teams": Object { - "addOrUpdateMembershipForUserInOrg": [Function], - "addOrUpdateMembershipInOrg": [Function], - "addOrUpdateProjectInOrg": [Function], - "addOrUpdateProjectPermissionsInOrg": [Function], - "addOrUpdateRepoInOrg": [Function], - "addOrUpdateRepoPermissionsInOrg": [Function], - "checkManagesRepoInOrg": [Function], - "checkPermissionsForProjectInOrg": [Function], - "checkPermissionsForRepoInOrg": [Function], - "create": [Function], - "createDiscussionCommentInOrg": [Function], - "createDiscussionInOrg": [Function], - "deleteDiscussionCommentInOrg": [Function], - "deleteDiscussionInOrg": [Function], - "deleteInOrg": [Function], - "getByName": [Function], - "getDiscussionCommentInOrg": [Function], - "getDiscussionInOrg": [Function], - "getMembershipForUserInOrg": [Function], - "getMembershipInOrg": [Function], - "list": [Function], - "listChildInOrg": [Function], - "listDiscussionCommentsInOrg": [Function], - "listDiscussionsInOrg": [Function], - "listForAuthenticatedUser": [Function], - "listMembersInOrg": [Function], - "listPendingInvitationsInOrg": [Function], - "listProjectsInOrg": [Function], - "listReposInOrg": [Function], - "removeMembershipForUserInOrg": [Function], - "removeMembershipInOrg": [Function], - "removeProjectInOrg": [Function], - "removeRepoInOrg": [Function], - "reviewProjectInOrg": [Function], - "updateDiscussionCommentInOrg": [Function], - "updateDiscussionInOrg": [Function], - "updateInOrg": [Function], - }, - "users": Object { - "addEmailForAuthenticated": [Function], - "addEmails": [Function], - "block": [Function], - "checkBlocked": [Function], - "checkFollowing": [Function], - "checkFollowingForUser": [Function], - "checkPersonIsFollowedByAuthenticated": [Function], - "createGpgKey": [Function], - "createGpgKeyForAuthenticated": [Function], - "createPublicKey": [Function], - "createPublicSshKeyForAuthenticated": [Function], - "deleteEmailForAuthenticated": [Function], - "deleteEmails": [Function], - "deleteGpgKey": [Function], - "deleteGpgKeyForAuthenticated": [Function], - "deletePublicKey": [Function], - "deletePublicSshKeyForAuthenticated": [Function], - "follow": [Function], - "getAuthenticated": [Function], - "getByUsername": [Function], - "getContextForUser": [Function], - "getGpgKey": [Function], - "getGpgKeyForAuthenticated": [Function], - "getPublicKey": [Function], - "getPublicSshKeyForAuthenticated": [Function], - "list": [Function], - "listBlocked": [Function], - "listBlockedByAuthenticated": [Function], - "listEmails": [Function], - "listEmailsForAuthenticated": [Function], - "listFollowedByAuthenticated": [Function], - "listFollowersForAuthenticatedUser": [Function], - "listFollowersForUser": [Function], - "listFollowingForAuthenticatedUser": [Function], - "listFollowingForUser": [Function], - "listGpgKeys": [Function], - "listGpgKeysForAuthenticated": [Function], - "listGpgKeysForUser": [Function], - "listPublicEmails": [Function], - "listPublicEmailsForAuthenticated": [Function], - "listPublicKeys": [Function], - "listPublicKeysForUser": [Function], - "listPublicSshKeysForAuthenticated": [Function], - "setPrimaryEmailVisibilityForAuthenticated": [Function], - "togglePrimaryEmailVisibility": [Function], - "unblock": [Function], - "unfollow": [Function], - "updateAuthenticated": [Function], - }, - }, - }, - "promptForCommitMsg": [Function], - }, - }, - "gitHubOAuthService": GitHubOAuthService { - "junoClient": JunoClient { - "cachedPinnedRepos": [Function], - }, - "token": [Function], - }, - "inMemoryContentProvider": InMemoryContentProvider { - "params": Object { - "memory://schema-analyzer-component-notebook.ipynb": Object { - "content": Object { - "content": Object { - "cells": Array [ - Object { - "cell_type": "code", - "execution_count": 0, - "metadata": Object {}, - "outputs": Array [], - "source": "", - }, - ], - "metadata": Object { - "kernelspec": Object { - "displayName": "Mongo", - "language": "mongocli", - "name": "mongo", - }, - "language_info": Object { - "file_extension": "ipynb", - "mimetype": "application/json", - "name": "mongo", - "version": "1.0", - }, - }, - "nbformat": 4, - "nbformat_minor": 4, - }, - "created": "", - "format": "json", - "last_modified": "", - "mimetype": "application/x-ipynb+json", - "name": "schema-analyzer-component-notebook.ipynb", - "path": "memory://schema-analyzer-component-notebook.ipynb", - "type": "notebook", - "writable": true, - }, - "readonly": true, - }, - }, - }, - "junoClient": JunoClient { - "cachedPinnedRepos": [Function], - }, - "onGitHubClientError": [Function], - "params": Object { - "container": [Circular], - "refreshCommandBarButtons": [Function], - "refreshNotebookList": [Function], - "resourceTree": ResourceTreeAdapter { - "container": [Circular], - "copyNotebook": [Function], - "parameters": [Function], - }, - }, - "promptForCommitMsg": [Function], - }, "onRefreshDatabasesKeyPress": [Function], "onRefreshResourcesClick": [Function], "phoenixClient": PhoenixClient { diff --git a/src/Explorer/Controls/SmartUi/SmartUiComponent.tsx b/src/Explorer/Controls/SmartUi/SmartUiComponent.tsx index be6b6fdb1..fdd8ac3b1 100644 --- a/src/Explorer/Controls/SmartUi/SmartUiComponent.tsx +++ b/src/Explorer/Controls/SmartUi/SmartUiComponent.tsx @@ -181,7 +181,7 @@ export class SmartUiComponent extends React.Component {labelElement} - + {this.props.getTranslation(description.textTKey)}{" "} {description.link && ( diff --git a/src/Explorer/Controls/SmartUi/__snapshots__/SmartUiComponent.test.tsx.snap b/src/Explorer/Controls/SmartUi/__snapshots__/SmartUiComponent.test.tsx.snap index 5dec11a42..95895aad0 100644 --- a/src/Explorer/Controls/SmartUi/__snapshots__/SmartUiComponent.test.tsx.snap +++ b/src/Explorer/Controls/SmartUi/__snapshots__/SmartUiComponent.test.tsx.snap @@ -27,6 +27,11 @@ exports[`SmartUiComponent disable all inputs 1`] = ` this is an example description text. @@ -341,6 +346,11 @@ exports[`SmartUiComponent should render and honor input's hidden, disabled state this is an example description text. diff --git a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx index 54078f936..7ee64287d 100644 --- a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx +++ b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx @@ -16,6 +16,7 @@ export interface ThroughputInputProps { isSharded: boolean; isFreeTier: boolean; showFreeTierExceedThroughputTooltip: boolean; + isQuickstart?: boolean; setThroughputValue: (throughput: number) => void; setIsAutoscale: (isAutoscale: boolean) => void; setIsThroughputCapExceeded: (isThroughputCapExceeded: boolean) => void; @@ -226,6 +227,7 @@ export const ThroughputInput: FunctionComponent = ({ ) => this.onNodeClick(event, node)} onKeyPress={(event: React.KeyboardEvent) => this.onNodeKeyPress(event, node)} role="treeitem" + id={node.id} >
{ + public async populateContainerAsync(collection: ViewModels.Collection): Promise { if (!collection) { throw new Error("No container to populate"); } - const promises: Q.Promise[] = []; if (userContext.apiType === "Gremlin") { // For Gremlin, all queries are executed sequentially, because some queries might be dependent on other queries diff --git a/src/Explorer/Explorer.tsx b/src/Explorer/Explorer.tsx index 93176266d..5b9fb2e90 100644 --- a/src/Explorer/Explorer.tsx +++ b/src/Explorer/Explorer.tsx @@ -10,7 +10,7 @@ import shallow from "zustand/shallow"; import { AuthType } from "../AuthType"; import { BindingHandlersRegisterer } from "../Bindings/BindingHandlersRegisterer"; import * as Constants from "../Common/Constants"; -import { Areas, ConnectionStatusType, HttpStatusCodes, Notebook } from "../Common/Constants"; +import { Areas, ConnectionStatusType, HttpStatusCodes, Notebook, PoolIdType } from "../Common/Constants"; import { readCollection } from "../Common/dataAccess/readCollection"; import { readDatabases } from "../Common/dataAccess/readDatabases"; import { getErrorMessage, getErrorStack, handleError } from "../Common/ErrorHandlingUtils"; @@ -310,7 +310,7 @@ export default class Explorer { db1.id().localeCompare(db2.id()) ); useDatabases.setState({ databases: updatedDatabases }); - await this.refreshAndExpandNewDatabases(deltaDatabases.toAdd, currentDatabases); + await this.refreshAndExpandNewDatabases(deltaDatabases.toAdd, updatedDatabases); } catch (error) { const errorMessage = getErrorMessage(error); TelemetryProcessor.traceFailure( @@ -369,6 +369,7 @@ export default class Explorer { ) { const provisionData: IProvisionData = { cosmosEndpoint: userContext.databaseAccount.properties.documentEndpoint, + poolId: PoolIdType.DefaultPoolId, }; const connectionStatus: ContainerConnectionInfo = { status: ConnectionStatusType.Connecting, @@ -381,11 +382,8 @@ export default class Explorer { }); useNotebook.getState().setIsAllocating(true); connectionInfo = await this.phoenixClient.allocateContainer(provisionData); - if (connectionInfo.status !== HttpStatusCodes.OK) { - throw new Error(`Received status code: ${connectionInfo?.status}`); - } - if (!connectionInfo?.data?.notebookServerUrl) { - throw new Error(`NotebookServerUrl is invalid!`); + if (!connectionInfo?.data?.phoenixServiceUrl) { + throw new Error(`PhoenixServiceUrl is invalid!`); } await this.setNotebookInfo(connectionInfo, connectionStatus); TelemetryProcessor.traceSuccess(Action.PhoenixConnection, { @@ -394,6 +392,7 @@ export default class Explorer { } catch (error) { TelemetryProcessor.traceFailure(Action.PhoenixConnection, { dataExplorerArea: Areas.Notebook, + status: error.status, error: getErrorMessage(error), errorStack: getErrorStack(error), }); @@ -435,8 +434,8 @@ export default class Explorer { notebookServerEndpoint: (validateEndpoint(userContext.features.notebookServerUrl, allowedNotebookServerUrls) && userContext.features.notebookServerUrl) || - connectionInfo.data.notebookServerUrl, - authToken: userContext.features.notebookServerToken || connectionInfo.data.notebookAuthToken, + connectionInfo.data.phoenixServiceUrl, + authToken: userContext.features.notebookServerToken || connectionInfo.data.authToken, forwardingId: connectionInfo.data.forwardingId, }); this.notebookManager?.notebookClient @@ -535,8 +534,8 @@ export default class Explorer { if (connectionInfo?.status !== HttpStatusCodes.OK) { throw new Error(`Reset Workspace: Received status code- ${connectionInfo?.status}`); } - if (!connectionInfo?.data?.notebookServerUrl) { - throw new Error(`Reset Workspace: NotebookServerUrl is invalid!`); + if (!connectionInfo?.data?.phoenixServiceUrl) { + throw new Error(`Reset Workspace: PhoenixServiceUrl is invalid!`); } if (useNotebook.getState().isPhoenixNotebooks) { await this.setNotebookInfo(connectionInfo, connectionStatus); @@ -1167,7 +1166,12 @@ export default class Explorer { } } - public async onNewCollectionClicked(databaseId?: string): Promise { + public async onNewCollectionClicked( + options: { + databaseId?: string; + isQuickstart?: boolean; + } = {} + ): Promise { if (userContext.apiType === "Cassandra") { useSidePanel .getState() @@ -1182,7 +1186,7 @@ export default class Explorer { : await useDatabases.getState().loadDatabaseOffers(); useSidePanel .getState() - .openSidePanel("New " + getCollectionName(), ); + .openSidePanel("New " + getCollectionName(), ); } } diff --git a/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx b/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx index 3dc7d158e..8ea630a72 100644 --- a/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx +++ b/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx @@ -339,6 +339,7 @@ function createNewSQLQueryButton(selectedNodeState: SelectedNodeState): CommandB if (userContext.apiType === "SQL" || userContext.apiType === "Gremlin") { const label = "New SQL Query"; return { + id: "newQueryBtn", iconSrc: AddSqlQueryIcon, iconAlt: label, onCommandClick: () => { @@ -353,6 +354,7 @@ function createNewSQLQueryButton(selectedNodeState: SelectedNodeState): CommandB } else if (userContext.apiType === "Mongo") { const label = "New Query"; return { + id: "newQueryBtn", iconSrc: AddSqlQueryIcon, iconAlt: label, onCommandClick: () => { @@ -439,6 +441,7 @@ function applyNotebooksTemporarilyDownStyle(buttonProps: CommandButtonComponentP function createNewNotebookButton(container: Explorer): CommandButtonComponentProps { const label = "New Notebook"; return { + id: "newNotebookBtn", iconSrc: NewNotebookIcon, iconAlt: label, onCommandClick: () => container.onNewNotebookClicked(), diff --git a/src/Explorer/Notebook/NotebookContainerClient.ts b/src/Explorer/Notebook/NotebookContainerClient.ts index 15e283915..53ddc44ff 100644 --- a/src/Explorer/Notebook/NotebookContainerClient.ts +++ b/src/Explorer/Notebook/NotebookContainerClient.ts @@ -5,7 +5,7 @@ import { useDialog } from "Explorer/Controls/Dialog"; import promiseRetry, { AbortError } from "p-retry"; import { PhoenixClient } from "Phoenix/PhoenixClient"; import * as Constants from "../../Common/Constants"; -import { ConnectionStatusType, HttpHeaders, HttpStatusCodes, Notebook } from "../../Common/Constants"; +import { ConnectionStatusType, HttpHeaders, HttpStatusCodes, Notebook, PoolIdType } from "../../Common/Constants"; import { getErrorMessage } from "../../Common/ErrorHandlingUtils"; import * as Logger from "../../Common/Logger"; import * as DataModels from "../../Contracts/DataModels"; @@ -154,6 +154,7 @@ export class NotebookContainerClient { if (useNotebook.getState().isPhoenixNotebooks) { const provisionData: IProvisionData = { cosmosEndpoint: userContext.databaseAccount.properties.documentEndpoint, + poolId: PoolIdType.DefaultPoolId, }; return await this.phoenixClient.resetContainer(provisionData); } diff --git a/src/Explorer/Notebook/SchemaAnalyzer/SchemaAnalyzer.tsx b/src/Explorer/Notebook/SchemaAnalyzer/SchemaAnalyzer.tsx index cf9810f38..b0bfdb674 100644 --- a/src/Explorer/Notebook/SchemaAnalyzer/SchemaAnalyzer.tsx +++ b/src/Explorer/Notebook/SchemaAnalyzer/SchemaAnalyzer.tsx @@ -5,6 +5,7 @@ import Immutable from "immutable"; import * as React from "react"; import { connect } from "react-redux"; import { Dispatch } from "redux"; +import * as Logger from "../../../Common/Logger"; import { Action } from "../../../Shared/Telemetry/TelemetryConstants"; import { traceFailure, traceStart, traceSuccess } from "../../../Shared/Telemetry/TelemetryProcessor"; import loadTransform from "../NotebookComponent/loadTransform"; @@ -100,6 +101,7 @@ export class SchemaAnalyzer extends React.Component = create((set, get) => ({ containerStatus: { status: undefined, durationLeftInMinutes: undefined, - notebookServerInfo: undefined, + phoenixServerInfo: undefined, }, isPhoenixNotebooks: undefined, isPhoenixFeatures: undefined, @@ -296,22 +296,30 @@ export const useNotebook: UseStore = create((set, get) => ({ useNotebook.getState().setContainerStatus({ status: undefined, durationLeftInMinutes: undefined, - notebookServerInfo: undefined, + phoenixServerInfo: undefined, }); }, setIsRefreshed: (isRefreshed: boolean) => set({ isRefreshed }), setContainerStatus: (containerStatus: ContainerInfo) => set({ containerStatus }), getPhoenixStatus: async () => { if (get().isPhoenixNotebooks === undefined || get().isPhoenixFeatures === undefined) { - let isPhoenix = false; - if (userContext.features.phoenixNotebooks || userContext.features.phoenixFeatures) { - const phoenixClient = new PhoenixClient(); - isPhoenix = isPublicInternetAccessAllowed() && (await phoenixClient.isDbAcountWhitelisted()); + let isPhoenixNotebooks = false; + let isPhoenixFeatures = false; + + const isPublicInternetAllowed = isPublicInternetAccessAllowed(); + const phoenixClient = new PhoenixClient(); + const dbAccountAllowedInfo = await phoenixClient.getDbAccountAllowedStatus(); + + if (dbAccountAllowedInfo.status === HttpStatusCodes.OK) { + if (dbAccountAllowedInfo?.type === PhoenixErrorType.PhoenixFlightFallback) { + isPhoenixNotebooks = isPublicInternetAllowed && userContext.features.phoenixNotebooks; + isPhoenixFeatures = isPublicInternetAllowed && userContext.features.phoenixFeatures; + } else { + isPhoenixNotebooks = isPhoenixFeatures = isPublicInternetAllowed; + } + } else { + isPhoenixNotebooks = isPhoenixFeatures = false; } - - const isPhoenixNotebooks = userContext.features.phoenixNotebooks && isPhoenix; - const isPhoenixFeatures = userContext.features.phoenixFeatures && isPhoenix; - set({ isPhoenixNotebooks: isPhoenixNotebooks }); set({ isPhoenixFeatures: isPhoenixFeatures }); } diff --git a/src/Explorer/Panes/AddCollectionPanel.test.tsx b/src/Explorer/Panes/AddCollectionPanel.test.tsx new file mode 100644 index 000000000..0e87c61de --- /dev/null +++ b/src/Explorer/Panes/AddCollectionPanel.test.tsx @@ -0,0 +1,15 @@ +import { shallow } from "enzyme"; +import React from "react"; +import Explorer from "../Explorer"; +import { AddCollectionPanel } from "./AddCollectionPanel"; + +const props = { + explorer: new Explorer(), +}; + +describe("AddCollectionPanel", () => { + it("should render Default properly", () => { + const wrapper = shallow(); + expect(wrapper).toMatchSnapshot(); + }); +}); diff --git a/src/Explorer/Panes/AddCollectionPanel.tsx b/src/Explorer/Panes/AddCollectionPanel.tsx index 05b603f5a..d2dfa80ba 100644 --- a/src/Explorer/Panes/AddCollectionPanel.tsx +++ b/src/Explorer/Panes/AddCollectionPanel.tsx @@ -8,8 +8,10 @@ import { IconButton, IDropdownOption, Link, + ProgressIndicator, Separator, Stack, + TeachingBubble, Text, TooltipHost, } from "@fluentui/react"; @@ -20,6 +22,7 @@ import { configContext, Platform } from "ConfigContext"; import * as DataModels from "Contracts/DataModels"; import { SubscriptionType } from "Contracts/SubscriptionType"; import { useSidePanel } from "hooks/useSidePanel"; +import { useTeachingBubble } from "hooks/useTeachingBubble"; import React from "react"; import { CollectionCreation } from "Shared/Constants"; import { Action } from "Shared/Telemetry/TelemetryConstants"; @@ -30,6 +33,7 @@ import { isCapabilityEnabled, isServerlessAccount } from "Utils/CapabilityUtils" import { getUpsellMessage } from "Utils/PricingUtils"; import { CollapsibleSectionComponent } from "../Controls/CollapsiblePanel/CollapsibleSectionComponent"; import { ThroughputInput } from "../Controls/ThroughputInput/ThroughputInput"; +import { ContainerSampleGenerator } from "../DataSamples/ContainerSampleGenerator"; import Explorer from "../Explorer"; import { useDatabases } from "../useDatabases"; import { PanelFooterComponent } from "./PanelFooterComponent"; @@ -39,6 +43,7 @@ import { PanelLoadingScreen } from "./PanelLoadingScreen"; export interface AddCollectionPanelProps { explorer: Explorer; databaseId?: string; + isQuickstart?: boolean; } const SharedDatabaseDefault: DataModels.IndexingPolicy = { @@ -93,6 +98,7 @@ export interface AddCollectionPanelState { showErrorDetails: boolean; isExecuting: boolean; isThroughputCapExceeded: boolean; + teachingBubbleStep: number; } export class AddCollectionPanel extends React.Component { @@ -107,11 +113,11 @@ export class AddCollectionPanel extends React.Component )} + {this.state.teachingBubbleStep === 1 && ( + this.setState({ teachingBubbleStep: 2 }) }} + secondaryButtonProps={{ text: "Cancel", onClick: () => this.setState({ teachingBubbleStep: 0 }) }} + onDismiss={() => this.setState({ teachingBubbleStep: 0 })} + footerContent="Step 1 of 4" + > + + + Database is the parent of a container. You can create a new database or use an existing one. In this + tutorial we are creating a new database named SampleDB. + + + Learn more about resources. + + + + )} + + {this.state.teachingBubbleStep === 2 && ( + this.setState({ teachingBubbleStep: 3 }) }} + secondaryButtonProps={{ text: "Previous", onClick: () => this.setState({ teachingBubbleStep: 1 }) }} + onDismiss={() => this.setState({ teachingBubbleStep: 0 })} + footerContent="Step 2 of 4" + > + + + Cosmos DB recommends sharing throughput across database. Autoscale will give you a flexible amount of + throughput based on the max RU/s set (Request Units). + + + Learn more about RU/s. + + + + )} + + {this.state.teachingBubbleStep === 3 && ( + this.setState({ teachingBubbleStep: 4 }) }} + secondaryButtonProps={{ text: "Previous", onClick: () => this.setState({ teachingBubbleStep: 2 }) }} + onDismiss={() => this.setState({ teachingBubbleStep: 0 })} + footerContent="Step 3 of 4" + > + Name your container + + )} + + {this.state.teachingBubbleStep === 4 && ( + { + this.setState({ teachingBubbleStep: 5 }); + this.submit(); + }, + }} + secondaryButtonProps={{ text: "Previous", onClick: () => this.setState({ teachingBubbleStep: 2 }) }} + onDismiss={() => this.setState({ teachingBubbleStep: 0 })} + footerContent="Step 4 of 4" + > + Last step - you will need to define a partition key for your collection. /address was chosen for this + particular example. A good partition key should have a wide range of possible value + + )} +
@@ -161,63 +192,53 @@ export class SplashScreen extends React.Component { * public for testing purposes */ public createMainItems(): SplashScreenItem[] { - const dataSampleUtil = this.createDataSampleUtil(); + const heroes: SplashScreenItem[] = []; - if (userContext.features.enableNewQuickstart) { + if (userContext.apiType === "SQL" || userContext.apiType === "Mongo") { const launchQuickstartBtn = { + id: "quickstartDescription", iconSrc: QuickStartIcon, title: "Launch quick start", description: "Launch a quick start tutorial to get started with sample data", - // TODO: replace onClick function - onClick: () => 1, + showLinkIcon: userContext.apiType === "Mongo", + onClick: () => { + userContext.apiType === "Mongo" + ? window.open("http://aka.ms/mongodbquickstart", "_blank") + : this.container.onNewCollectionClicked({ isQuickstart: true }); + traceOpen(Action.LaunchQuickstart, { apiType: userContext.apiType }); + }, }; - - const newContainerBtn = { - iconSrc: ContainersIcon, - title: `New ${getCollectionName()}`, - description: "Create a new container for storage and throughput", - onClick: () => this.container.onNewCollectionClicked(), + heroes.push(launchQuickstartBtn); + } else if (useNotebook.getState().isPhoenixNotebooks) { + const newNotebookBtn = { + iconSrc: NotebookColorIcon, + title: "New notebook", + description: "Visualize your data stored in Azure Cosmos DB", + onClick: () => this.container.onNewNotebookClicked(), }; - - const connectBtn = { - iconSrc: ConnectIcon, - title: "Connect", - description: "Prefer using your own choice of tooling? Find the connection string you need to connect", - // TODO: replace onClick function - onClick: () => 2, - }; - - return [launchQuickstartBtn, newContainerBtn, connectBtn]; - } else { - const heroes: SplashScreenItem[] = []; - - if (dataSampleUtil.isSampleContainerCreationSupported()) { - heroes.push({ - iconSrc: SampleIcon, - title: "Start with Sample", - description: "Get started with a sample provided by Cosmos DB", - onClick: () => dataSampleUtil.createSampleContainerAsync(), - }); - } - - heroes.push({ - iconSrc: NewContainerIcon, - title: `New ${getCollectionName()}`, - description: "Create a new container for storage and throughput", - onClick: () => this.container.onNewCollectionClicked(), - }); - - if (useNotebook.getState().isPhoenixNotebooks) { - heroes.push({ - iconSrc: NewNotebookIcon, - title: "New Notebook", - description: "Create a notebook to start querying, visualizing, and modeling your data", - onClick: () => this.container.onNewNotebookClicked(), - }); - } - - return heroes; + heroes.push(newNotebookBtn); } + + const newContainerBtn = { + iconSrc: ContainersIcon, + title: `New ${getCollectionName()}`, + description: "Create a new container for storage and throughput", + onClick: () => { + this.container.onNewCollectionClicked(); + traceOpen(Action.NewContainerHomepage, { apiType: userContext.apiType }); + }, + }; + heroes.push(newContainerBtn); + + const connectBtn = { + iconSrc: ConnectIcon, + title: "Connect", + description: "Prefer using your own choice of tooling? Find the connection string you need to connect", + onClick: () => useTabs.getState().openAndActivateConnectTab(), + }; + heroes.push(connectBtn); + + return heroes; } private createCommonTaskItems(): SplashScreenItem[] { @@ -312,9 +333,9 @@ export class SplashScreen extends React.Component { private decorateOpenCollectionActivity({ databaseId, collectionId }: MostRecentActivity.OpenCollectionItem) { return { - iconSrc: NotebookIcon, + iconSrc: CollectionIcon, title: collectionId, - description: "Data", + description: getCollectionName(), onClick: () => { const collection = useDatabases.getState().findCollection(databaseId, collectionId); collection?.openTab(); @@ -325,7 +346,7 @@ export class SplashScreen extends React.Component { private decorateOpenNotebookActivity({ name, path }: MostRecentActivity.OpenNotebookItem) { return { info: path, - iconSrc: CollectionIcon, + iconSrc: NotebookIcon, title: name, description: "Notebook", onClick: () => { @@ -381,84 +402,123 @@ export class SplashScreen extends React.Component { } } - private getNotebookItems(): JSX.Element { - return ( - - - - Notebook - Easy to develop - - - - Notebook - Enterprise ready - - - - Notebook - Cost effective - - - ); - } - - private getCommonTasksItems(): JSX.Element { - const commonTaskItems = this.createCommonTaskItems(); - return ( -
    - {commonTaskItems.map((item) => ( -
  • this.onSplashScreenItemKeyPress(event, item.onClick)} - tabIndex={0} - role="button" - > - - - {item.title} - -
  • - ))} -
- ); - } - private top3Items(): JSX.Element { + let items: { link: string; title: string; description: string }[]; + switch (userContext.apiType) { + case "SQL": + items = [ + { + link: "https://aka.ms/msl-modeling-partitioning-2", + title: "Advanced Modeling Patterns", + description: "Learn advanced strategies to optimize your database.", + }, + { + link: "https://aka.ms/msl-modeling-partitioning-1", + title: "Partitioning Best Practices", + description: "Learn to apply data model and partitioning strategies.", + }, + { + link: "https://aka.ms/msl-resource-planning", + title: "Plan Your Resource Requirements", + description: "Get to know the different configuration choices.", + }, + ]; + break; + case "Mongo": + items = [ + { + link: "https://aka.ms/mongodbintro", + title: "What is the MongoDB API?", + description: "Understand the Cosmos DB API for MongoDB and its features.", + }, + { + link: "https://aka.ms/mongodbfeaturesupport", + title: "Features and Syntax", + description: "Discover the advantages and features", + }, + { + link: "https://aka.ms/mongodbpremigration", + title: "Migrate Your Data", + description: "Pre-migration steps for moving data", + }, + ]; + break; + case "Cassandra": + items = [ + { + link: "https://aka.ms/cassandrajava", + title: "Build a Java App", + description: "Create a Java app using an SDK.", + }, + { + link: "https://aka.ms/cassandrapartitioning", + title: "Partitioning Best Practices", + description: "Learn how partitioning works.", + }, + { + link: "https://aka.ms/cassandraRu", + title: "Request Units (RUs)", + description: "Understand RU charges.", + }, + ]; + break; + case "Gremlin": + items = [ + { + link: "https://aka.ms/Graphdatamodeling", + title: "Data Modeling", + description: "Graph data modeling recommendations", + }, + { + link: "https://aka.ms/graphpartitioning", + title: "Partitioning Best Practices", + description: "Learn how partitioning works", + }, + { + link: "https://aka.ms/graphapiquery", + title: "Query Data", + description: "Querying data with Gremlin", + }, + ]; + break; + case "Tables": + items = [ + { + link: "https://aka.ms/tableintro", + title: "What is the Table API?", + description: "Understand the Table API in Cosmos DB and its features", + }, + { + link: "https://aka.ms/tableimport", + title: "Migrate your data", + description: "Learn how to migrate your data", + }, + { + link: "https://aka.ms/tablefaq", + title: "Table API FAQs", + description: "Common questions about the Table API", + }, + ]; + break; + } return ( - - - - Advanced Modeling Patterns - - + {items.map((item, i) => ( + + + traceOpen(Action.Top3ItemsClicked, { item: i + 1, apiType: userContext.apiType })} + href={item.link} + target="_blank" + style={{ marginRight: 5 }} + > + {item.title} + + + + {item.description} - - Learn advanced strategies for managing relationships between data entities to optimize your database. - - - - - - Partitioning Best Practices - - - - - Learn to apply data model and partitioning strategies to support an efficient and scalable NoSQL database. - - - - - - Plan Your Resource Requirements - - - - - Familiarize yourself with the various configuration options for a new Azure Cosmos DB SQL API account. - - + ))} ); } @@ -471,13 +531,15 @@ export class SplashScreen extends React.Component {
    {recentItems.map((item, index) => (
  • - - - - {item.title} - -
    {item.description}
    -
    + + + + + {item.title} + + + {item.description} +
  • ))}
@@ -487,67 +549,125 @@ export class SplashScreen extends React.Component { } private getLearningResourceItems(): JSX.Element { + let items: { link: string; title: string; description: string }[]; + switch (userContext.apiType) { + case "SQL": + items = [ + { + link: "https://aka.ms/msl-sdk-connect", + title: "Get Started using an SDK", + description: "Learn about the Azure Cosmos DB SDK.", + }, + { + link: "https://aka.ms/msl-complex-queries", + title: "Master Complex Queries", + description: "Learn how to author complex queries.", + }, + { + link: "https://aka.ms/msl-move-data", + title: "Migrate Your Data", + description: "Migrate data using Azure services and open-source solutions.", + }, + ]; + break; + case "Mongo": + items = [ + { + link: "https://aka.ms/mongonodejs", + title: "Build an app with Node.js", + description: "Create a Node.js app.", + }, + { + link: "https://aka.ms/mongopython", + title: "Getting Started Guide", + description: "Learn the basics to get started.", + }, + { + link: "http://aka.ms/mongodotnet", + title: "Build a web API", + description: "Create a web API with the.NET SDK.", + }, + ]; + break; + case "Cassandra": + items = [ + { + link: "https://aka.ms/cassandracontainer", + title: "Create a Container", + description: "Get to know the create a container options.", + }, + { + link: "https://aka.ms/cassandraserverdiagnostics", + title: "Run Server Diagnostics", + description: "Learn how to run server diagnostics.", + }, + { + link: "https://aka.ms/Cassandrathroughput", + title: "Provision Throughput", + description: "Learn how to configure throughput.", + }, + ]; + break; + case "Gremlin": + items = [ + { + link: "https://aka.ms/graphquickstart", + title: "Get Started ", + description: "Create, query, and traverse using the Gremlin console", + }, + { + link: "https://aka.ms/graphimport", + title: "Import Graph Data", + description: "Learn Bulk ingestion data using BulkExecutor", + }, + { + link: "https://aka.ms/graphoptimize", + title: "Optimize your Queries", + description: "Learn how to evaluate your Gremlin queries", + }, + ]; + break; + case "Tables": + items = [ + { + link: "https://aka.ms/tabledotnet", + title: "Build a .NET App", + description: "How to access Table API from a .NET app.", + }, + { + link: "https://aka.ms/Tablejava", + title: "Build a Java App", + description: "Create a Table API app with Java SDK ", + }, + { + link: "https://aka.ms/tablenodejs", + title: "Build a Node.js App", + description: "Create a Table API app with Node.js SDK", + }, + ]; + break; + } return ( - - - - Get Started using th SQL API with the SDK - - + {items.map((item, i) => ( + + + + traceOpen(Action.LearningResourcesClicked, { item: i + 1, apiType: userContext.apiType }) + } + href={item.link} + target="_blank" + style={{ marginRight: 5 }} + > + {item.title} + + + + {item.description} - Learn about the Azure Cosmos DB SDK, then download and use in a .NET application. - - - - - Master Complex Queries - - - - Learn how to author complex queries using cross-products and correlated subqueries. - - - - - Migrate Your Data - - - - - Migrate data into and out of Azure Cosmos DB SQL API using Azure services and open-source solutions. - - + ))} ); } - - private getTipItems(): JSX.Element { - const tipsItems = this.createTipsItems(); - - return ( -
    - {tipsItems.map((item) => ( -
  • this.onSplashScreenItemKeyPress(event, item.onClick)} - tabIndex={0} - role="link" - > -
    - {item.title} -
    -
    {item.description}
    -
  • - ))} -
  • - - {SplashScreen.seeMoreItemTitle} - -
  • -
- ); - } } diff --git a/src/Explorer/Tabs/ConnectTab.tsx b/src/Explorer/Tabs/ConnectTab.tsx new file mode 100644 index 000000000..63304151b --- /dev/null +++ b/src/Explorer/Tabs/ConnectTab.tsx @@ -0,0 +1,212 @@ +import { IconButton, ITextFieldStyles, Pivot, PivotItem, PrimaryButton, Stack, Text, TextField } from "@fluentui/react"; +import { handleError } from "Common/ErrorHandlingUtils"; +import { sendMessage } from "Common/MessageHandler"; +import { MessageTypes } from "Contracts/ExplorerContracts"; +import React, { useEffect, useState } from "react"; +import { userContext } from "UserContext"; +import { listKeys, listReadOnlyKeys } from "Utils/arm/generatedClients/cosmos/databaseAccounts"; +import { + DatabaseAccountListKeysResult, + DatabaseAccountListReadOnlyKeysResult, +} from "Utils/arm/generatedClients/cosmos/types"; + +export const ConnectTab: React.FC = (): JSX.Element => { + const [primaryMasterKey, setPrimaryMasterKey] = useState(""); + const [secondaryMasterKey, setSecondaryMasterKey] = useState(""); + const [primaryReadonlyMasterKey, setPrimaryReadonlyMasterKey] = useState(""); + const [secondaryReadonlyMasterKey, setSecondaryReadonlyMasterKey] = useState(""); + const uri: string = userContext.databaseAccount.properties?.documentEndpoint; + const primaryConnectionStr = `AccountEndpoint=${uri};AccountKey=${primaryMasterKey}`; + const secondaryConnectionStr = `AccountEndpoint=${uri};AccountKey=${secondaryMasterKey}`; + const primaryReadonlyConnectionStr = `AccountEndpoint=${uri};AccountKey=${primaryReadonlyMasterKey}`; + const secondaryReadonlyConnectionStr = `AccountEndpoint=${uri};AccountKey=${secondaryReadonlyMasterKey}`; + + useEffect(() => { + fetchKeys(); + }, []); + + const fetchKeys = async (): Promise => { + try { + if (userContext.hasWriteAccess) { + const listKeysResult: DatabaseAccountListKeysResult = await listKeys( + userContext.subscriptionId, + userContext.resourceGroup, + userContext.databaseAccount.name + ); + setPrimaryMasterKey(listKeysResult.primaryMasterKey); + setSecondaryMasterKey(listKeysResult.secondaryMasterKey); + setPrimaryReadonlyMasterKey(listKeysResult.primaryReadonlyMasterKey); + setSecondaryReadonlyMasterKey(listKeysResult.secondaryReadonlyMasterKey); + } else { + const listReadonlyKeysResult: DatabaseAccountListReadOnlyKeysResult = await listReadOnlyKeys( + userContext.subscriptionId, + userContext.resourceGroup, + userContext.databaseAccount.name + ); + setPrimaryReadonlyMasterKey(listReadonlyKeysResult.primaryReadonlyMasterKey); + setSecondaryReadonlyMasterKey(listReadonlyKeysResult.secondaryReadonlyMasterKey); + } + } catch (error) { + handleError(error, "listKeys", "listKeys request has failed: "); + throw error; + } + }; + + const onCopyBtnClicked = (selector: string): void => { + const textfield: HTMLInputElement = document.querySelector(selector); + textfield.select(); + document.execCommand("copy"); + }; + + const textfieldStyles: Partial = { + root: { width: "100%" }, + field: { backgroundColor: "rgb(230, 230, 230)" }, + fieldGroup: { borderColor: "rgb(138, 136, 134)" }, + }; + + return ( +
+ + {userContext.hasWriteAccess && ( + + + + + onCopyBtnClicked("#uriTextfield")} /> + + + + + onCopyBtnClicked("#primaryKeyTextfield")} /> + + + + + onCopyBtnClicked("#secondaryKeyTextfield")} + /> + + + + + onCopyBtnClicked("#primaryConStrTextfield")} + /> + + + + onCopyBtnClicked("#secondaryConStrTextfield")} + /> + + + + )} + + + + + onCopyBtnClicked("#uriReadOnlyTextfield")} /> + + + + onCopyBtnClicked("#primaryReadonlyKeyTextfield")} + /> + + + + onCopyBtnClicked("#secondaryReadonlyKeyTextfield")} + /> + + + + onCopyBtnClicked("#primaryReadonlyConStrTextfield")} + /> + + + + onCopyBtnClicked("#secondaryReadonlyConStrTextfield")} + /> + + + + + + + Download sample app + + Don’t have an app ready? No worries, download one of our sample app with a platform of your choice. Connection + string is already included in the app. + + + sendMessage({ + type: MessageTypes.OpenQuickstartBlade, + }) + } + text="Download sample app" + /> + +
+ ); +}; diff --git a/src/Explorer/Tabs/DocumentsTab.ts b/src/Explorer/Tabs/DocumentsTab.ts index 17538b624..fd51273d7 100644 --- a/src/Explorer/Tabs/DocumentsTab.ts +++ b/src/Explorer/Tabs/DocumentsTab.ts @@ -909,6 +909,7 @@ export default class DocumentsTab extends TabsBase { public static _createUploadButton(container: Explorer): CommandButtonComponentProps { const label = "Upload Item"; return { + id: "uploadItemBtn", iconSrc: UploadIcon, iconAlt: label, onCommandClick: () => { diff --git a/src/Explorer/Tabs/Tabs.tsx b/src/Explorer/Tabs/Tabs.tsx index 7948e871a..9d980a44b 100644 --- a/src/Explorer/Tabs/Tabs.tsx +++ b/src/Explorer/Tabs/Tabs.tsx @@ -1,3 +1,6 @@ +import { CollectionTabKind } from "Contracts/ViewModels"; +import { ConnectTab } from "Explorer/Tabs/ConnectTab"; +import { useTeachingBubble } from "hooks/useTeachingBubble"; import ko from "knockout"; import React, { MutableRefObject, useEffect, useRef, useState } from "react"; import loadingIcon from "../../../images/circular_loader_black_16x16.gif"; @@ -10,17 +13,21 @@ type Tab = TabsBase | (TabsBase & { render: () => JSX.Element }); export const Tabs = (): JSX.Element => { const { openedTabs, activeTab } = useTabs(); + const isConnectTabOpen = useTabs((state) => state.isConnectTabOpen); + const isConnectTabActive = useTabs((state) => state.isConnectTabActive); return (
+ {isConnectTabActive && } {openedTabs.map((tab) => ( ))} @@ -33,6 +40,7 @@ export const Tabs = (): JSX.Element => { function TabNav({ tab, active }: { tab: Tab; active: boolean }) { const [hovering, setHovering] = useState(false); const focusTab = useRef() as MutableRefObject; + const tabId = tab ? tab.tabId : "connect"; useEffect(() => { if (active && focusTab.current) { @@ -43,27 +51,27 @@ function TabNav({ tab, active }: { tab: Tab; active: boolean }) {
  • setHovering(true)} onMouseLeave={() => setHovering(false)} - onClick={() => tab.onTabClick()} - onKeyPress={({ nativeEvent: e }) => tab.onKeyPressActivate(undefined, e)} + onClick={() => (tab ? tab.onTabClick() : useTabs.getState().activateConnectTab())} + onKeyPress={({ nativeEvent: e }) => (tab ? tab.onKeyPressActivate(undefined, e) : onKeyPressConnectTab(e))} className={active ? "active tabList" : "tabList"} - title={useObservable(tab.tabPath)} + title={useObservable(tab?.tabPath || ko.observable(""))} aria-selected={active} aria-expanded={active} - aria-controls={tab.tabId} + aria-controls={tabId} tabIndex={0} role="tab" ref={focusTab} > - +
    - {useObservable(tab.isExecutionError) && } - {useObservable(tab.isExecuting) && ( + {useObservable(tab?.isExecutionError || ko.observable(false)) && } + {useObservable(tab?.isExecuting || ko.observable(false)) && ( Loading )} - {useObservable(tab.tabTitle)} + {useObservable(tab?.tabTitle || ko.observable("Connect"))} @@ -81,7 +89,7 @@ const CloseButton = ({ tab, active, hovering }: { tab: Tab; active: boolean; hov role="button" aria-label="Close Tab" className="cancelButton" - onClick={() => tab.onCloseTabButtonClick()} + onClick={() => (tab ? tab.onCloseTabButtonClick() : useTabs.getState().closeConnectTab())} tabIndex={active ? 0 : undefined} onKeyPress={({ nativeEvent: e }) => tab.onKeyPressClose(undefined, e)} > @@ -113,6 +121,10 @@ function TabPane({ tab, active }: { tab: Tab; active: boolean }) { }; useEffect((): (() => void) | void => { + if (tab.tabKind === CollectionTabKind.Documents && tab.collection?.isSampleCollection) { + useTeachingBubble.getState().setIsDocumentsTabOpened(true); + } + const { current: element } = ref; if (element) { ko.applyBindings(tab, element); @@ -123,9 +135,18 @@ function TabPane({ tab, active }: { tab: Tab; active: boolean }) { } }, [ref, tab]); - if ("render" in tab) { - return
    {tab.render()}
    ; + if (tab) { + if ("render" in tab) { + return
    {tab.render()}
    ; + } } return
    ; } + +const onKeyPressConnectTab = (e: KeyboardEvent): void => { + if (e.key === "Enter" || e.key === "Space") { + useTabs.getState().activateConnectTab(); + e.stopPropagation(); + } +}; diff --git a/src/Explorer/Tree/Collection.ts b/src/Explorer/Tree/Collection.ts index 9ef429df4..f2fff2a99 100644 --- a/src/Explorer/Tree/Collection.ts +++ b/src/Explorer/Tree/Collection.ts @@ -97,6 +97,7 @@ export default class Collection implements ViewModels.Collection { public storedProceduresFocused: ko.Observable; public userDefinedFunctionsFocused: ko.Observable; public triggersFocused: ko.Observable; + public isSampleCollection: boolean; private isOfferRead: boolean; constructor(container: Explorer, databaseId: string, data: DataModels.Collection) { @@ -133,7 +134,7 @@ export default class Collection implements ViewModels.Collection { if (partitionKeyProperty.indexOf("$v") > -1) { // From $v.shard.$v.key.$v > shard.key partitionKeyProperty = partitionKeyProperty.replace(/.\$v/g, "").replace(/\$v./g, ""); - this.partitionKeyPropertyHeaders[i] = partitionKeyProperty; + this.partitionKeyPropertyHeaders[i] = "/" + partitionKeyProperty; } } @@ -216,6 +217,7 @@ export default class Collection implements ViewModels.Collection { this.isStoredProceduresExpanded = ko.observable(false); this.isUserDefinedFunctionsExpanded = ko.observable(false); this.isTriggersExpanded = ko.observable(false); + this.isSampleCollection = false; this.isOfferRead = false; } diff --git a/src/Explorer/Tree/Database.tsx b/src/Explorer/Tree/Database.tsx index 156b5f275..a31b79b97 100644 --- a/src/Explorer/Tree/Database.tsx +++ b/src/Explorer/Tree/Database.tsx @@ -37,6 +37,7 @@ export default class Database implements ViewModels.Database { public isDatabaseShared: ko.Computed; public selectedSubnodeKind: ko.Observable; public junoClient: JunoClient; + public isSampleDB: boolean; private isOfferRead: boolean; constructor(container: Explorer, data: DataModels.Database) { @@ -54,6 +55,7 @@ export default class Database implements ViewModels.Database { return this.offer && !!this.offer(); }); this.junoClient = new JunoClient(); + this.isSampleDB = false; this.isOfferRead = false; } diff --git a/src/Explorer/Tree/ResourceTree.tsx b/src/Explorer/Tree/ResourceTree.tsx index dd8c3c9c6..87432ce8b 100644 --- a/src/Explorer/Tree/ResourceTree.tsx +++ b/src/Explorer/Tree/ResourceTree.tsx @@ -436,7 +436,7 @@ export const ResourceTree: React.FC = ({ container }: Resourc const databaseNode: TreeNode = { label: database.id(), iconSrc: CosmosDBIcon, - isExpanded: false, + isExpanded: database.isDatabaseExpanded(), className: "databaseHeader", children: [], isSelected: () => useSelectedNode.getState().isDataNodeSelected(database.id()), @@ -461,6 +461,7 @@ export const ResourceTree: React.FC = ({ container }: Resourc if (database.isDatabaseShared()) { databaseNode.children.push({ + id: database.isSampleDB ? "sampleScaleSettings" : "", label: "Scale", isSelected: () => useSelectedNode @@ -497,6 +498,7 @@ export const ResourceTree: React.FC = ({ container }: Resourc const children: TreeNode[] = []; children.push({ label: collection.getLabel(), + id: collection.isSampleCollection ? "sampleItems" : "", onClick: () => { collection.openTab(); // push to most recent @@ -530,6 +532,7 @@ export const ResourceTree: React.FC = ({ container }: Resourc if (userContext.apiType !== "Cassandra" || !isServerlessAccount()) { children.push({ + id: collection.isSampleCollection && !database.isDatabaseShared() ? "sampleScaleSettings" : "", label: database.isDatabaseShared() || isServerlessAccount() ? "Settings" : "Scale & Settings", onClick: collection.onSettingsClick.bind(collection), isSelected: () => @@ -572,7 +575,7 @@ export const ResourceTree: React.FC = ({ container }: Resourc return { label: collection.id(), iconSrc: CollectionIcon, - isExpanded: false, + isExpanded: collection.isCollectionExpanded(), children: children, className: "collectionHeader", contextMenu: ResourceTreeContextMenuButtonFactory.createCollectionContextMenuButton(container, collection), @@ -611,7 +614,8 @@ export const ResourceTree: React.FC = ({ container }: Resourc ]), contextMenu: ResourceTreeContextMenuButtonFactory.createStoreProcedureContextMenuItems(container, sp), })), - onClick: () => { + onClick: async () => { + await collection.loadStoredProcedures(); collection.selectedSubnodeKind(ViewModels.CollectionTabKind.StoredProcedures); refreshActiveTab( (tab: TabsBase) => @@ -635,7 +639,8 @@ export const ResourceTree: React.FC = ({ container }: Resourc ]), contextMenu: ResourceTreeContextMenuButtonFactory.createUserDefinedFunctionContextMenuItems(container, udf), })), - onClick: () => { + onClick: async () => { + await collection.loadUserDefinedFunctions(); collection.selectedSubnodeKind(ViewModels.CollectionTabKind.UserDefinedFunctions); refreshActiveTab( (tab: TabsBase) => @@ -657,7 +662,8 @@ export const ResourceTree: React.FC = ({ container }: Resourc .isDataNodeSelected(collection.databaseId, collection.id(), [ViewModels.CollectionTabKind.Triggers]), contextMenu: ResourceTreeContextMenuButtonFactory.createTriggerContextMenuItems(container, trigger), })), - onClick: () => { + onClick: async () => { + await collection.loadTriggers(); collection.selectedSubnodeKind(ViewModels.CollectionTabKind.Triggers); refreshActiveTab( (tab: TabsBase) => diff --git a/src/Explorer/Tutorials/QuickstartCarousel.tsx b/src/Explorer/Tutorials/QuickstartCarousel.tsx new file mode 100644 index 000000000..a2516fc5b --- /dev/null +++ b/src/Explorer/Tutorials/QuickstartCarousel.tsx @@ -0,0 +1,103 @@ +import { DefaultButton, IconButton, Image, Modal, PrimaryButton, Stack, Text } from "@fluentui/react"; +import { useCarousel } from "hooks/useCarousel"; +import React, { useState } from "react"; +import Youtube from "react-youtube"; +import { Action } from "Shared/Telemetry/TelemetryConstants"; +import { traceSuccess } from "Shared/Telemetry/TelemetryProcessor"; +import { userContext } from "UserContext"; +import Image1 from "../../../images/CarouselImage1.svg"; +import Image2 from "../../../images/CarouselImage2.svg"; + +interface QuickstartCarouselProps { + isOpen: boolean; +} + +export const QuickstartCarousel: React.FC = ({ + isOpen, +}: QuickstartCarouselProps): JSX.Element => { + const [page, setPage] = useState(1); + return ( + userContext.apiType === "SQL" && useCarousel.getState().setShowCoachMark(true)} + > + + + {getHeaderText(page)} + setPage(4)} /> + + {getContent(page)} + + {getDescriptionText(page)} + + + {page !== 1 && ( + setPage(page - 1)} /> + )} + { + if ( + userContext.apiType === "Cassandra" || + userContext.apiType === "Tables" || + userContext.apiType === "Gremlin" + ) { + setPage(page + 2); + } else { + if (page === 3 && userContext.apiType === "SQL") { + useCarousel.getState().setShowCoachMark(true); + } + setPage(page + 1); + } + + if (page === 3) { + traceSuccess(Action.CompleteCarousel); + } + }} + /> + + + + ); +}; + +const getHeaderText = (page: number): string => { + switch (page) { + case 1: + return "Welcome! What is Cosmos DB?"; + case 2: + return "Get Started with Sample Data"; + case 3: + return "Connect to your database"; + default: + return ""; + } +}; + +const getContent = (page: number): JSX.Element => { + switch (page) { + case 1: + return traceSuccess(Action.PlayCarouselVideo)} />; + case 2: + return ; + case 3: + return ; + default: + return <>; + } +}; + +const getDescriptionText = (page: number): string => { + switch (page) { + case 1: + return "Azure Cosmos DB is a fully managed NoSQL database service for modern app development. "; + case 2: + return "Launch the quickstart for a tutotrial to learn how to create a database, add sample data, connect to a sample app and more."; + case 3: + return "Already have an existing app? Connect your database to an app, or tooling of your choice from Data Explorer."; + default: + return ""; + } +}; diff --git a/src/Explorer/Tutorials/QuickstartTutorial.tsx b/src/Explorer/Tutorials/QuickstartTutorial.tsx new file mode 100644 index 000000000..5fcb44026 --- /dev/null +++ b/src/Explorer/Tutorials/QuickstartTutorial.tsx @@ -0,0 +1,172 @@ +import { Link, Stack, TeachingBubble, Text } from "@fluentui/react"; +import { useTabs } from "hooks/useTabs"; +import { useTeachingBubble } from "hooks/useTeachingBubble"; +import React from "react"; +import { Action } from "Shared/Telemetry/TelemetryConstants"; +import { traceCancel } from "Shared/Telemetry/TelemetryProcessor"; + +export const QuickstartTutorial: React.FC = (): JSX.Element => { + const { step, isSampleDBExpanded, isDocumentsTabOpened, sampleCollection, setStep } = useTeachingBubble(); + + const onDimissTeachingBubble = (): void => { + setStep(0); + traceCancel(Action.CancelUITour, { step }); + }; + + switch (step) { + case 1: + return isSampleDBExpanded ? ( + { + sampleCollection.openTab(); + setStep(2); + }, + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 1 of 7" + > + Start viewing and working with your data by opening Items under Data + + ) : ( + <> + ); + case 2: + return isDocumentsTabOpened ? ( + setStep(3), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(1), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 2 of 7" + > + View item here using the items window. Additionally you can also filter items to be reviewed with the filter + function + + ) : ( + <> + ); + case 3: + return ( + setStep(4), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(2), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 3 of 7" + > + Add new item by copy / pasting JSON; or uploading a JSON + + ); + case 4: + return ( + setStep(5), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(3), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 4 of 7" + > + Query your data using either the filter function or new query. + + ); + case 5: + return ( + setStep(6), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(4), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 5 of 7" + > + Change throughput provisioned to your container according to your needs + + ); + case 6: + return ( + setStep(7), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(5), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 6 of 7" + > + Visualize your data, store queries in an interactive document + + ); + case 7: + return ( + useTabs.getState().openAndActivateConnectTab(), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(6), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent="Step 7 of 7" + > + + + You have finished the tour in data explorer. For next steps, you may want to launch connect and start + connecting with your current app. + + + Share your feedback + + + + ); + default: + return <>; + } +}; diff --git a/src/GalleryViewer/GalleryViewer.tsx b/src/GalleryViewer/GalleryViewer.tsx index e630ee7b2..2026415af 100644 --- a/src/GalleryViewer/GalleryViewer.tsx +++ b/src/GalleryViewer/GalleryViewer.tsx @@ -2,6 +2,7 @@ import { initializeIcons, Link, Text } from "@fluentui/react"; import "bootstrap/dist/css/bootstrap.css"; import * as React from "react"; import * as ReactDOM from "react-dom"; +import { userContext } from "UserContext"; import { initializeConfiguration } from "../ConfigContext"; import { GalleryHeaderComponent } from "../Explorer/Controls/Header/GalleryHeaderComponent"; import { @@ -25,7 +26,9 @@ const onInit = async () => { const props: GalleryAndNotebookViewerComponentProps = { junoClient: new JunoClient(), - selectedTab: galleryViewerProps.selectedTab || GalleryTab.PublicGallery, + selectedTab: + galleryViewerProps.selectedTab || + (userContext.features.publicGallery ? GalleryTab.PublicGallery : GalleryTab.OfficialSamples), sortBy: galleryViewerProps.sortBy || SortBy.MostRecent, searchText: galleryViewerProps.searchText, }; diff --git a/src/Localization/en/MaterializedViewsBuilder.json b/src/Localization/en/MaterializedViewsBuilder.json new file mode 100644 index 000000000..7c3aaa032 --- /dev/null +++ b/src/Localization/en/MaterializedViewsBuilder.json @@ -0,0 +1,48 @@ +{ + "MaterializedViewsBuilderDescription": "Provision a Materializedviews builder cluster for your Azure Cosmos DB account. Materializedviews builder is compute in your account that performs read operations on source collection for any updates and applies them on materialized views as per the materializedview definition.", + "MaterializedViewsBuilder": "Materializedviews Builder", + "Provisioned": "Provisioned", + "Deprovisioned": "Deprovisioned", + "LearnAboutMaterializedViews": "Learn more about materializedviews.", + "DeprovisioningDetailsText": "Learn more about materializedviews.", + "MaterializedviewsBuilderPricing": "Learn more about materializedviews pricing.", + "SKUs": "SKUs", + "SKUsPlaceHolder": "Select SKUs", + "NumberOfInstances": "Number of instances", + "CosmosD2s": "Cosmos.D2s (General Purpose Cosmos Compute with 2 vCPUs, 8 GB Memory)", + "CosmosD4s": "Cosmos.D4s (General Purpose Cosmos Compute with 4 vCPUs, 16 GB Memory)", + "CosmosD8s": "Cosmos.D8s (General Purpose Cosmos Compute with 8 vCPUs, 32 GB Memory)", + "CosmosD16s": "Cosmos.D16s (General Purpose Cosmos Compute with 16 vCPUs, 64 GB Memory)", + "CosmosD32s": "Cosmos.D32s (General Purpose Cosmos Compute with 32 vCPUs, 128 GB Memory)", + "CreateMessage": "MaterializedViewsBuilder resource is being created.", + "CreateInitializeTitle": "Provisioning resource", + "CreateInitializeMessage": "Materializedviews Builder resource will be provisioned.", + "CreateSuccessTitle": "Resource provisioned", + "CreateSuccesseMessage": "Materializedviews Builder resource provisioned.", + "CreateFailureTitle": "Failed to provision resource", + "CreateFailureMessage": "Materializedviews Builder resource provisioning failed.", + "UpdateMessage": "MaterializedViewsBuilder resource is being updated.", + "UpdateInitializeTitle": "Updating resource", + "UpdateInitializeMessage": "Materializedviews Builder resource will be updated.", + "UpdateSuccessTitle": "Resource updated", + "UpdateSuccesseMessage": "Materializedviews Builder resource updated.", + "UpdateFailureTitle": "Failed to update resource", + "UpdateFailureMessage": "Materializedviews Builder resource updation failed.", + "DeleteMessage": "MaterializedViewsBuilder resource is being deleted.", + "DeleteInitializeTitle": "Deleting resource", + "DeleteInitializeMessage": "Materializedviews Builder resource will be deleted.", + "DeleteSuccessTitle": "Resource deleted", + "DeleteSuccesseMessage": "Materializedviews Builder resource deleted.", + "DeleteFailureTitle": "Failed to delete resource", + "DeleteFailureMessage": "Materializedviews Builder resource deletion failed.", + "ApproximateCost": "Approximate Cost Per Hour", + "CostText": "Hourly cost of the Materializedviews Builder resource depends on the SKU selection, number of instances per region, and number of regions.", + "MetricsString": "Metrics", + "MetricsText": "Monitor the CPU and memory usage for the Materializedviews Builder instances in ", + "MetricsBlade": "the metrics blade.", + "MonitorUsage": "Monitor Usage", + "ResizingDecisionText": "To understand if the Materializedviews Builder is the right size, ", + "ResizingDecisionLink": "learn more about Materializedviews Builder sizing.", + "WarningBannerOnUpdate": "Adding or modifying Materializedviews Builder instances may affect your bill.", + "WarningBannerOnDelete": "After deprovisioning the Materializedviews Builder, your materializedviews will not be updated with new source changes anymore. Materializedviews builder is compute in your account that performs read operations on source collection for any updates and applies them on materialized views as per the materializedview definition." +} \ No newline at end of file diff --git a/src/Localization/en/SelfServeExample.json b/src/Localization/en/SelfServeExample.json index 2d28615c7..384c50de8 100644 --- a/src/Localization/en/SelfServeExample.json +++ b/src/Localization/en/SelfServeExample.json @@ -7,7 +7,7 @@ "RegionsAndAccountNameValidationError": "Regions and account name should not be empty.", "DbThroughputValidationError": "Please update throughput for database.", "DescriptionLabel": "Description", - "DescriptionText": "This class sets collection and database throughput.", + "DescriptionText": "This class sets collection and database throughput.\nTo know more -", "DecriptionLinkText": "Click here for more information", "Regions": "Regions", "RegionsPlaceholder": "Select a region", diff --git a/src/Main.tsx b/src/Main.tsx index c38012b64..b68254204 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -1,6 +1,9 @@ // CSS Dependencies import { initializeIcons } from "@fluentui/react"; import "bootstrap/dist/css/bootstrap.css"; +import { QuickstartCarousel } from "Explorer/Tutorials/QuickstartCarousel"; +import { QuickstartTutorial } from "Explorer/Tutorials/QuickstartTutorial"; +import { useCarousel } from "hooks/useCarousel"; import React, { useState } from "react"; import ReactDOM from "react-dom"; import "../externals/jquery-ui.min.css"; @@ -57,6 +60,8 @@ initializeIcons(); const App: React.FunctionComponent = () => { const [isLeftPaneExpanded, setIsLeftPaneExpanded] = useState(true); const openedTabs = useTabs((state) => state.openedTabs); + const isConnectTabOpen = useTabs((state) => state.isConnectTabOpen); + const isCarouselOpen = useCarousel((state) => state.shouldOpen); const config = useConfig(); const explorer = useKnockoutExplorer(config?.platform); @@ -100,7 +105,7 @@ const App: React.FunctionComponent = () => {
    {/* Collections Tree - End */} - {openedTabs.length === 0 && } + {openedTabs.length === 0 && !isConnectTabOpen && }
  • {/* Collections Tree and Tabs - End */} @@ -115,6 +120,8 @@ const App: React.FunctionComponent = () => {
    + {} + {}
    ); }; diff --git a/src/Phoenix/PhoenixClient.ts b/src/Phoenix/PhoenixClient.ts index 7629ffac5..9ff373366 100644 --- a/src/Phoenix/PhoenixClient.ts +++ b/src/Phoenix/PhoenixClient.ts @@ -17,13 +17,14 @@ import { ContainerConnectionInfo, ContainerInfo, IContainerData, + IDbAccountAllow, IMaxAllocationTimeExceeded, IMaxDbAccountsPerUserExceeded, IMaxUsersPerDbAccountExceeded, IPhoenixConnectionInfoResult, + IPhoenixError, IProvisionData, IResponse, - IValidationError, PhoenixErrorType, } from "../Contracts/DataModels"; import { useNotebook } from "../Explorer/Notebook/useNotebook"; @@ -59,17 +60,19 @@ export class PhoenixClient { body: JSON.stringify(provisionData), }); const responseJson = await response?.json(); - if (response.status === HttpStatusCodes.Forbidden) { - throw new Error(this.ConvertToForbiddenErrorString(responseJson)); + if (response.ok) { + return { + status: response.status, + data: responseJson, + }; } - return { - status: response.status, - data: responseJson, - }; + const phoenixError = responseJson as IPhoenixError; + if (response.status === HttpStatusCodes.Forbidden) { + throw new Error(this.ConvertToForbiddenErrorString(phoenixError)); + } + throw new Error(phoenixError.message); } catch (error) { - if (response.status === HttpStatusCodes.Forbidden) { - error.status = HttpStatusCodes.Forbidden; - } + error.status = response?.status; throw error; } } @@ -101,7 +104,7 @@ export class PhoenixClient { const containerStatus = await response.json(); return { durationLeftInMinutes: containerStatus?.durationLeftInMinutes, - notebookServerInfo: containerStatus?.notebookServerInfo, + phoenixServerInfo: containerStatus?.phoenixServerInfo, status: ContainerStatusType.Active, }; } else if (response.status === HttpStatusCodes.NotFound) { @@ -145,7 +148,7 @@ export class PhoenixClient { useNotebook.getState().setIsRefreshed(!useNotebook.getState().isRefreshed); return { durationLeftInMinutes: undefined, - notebookServerInfo: undefined, + phoenixServerInfo: undefined, status: ContainerStatusType.Disconnected, }; } @@ -159,15 +162,17 @@ export class PhoenixClient { } } - public async isDbAcountWhitelisted(): Promise { + public async getDbAccountAllowedStatus(): Promise { const startKey = TelemetryProcessor.traceStart(Action.PhoenixDBAccountAllowed, { dataExplorerArea: Areas.Notebook, }); + let responseJson; try { const response = await window.fetch(`${this.getPhoenixControlPlanePathPrefix()}`, { method: "GET", headers: PhoenixClient.getHeaders(), }); + responseJson = await response?.json(); if (response.status !== HttpStatusCodes.OK) { throw new Error(`Received status code: ${response?.status}`); } @@ -178,7 +183,11 @@ export class PhoenixClient { }, startKey ); - return response.status === HttpStatusCodes.OK; + return { + status: response.status, + message: responseJson?.message, + type: responseJson?.type, + }; } catch (error) { TelemetryProcessor.traceFailure( Action.PhoenixDBAccountAllowed, @@ -190,7 +199,11 @@ export class PhoenixClient { startKey ); Logger.logError(getErrorMessage(error), "PhoenixClient/IsDbAcountWhitelisted"); - return false; + return { + status: HttpStatusCodes.Forbidden, + message: responseJson?.message, + type: responseJson?.type, + }; } } @@ -220,7 +233,7 @@ export class PhoenixClient { }; } - public ConvertToForbiddenErrorString(jsonData: IValidationError): string { + public ConvertToForbiddenErrorString(jsonData: IPhoenixError): string { const errInfo = jsonData; switch (errInfo?.type) { case PhoenixErrorType.MaxAllocationTimeExceeded: { diff --git a/src/Platform/Hosted/extractFeatures.ts b/src/Platform/Hosted/extractFeatures.ts index efa7e1e72..f851ce251 100644 --- a/src/Platform/Hosted/extractFeatures.ts +++ b/src/Platform/Hosted/extractFeatures.ts @@ -29,7 +29,6 @@ export type Features = { readonly mongoProxyEndpoint?: string; readonly mongoProxyAPIs?: string; readonly enableThroughputCap: boolean; - readonly enableNewQuickstart: boolean; readonly enableChatbot?: boolean; // can be set via both flight and feature flag @@ -92,7 +91,6 @@ export function extractFeatures(given = new URLSearchParams(window.location.sear partitionKeyDefault2: "true" === get("pkpartitionkeytest"), notebooksDownBanner: "true" === get("notebooksDownBanner"), enableThroughputCap: "true" === get("enablethroughputcap"), - enableNewQuickstart: "true" === get("enablenewquickstart"), enableChatbot: "true" === get("enablechatbot"), }; } diff --git a/src/SelfServe/Example/SelfServeExample.tsx b/src/SelfServe/Example/SelfServeExample.tsx index 004ff993d..4a1841d28 100644 --- a/src/SelfServe/Example/SelfServeExample.tsx +++ b/src/SelfServe/Example/SelfServeExample.tsx @@ -179,6 +179,15 @@ export default class SelfServeExample extends SelfServeBaseClass { }) description: string; + @Values({ + description: { + textTKey: `This UI can be used to dynamically change the throughput. +This is an alternative to updating the throughput from the 'scale & settings' tab.`, + type: DescriptionType.Text, + }, + }) + multiLineDescription: string; + @Values({ labelTKey: "Current Region", isDynamicDescription: true, diff --git a/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.rp.ts b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.rp.ts new file mode 100644 index 000000000..d5fae8d0d --- /dev/null +++ b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.rp.ts @@ -0,0 +1,228 @@ +import { configContext } from "../../ConfigContext"; +import { userContext } from "../../UserContext"; +import { armRequestWithoutPolling } from "../../Utils/arm/request"; +import { selfServeTraceFailure, selfServeTraceStart, selfServeTraceSuccess } from "../SelfServeTelemetryProcessor"; +import { RefreshResult } from "../SelfServeTypes"; +import MaterializedViewsBuilder from "./MaterializedViewsBuilder"; +import { + FetchPricesResponse, + PriceMapAndCurrencyCode, + RegionsResponse, + MaterializedViewsBuilderServiceResource, + UpdateMaterializedViewsBuilderRequestParameters, +} from "./MaterializedViewsBuilderTypes"; + +const apiVersion = "2021-07-01-preview"; + +export enum ResourceStatus { + Running = "Running", + Creating = "Creating", + Updating = "Updating", + Deleting = "Deleting", +} + +export interface MaterializedViewsBuilderResponse { + sku: string; + instances: number; + status: string; + endpoint: string; +} + +export const getPath = (subscriptionId: string, resourceGroup: string, name: string): string => { + return `/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.DocumentDB/databaseAccounts/${name}/services/materializedviewsBuilder`; +}; + +export const updateMaterializedViewsBuilderResource = async (sku: string, instances: number): Promise => { + const path = getPath(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.name); + const body: UpdateMaterializedViewsBuilderRequestParameters = { + properties: { + instanceSize: sku, + instanceCount: instances, + serviceType: "materializedviewsBuilder", + }, + }; + const telemetryData = { ...body, httpMethod: "PUT", selfServeClassName: MaterializedViewsBuilder.name }; + const updateTimeStamp = selfServeTraceStart(telemetryData); + let armRequestResult; + try { + armRequestResult = await armRequestWithoutPolling({ + host: configContext.ARM_ENDPOINT, + path, + method: "PUT", + apiVersion, + body, + }); + selfServeTraceSuccess(telemetryData, updateTimeStamp); + } catch (e) { + const failureTelemetry = { ...body, e, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, updateTimeStamp); + throw e; + } + return armRequestResult?.operationStatusUrl; +}; + +export const deleteMaterializedViewsBuilderResource = async (): Promise => { + const path = getPath(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.name); + const telemetryData = { httpMethod: "DELETE", selfServeClassName: MaterializedViewsBuilder.name }; + const deleteTimeStamp = selfServeTraceStart(telemetryData); + let armRequestResult; + try { + armRequestResult = await armRequestWithoutPolling({ + host: configContext.ARM_ENDPOINT, + path, + method: "DELETE", + apiVersion, + }); + selfServeTraceSuccess(telemetryData, deleteTimeStamp); + } catch (e) { + const failureTelemetry = { e, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, deleteTimeStamp); + throw e; + } + return armRequestResult?.operationStatusUrl; +}; + +export const getMaterializedViewsBuilderResource = async (): Promise => { + const path = getPath(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.name); + const telemetryData = { httpMethod: "GET", selfServeClassName: MaterializedViewsBuilder.name }; + const getResourceTimeStamp = selfServeTraceStart(telemetryData); + let armRequestResult; + try { + armRequestResult = await armRequestWithoutPolling({ + host: configContext.ARM_ENDPOINT, + path, + method: "GET", + apiVersion, + }); + selfServeTraceSuccess(telemetryData, getResourceTimeStamp); + } catch (e) { + const failureTelemetry = { e, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, getResourceTimeStamp); + throw e; + } + return armRequestResult?.result; +}; + +export const getCurrentProvisioningState = async (): Promise => { + try { + const response = await getMaterializedViewsBuilderResource(); + return { + sku: response.properties.instanceSize, + instances: response.properties.instanceCount, + status: response.properties.status, + endpoint: response.properties.MaterializedViewsBuilderEndPoint, + }; + } catch (e) { + return { sku: undefined, instances: undefined, status: undefined, endpoint: undefined }; + } +}; + +export const refreshMaterializedViewsBuilderProvisioning = async (): Promise => { + try { + const response = await getMaterializedViewsBuilderResource(); + if (response.properties.status === ResourceStatus.Running.toString()) { + return { isUpdateInProgress: false, updateInProgressMessageTKey: undefined }; + } else if (response.properties.status === ResourceStatus.Creating.toString()) { + return { isUpdateInProgress: true, updateInProgressMessageTKey: "CreateMessage" }; + } else if (response.properties.status === ResourceStatus.Deleting.toString()) { + return { isUpdateInProgress: true, updateInProgressMessageTKey: "DeleteMessage" }; + } else { + return { isUpdateInProgress: true, updateInProgressMessageTKey: "UpdateMessage" }; + } + } catch { + //TODO differentiate between different failures + return { isUpdateInProgress: false, updateInProgressMessageTKey: undefined }; + } +}; + +const getGeneralPath = (subscriptionId: string, resourceGroup: string, name: string): string => { + return `/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.DocumentDB/databaseAccounts/${name}`; +}; + +export const getRegions = async (): Promise> => { + const telemetryData = { + feature: "Calculate approximate cost", + function: "getRegions", + description: "", + selfServeClassName: MaterializedViewsBuilder.name, + }; + const getRegionsTimestamp = selfServeTraceStart(telemetryData); + + try { + const regions = new Array(); + + const response = await armRequestWithoutPolling({ + host: configContext.ARM_ENDPOINT, + path: getGeneralPath(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.name), + method: "GET", + apiVersion: "2021-07-01-preview", + }); + + if (response.result.location !== undefined) { + regions.push(response.result.location.split(" ").join("").toLowerCase()); + } else { + for (const location of response.result.locations) { + regions.push(location.locationName.split(" ").join("").toLowerCase()); + } + } + + selfServeTraceSuccess(telemetryData, getRegionsTimestamp); + return regions; + } catch (err) { + const failureTelemetry = { err, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, getRegionsTimestamp); + return new Array(); + } +}; + +const getFetchPricesPathForRegion = (subscriptionId: string): string => { + return `/subscriptions/${subscriptionId}/providers/Microsoft.CostManagement/fetchPrices`; +}; + +export const getPriceMapAndCurrencyCode = async (regions: Array): Promise => { + const telemetryData = { + feature: "Calculate approximate cost", + function: "getPriceMapAndCurrencyCode", + description: "fetch prices API call", + selfServeClassName: MaterializedViewsBuilder.name, + }; + const getPriceMapAndCurrencyCodeTimestamp = selfServeTraceStart(telemetryData); + + try { + const priceMap = new Map>(); + let currencyCode; + for (const region of regions) { + const regionPriceMap = new Map(); + + const response = await armRequestWithoutPolling({ + host: configContext.ARM_ENDPOINT, + path: getFetchPricesPathForRegion(userContext.subscriptionId), + method: "POST", + apiVersion: "2020-01-01-preview", + queryParams: { + filter: + "armRegionName eq '" + + region + + "' and serviceFamily eq 'Databases' and productName eq 'Azure Cosmos DB MaterializedViews Builder - General Purpose'", + }, + }); + + for (const item of response.result.Items) { + if (currencyCode === undefined) { + currencyCode = item.currencyCode; + } else if (item.currencyCode !== currencyCode) { + throw Error("Currency Code Mismatch: Currency code not same for all regions / skus."); + } + regionPriceMap.set(item.skuName, item.retailPrice); + } + priceMap.set(region, regionPriceMap); + } + + selfServeTraceSuccess(telemetryData, getPriceMapAndCurrencyCodeTimestamp); + return { priceMap: priceMap, currencyCode: currencyCode }; + } catch (err) { + const failureTelemetry = { err, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, getPriceMapAndCurrencyCodeTimestamp); + return { priceMap: undefined, currencyCode: undefined }; + } +}; diff --git a/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.tsx b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.tsx new file mode 100644 index 000000000..40b0458e2 --- /dev/null +++ b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilder.tsx @@ -0,0 +1,416 @@ +import { IsDisplayable, OnChange, PropertyInfo, RefreshOptions, Values } from "../Decorators"; +import { + selfServeTrace, + selfServeTraceFailure, + selfServeTraceStart, + selfServeTraceSuccess, +} from "../SelfServeTelemetryProcessor"; +import { + ChoiceItem, + Description, + DescriptionType, + Info, + InputType, + NumberUiType, + OnSaveResult, + RefreshResult, + SelfServeBaseClass, + SmartUiInput, +} from "../SelfServeTypes"; +import { BladeType, generateBladeLink } from "../SelfServeUtils"; +import { + deleteMaterializedViewsBuilderResource, + getCurrentProvisioningState, + getPriceMapAndCurrencyCode, + getRegions, + refreshMaterializedViewsBuilderProvisioning, + updateMaterializedViewsBuilderResource, +} from "./MaterializedViewsBuilder.rp"; + +const costPerHourDefaultValue: Description = { + textTKey: "CostText", + type: DescriptionType.Text, + link: { + href: "https://aka.ms/cosmos-db-materializedviewsbuilder-pricing", + textTKey: "MaterializedviewsBuilderPricing", + }, +}; + +const metricsStringValue: Description = { + textTKey: "MetricsText", + type: DescriptionType.Text, + link: { + href: generateBladeLink(BladeType.Metrics), + textTKey: "MetricsBlade", + }, +}; + +const CosmosD2s = "Cosmos.D2s"; +const CosmosD4s = "Cosmos.D4s"; +const CosmosD8s = "Cosmos.D8s"; +const CosmosD16s = "Cosmos.D16s"; + +const onSKUChange = (newValue: InputType, currentValues: Map): Map => { + currentValues.set("sku", { value: newValue }); + currentValues.set("costPerHour", { + value: calculateCost(newValue as string, currentValues.get("instances").value as number), + }); + + return currentValues; +}; + +const onNumberOfInstancesChange = ( + newValue: InputType, + currentValues: Map, + baselineValues: Map +): Map => { + currentValues.set("instances", { value: newValue }); + const MaterializedViewsBuilderOriginallyEnabled = baselineValues.get("enableMaterializedViewsBuilder") + ?.value as boolean; + const baselineInstances = baselineValues.get("instances")?.value as number; + if (!MaterializedViewsBuilderOriginallyEnabled || baselineInstances !== newValue) { + currentValues.set("warningBanner", { + value: { + textTKey: "WarningBannerOnUpdate", + link: { + href: "https://aka.ms/cosmos-db-materializedviewsbuilder-pricing", + textTKey: "MaterializedviewsBuilderPricing", + }, + } as Description, + hidden: false, + }); + } else { + currentValues.set("warningBanner", undefined); + } + + currentValues.set("costPerHour", { + value: calculateCost(currentValues.get("sku").value as string, newValue as number), + }); + + return currentValues; +}; + +const onEnableMaterializedViewsBuilderChange = ( + newValue: InputType, + currentValues: Map, + baselineValues: ReadonlyMap +): Map => { + currentValues.set("enableMaterializedViewsBuilder", { value: newValue }); + const MaterializedViewsBuilderOriginallyEnabled = baselineValues.get("enableMaterializedViewsBuilder") + ?.value as boolean; + if (MaterializedViewsBuilderOriginallyEnabled === newValue) { + currentValues.set("sku", baselineValues.get("sku")); + currentValues.set("instances", baselineValues.get("instances")); + currentValues.set("costPerHour", baselineValues.get("costPerHour")); + currentValues.set("warningBanner", baselineValues.get("warningBanner")); + currentValues.set("metricsString", baselineValues.get("metricsString")); + return currentValues; + } + + currentValues.set("warningBanner", undefined); + if (newValue === true) { + currentValues.set("warningBanner", { + value: { + textTKey: "WarningBannerOnUpdate", + link: { + href: "https://aka.ms/cosmos-db-materializedviewsbuilder-pricing", + textTKey: "MaterializedviewsBuilderPricing", + }, + } as Description, + hidden: false, + }); + + currentValues.set("costPerHour", { + value: calculateCost(baselineValues.get("sku").value as string, baselineValues.get("instances").value as number), + hidden: false, + }); + } else { + currentValues.set("warningBanner", { + value: { + textTKey: "WarningBannerOnDelete", + link: { + href: "https://aka.ms/cosmos-db-materializedviews", + textTKey: "DeprovisioningDetailsText", + }, + } as Description, + hidden: false, + }); + + currentValues.set("costPerHour", { value: costPerHourDefaultValue, hidden: true }); + } + const sku = currentValues.get("sku"); + const instances = currentValues.get("instances"); + const hideAttributes = newValue === undefined || !(newValue as boolean); + currentValues.set("sku", { + value: sku.value, + hidden: hideAttributes, + disabled: MaterializedViewsBuilderOriginallyEnabled, + }); + currentValues.set("instances", { + value: instances.value, + hidden: hideAttributes, + disabled: MaterializedViewsBuilderOriginallyEnabled, + }); + + currentValues.set("metricsString", { + value: metricsStringValue, + hidden: !newValue || !MaterializedViewsBuilderOriginallyEnabled, + }); + + return currentValues; +}; + +const skuDropDownItems: ChoiceItem[] = [ + { labelTKey: "CosmosD2s", key: CosmosD2s }, + { labelTKey: "CosmosD4s", key: CosmosD4s }, + { labelTKey: "CosmosD8s", key: CosmosD8s }, + { labelTKey: "CosmosD16s", key: CosmosD16s }, +]; + +const getSkus = async (): Promise => { + return skuDropDownItems; +}; + +const getInstancesMin = async (): Promise => { + return 1; +}; + +const getInstancesMax = async (): Promise => { + return 5; +}; + +const NumberOfInstancesDropdownInfo: Info = { + messageTKey: "ResizingDecisionText", + link: { + href: "https://aka.ms/cosmos-db-materializedviewsbuilder-size", + textTKey: "ResizingDecisionLink", + }, +}; + +const ApproximateCostDropDownInfo: Info = { + messageTKey: "CostText", + link: { + href: "https://aka.ms/cosmos-db-materializedviewsbuilder-pricing", + textTKey: "MaterializedviewsBuilderPricing", + }, +}; + +let priceMap: Map>; +let currencyCode: string; +let regions: Array; + +const calculateCost = (skuName: string, instanceCount: number): Description => { + const telemetryData = { + feature: "Calculate approximate cost", + function: "calculateCost", + description: "performs final calculation", + selfServeClassName: MaterializedViewsBuilder.name, + }; + const calculateCostTimestamp = selfServeTraceStart(telemetryData); + + try { + let costPerHour = 0; + for (const region of regions) { + const incrementalCost = priceMap.get(region).get(skuName.replace("Cosmos.", "")); + if (incrementalCost === undefined) { + throw new Error("Value not found in map."); + } + costPerHour += incrementalCost; + } + + if (costPerHour === 0) { + throw new Error("Cost per hour = 0"); + } + + costPerHour *= instanceCount; + costPerHour = Math.round(costPerHour * 100) / 100; + + selfServeTraceSuccess(telemetryData, calculateCostTimestamp); + return { + textTKey: `${costPerHour} ${currencyCode}`, + type: DescriptionType.Text, + }; + } catch (err) { + const failureTelemetry = { err, regions, priceMap, selfServeClassName: MaterializedViewsBuilder.name }; + selfServeTraceFailure(failureTelemetry, calculateCostTimestamp); + + return costPerHourDefaultValue; + } +}; + +@IsDisplayable() +@RefreshOptions({ retryIntervalInMs: 20000 }) +export default class MaterializedViewsBuilder extends SelfServeBaseClass { + public onRefresh = async (): Promise => { + return await refreshMaterializedViewsBuilderProvisioning(); + }; + + public onSave = async ( + currentValues: Map, + baselineValues: Map + ): Promise => { + selfServeTrace({ selfServeClassName: MaterializedViewsBuilder.name }); + + const MaterializedViewsBuilderCurrentlyEnabled = currentValues.get("enableMaterializedViewsBuilder") + ?.value as boolean; + const MaterializedViewsBuilderOriginallyEnabled = baselineValues.get("enableMaterializedViewsBuilder") + ?.value as boolean; + + currentValues.set("warningBanner", undefined); + + if (MaterializedViewsBuilderOriginallyEnabled) { + if (!MaterializedViewsBuilderCurrentlyEnabled) { + const operationStatusUrl = await deleteMaterializedViewsBuilderResource(); + return { + operationStatusUrl: operationStatusUrl, + portalNotification: { + initialize: { + titleTKey: "DeleteInitializeTitle", + messageTKey: "DeleteInitializeMessage", + }, + success: { + titleTKey: "DeleteSuccessTitle", + messageTKey: "DeleteSuccesseMessage", + }, + failure: { + titleTKey: "DeleteFailureTitle", + messageTKey: "DeleteFailureMessage", + }, + }, + }; + } else { + const sku = currentValues.get("sku")?.value as string; + const instances = currentValues.get("instances").value as number; + const operationStatusUrl = await updateMaterializedViewsBuilderResource(sku, instances); + return { + operationStatusUrl: operationStatusUrl, + portalNotification: { + initialize: { + titleTKey: "UpdateInitializeTitle", + messageTKey: "UpdateInitializeMessage", + }, + success: { + titleTKey: "UpdateSuccessTitle", + messageTKey: "UpdateSuccesseMessage", + }, + failure: { + titleTKey: "UpdateFailureTitle", + messageTKey: "UpdateFailureMessage", + }, + }, + }; + } + } else { + const sku = currentValues.get("sku")?.value as string; + const instances = currentValues.get("instances").value as number; + const operationStatusUrl = await updateMaterializedViewsBuilderResource(sku, instances); + return { + operationStatusUrl: operationStatusUrl, + portalNotification: { + initialize: { + titleTKey: "CreateInitializeTitle", + messageTKey: "CreateInitializeMessage", + }, + success: { + titleTKey: "CreateSuccessTitle", + messageTKey: "CreateSuccesseMessage", + }, + failure: { + titleTKey: "CreateFailureTitle", + messageTKey: "CreateFailureMessage", + }, + }, + }; + } + }; + + public initialize = async (): Promise> => { + // Based on the RP call enableMaterializedViewsBuilder will be true if it has not yet been enabled and false if it has. + const defaults = new Map(); + defaults.set("enableMaterializedViewsBuilder", { value: false }); + defaults.set("sku", { value: CosmosD2s, hidden: true }); + defaults.set("instances", { value: await getInstancesMin(), hidden: true }); + defaults.set("costPerHour", undefined); + defaults.set("metricsString", { + value: undefined, + hidden: true, + }); + + regions = await getRegions(); + const priceMapAndCurrencyCode = await getPriceMapAndCurrencyCode(regions); + priceMap = priceMapAndCurrencyCode.priceMap; + currencyCode = priceMapAndCurrencyCode.currencyCode; + + const response = await getCurrentProvisioningState(); + if (response.status && response.status !== "Deleting") { + defaults.set("enableMaterializedViewsBuilder", { value: true }); + defaults.set("sku", { value: response.sku, disabled: true }); + defaults.set("instances", { value: response.instances, disabled: false }); + defaults.set("costPerHour", { value: calculateCost(response.sku, response.instances) }); + + defaults.set("metricsString", { + value: metricsStringValue, + hidden: false, + }); + } + defaults.set("warningBanner", undefined); + return defaults; + }; + + @Values({ + isDynamicDescription: true, + }) + warningBanner: string; + + @Values({ + description: { + textTKey: "MaterializedViewsBuilderDescription", + type: DescriptionType.Text, + link: { + href: "https://aka.ms/cosmos-db-materializedviews", + textTKey: "LearnAboutMaterializedViews", + }, + }, + }) + description: string; + + @OnChange(onEnableMaterializedViewsBuilderChange) + @Values({ + labelTKey: "MaterializedViewsBuilder", + trueLabelTKey: "Provisioned", + falseLabelTKey: "Deprovisioned", + }) + enableMaterializedViewsBuilder: boolean; + + @OnChange(onSKUChange) + @Values({ + labelTKey: "SKUs", + choices: getSkus, + placeholderTKey: "SKUsPlaceHolder", + }) + sku: ChoiceItem; + + @OnChange(onNumberOfInstancesChange) + @PropertyInfo(NumberOfInstancesDropdownInfo) + @Values({ + labelTKey: "NumberOfInstances", + min: getInstancesMin, + max: getInstancesMax, + step: 1, + uiType: NumberUiType.Spinner, + }) + instances: number; + + @PropertyInfo(ApproximateCostDropDownInfo) + @Values({ + labelTKey: "ApproximateCost", + isDynamicDescription: true, + }) + costPerHour: string; + + @Values({ + labelTKey: "MonitorUsage", + description: metricsStringValue, + }) + metricsString: string; +} diff --git a/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilderTypes.ts b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilderTypes.ts new file mode 100644 index 000000000..ac521fdfa --- /dev/null +++ b/src/SelfServe/MaterializedViewsBuilder/MaterializedViewsBuilderTypes.ts @@ -0,0 +1,57 @@ +export type MaterializedViewsBuilderServiceResource = { + id: string; + name: string; + type: string; + properties: MaterializedViewsBuilderServiceProps; + locations: MaterializedViewsBuilderServiceLocations; +}; +export type MaterializedViewsBuilderServiceProps = { + serviceType: string; + creationTime: string; + status: string; + instanceSize: string; + instanceCount: number; + MaterializedViewsBuilderEndPoint: string; +}; + +export type MaterializedViewsBuilderServiceLocations = { + location: string; + status: string; + MaterializedViewsBuilderEndpoint: string; +}; + +export type UpdateMaterializedViewsBuilderRequestParameters = { + properties: UpdateMaterializedViewsBuilderRequestProperties; +}; + +export type UpdateMaterializedViewsBuilderRequestProperties = { + instanceSize: string; + instanceCount: number; + serviceType: string; +}; + +export type FetchPricesResponse = { + Items: Array; + NextPageLink: string | undefined; + Count: number; +}; + +export type PriceMapAndCurrencyCode = { + priceMap: Map>; + currencyCode: string; +}; + +export type PriceItem = { + retailPrice: number; + skuName: string; + currencyCode: string; +}; + +export type RegionsResponse = { + locations: Array; + location: string; +}; + +export type RegionItem = { + locationName: string; +}; diff --git a/src/SelfServe/SelfServe.tsx b/src/SelfServe/SelfServe.tsx index 99e6e51c9..f663a3ef9 100644 --- a/src/SelfServe/SelfServe.tsx +++ b/src/SelfServe/SelfServe.tsx @@ -58,6 +58,14 @@ const getDescriptor = async (selfServeType: SelfServeType): Promise> => { +export const getRegions = async (): Promise> => { const telemetryData = { feature: "Calculate approximate cost", function: "getRegions", @@ -149,8 +150,6 @@ export const getRegions = async (): Promise> => { const getRegionsTimestamp = selfServeTraceStart(telemetryData); try { - const regions = new Array(); - const response = await armRequestWithoutPolling({ host: configContext.ARM_ENDPOINT, path: getGeneralPath(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.name), @@ -158,20 +157,12 @@ export const getRegions = async (): Promise> => { apiVersion: "2021-04-01-preview", }); - if (response.result.location !== undefined) { - regions.push(response.result.location.split(" ").join("").toLowerCase()); - } else { - for (const location of response.result.locations) { - regions.push(location.locationName.split(" ").join("").toLowerCase()); - } - } - selfServeTraceSuccess(telemetryData, getRegionsTimestamp); - return regions; + return response.result.properties.locations; } catch (err) { const failureTelemetry = { err, selfServeClassName: SqlX.name }; selfServeTraceFailure(failureTelemetry, getRegionsTimestamp); - return new Array(); + return new Array(); } }; @@ -179,7 +170,7 @@ const getFetchPricesPathForRegion = (subscriptionId: string): string => { return `/subscriptions/${subscriptionId}/providers/Microsoft.CostManagement/fetchPrices`; }; -export const getPriceMapAndCurrencyCode = async (regions: Array): Promise => { +export const getPriceMapAndCurrencyCode = async (regions: Array): Promise => { const telemetryData = { feature: "Calculate approximate cost", function: "getPriceMapAndCurrencyCode", @@ -191,7 +182,7 @@ export const getPriceMapAndCurrencyCode = async (regions: Array): Promis try { const priceMap = new Map>(); let currencyCode; - for (const region of regions) { + for (const regionItem of regions) { const regionPriceMap = new Map(); const response = await armRequestWithoutPolling({ @@ -202,7 +193,7 @@ export const getPriceMapAndCurrencyCode = async (regions: Array): Promis queryParams: { filter: "armRegionName eq '" + - region + + regionItem.locationName.split(" ").join("").toLowerCase() + "' and serviceFamily eq 'Databases' and productName eq 'Azure Cosmos DB Dedicated Gateway - General Purpose'", }, }); @@ -215,7 +206,7 @@ export const getPriceMapAndCurrencyCode = async (regions: Array): Promis } regionPriceMap.set(item.skuName, item.retailPrice); } - priceMap.set(region, regionPriceMap); + priceMap.set(regionItem.locationName, regionPriceMap); } selfServeTraceSuccess(telemetryData, getPriceMapAndCurrencyCodeTimestamp); diff --git a/src/SelfServe/SqlX/SqlX.tsx b/src/SelfServe/SqlX/SqlX.tsx index 76623cd97..a760d8d97 100644 --- a/src/SelfServe/SqlX/SqlX.tsx +++ b/src/SelfServe/SqlX/SqlX.tsx @@ -1,3 +1,4 @@ +import { RegionItem } from "SelfServe/SqlX/SqlxTypes"; import { IsDisplayable, OnChange, PropertyInfo, RefreshOptions, Values } from "../Decorators"; import { selfServeTrace, @@ -208,7 +209,7 @@ const ApproximateCostDropDownInfo: Info = { let priceMap: Map>; let currencyCode: string; -let regions: Array; +let regions: Array; const calculateCost = (skuName: string, instanceCount: number): Description => { const telemetryData = { @@ -221,27 +222,47 @@ const calculateCost = (skuName: string, instanceCount: number): Description => { try { let costPerHour = 0; - for (const region of regions) { - const incrementalCost = priceMap.get(region).get(skuName.replace("Cosmos.", "")); + let costBreakdown = ""; + for (const regionItem of regions) { + const incrementalCost = priceMap.get(regionItem.locationName).get(skuName.replace("Cosmos.", "")); if (incrementalCost === undefined) { - throw new Error("Value not found in map."); + throw new Error(`${regionItem.locationName} not found in price map.`); + } else if (incrementalCost === 0) { + throw new Error(`${regionItem.locationName} cost per hour = 0`); } - costPerHour += incrementalCost; + + let regionalInstanceCount = instanceCount; + if (regionItem.isZoneRedundant) { + regionalInstanceCount = Math.ceil(instanceCount * 1.5); + } + + const regionalCostPerHour = incrementalCost * regionalInstanceCount; + costBreakdown += ` + ${regionItem.locationName} ${regionItem.isZoneRedundant ? "(AZ)" : ""} + ${regionalCostPerHour} ${currencyCode} (${regionalInstanceCount} instances * ${incrementalCost} ${currencyCode})\ + `; + + if (regionalCostPerHour === 0) { + throw new Error(`${regionItem.locationName} Cost per hour = 0`); + } + + costPerHour += regionalCostPerHour; } if (costPerHour === 0) { throw new Error("Cost per hour = 0"); } - costPerHour *= instanceCount; costPerHour = Math.round(costPerHour * 100) / 100; selfServeTraceSuccess(telemetryData, calculateCostTimestamp); return { - textTKey: `${costPerHour} ${currencyCode}`, + textTKey: `${costPerHour} ${currencyCode} + ${costBreakdown}`, type: DescriptionType.Text, }; } catch (err) { + alert(err); const failureTelemetry = { err, regions, priceMap, selfServeClassName: SqlX.name }; selfServeTraceFailure(failureTelemetry, calculateCostTimestamp); diff --git a/src/SelfServe/SqlX/SqlxTypes.ts b/src/SelfServe/SqlX/SqlxTypes.ts index 7ca2fe264..3360df734 100644 --- a/src/SelfServe/SqlX/SqlxTypes.ts +++ b/src/SelfServe/SqlX/SqlxTypes.ts @@ -48,10 +48,14 @@ export type PriceItem = { }; export type RegionsResponse = { + properties: RegionsProperties; +}; + +export type RegionsProperties = { locations: Array; - location: string; }; export type RegionItem = { locationName: string; + isZoneRedundant: boolean; }; diff --git a/src/Shared/StorageUtility.ts b/src/Shared/StorageUtility.ts index 9c16467d2..0d8477016 100644 --- a/src/Shared/StorageUtility.ts +++ b/src/Shared/StorageUtility.ts @@ -14,4 +14,5 @@ export enum StorageKey { MostRecentActivity, SetPartitionKeyUndefined, GalleryCalloutDismissed, + VisitedAccounts, } diff --git a/src/Shared/Telemetry/TelemetryConstants.ts b/src/Shared/Telemetry/TelemetryConstants.ts index 2f43adb03..dd040ebb4 100644 --- a/src/Shared/Telemetry/TelemetryConstants.ts +++ b/src/Shared/Telemetry/TelemetryConstants.ts @@ -121,6 +121,15 @@ export enum Action { ExpandAddCollectionPaneAdvancedSection, SchemaAnalyzerClickAnalyze, SelfServeComponent, + LaunchQuickstart, + NewContainerHomepage, + Top3ItemsClicked, + LearningResourcesClicked, + PlayCarouselVideo, + OpenCarousel, + CompleteCarousel, + LaunchUITour, + CancelUITour, } export const ActionModifiers = { diff --git a/src/UserContext.ts b/src/UserContext.ts index 96bfc2ecf..74f14d6a9 100644 --- a/src/UserContext.ts +++ b/src/UserContext.ts @@ -1,3 +1,6 @@ +import { useCarousel } from "hooks/useCarousel"; +import { Action } from "Shared/Telemetry/TelemetryConstants"; +import { traceOpen } from "Shared/Telemetry/TelemetryProcessor"; import { AuthType } from "./AuthType"; import { DatabaseAccount } from "./Contracts/DataModels"; import { SubscriptionType } from "./Contracts/SubscriptionType"; @@ -55,6 +58,8 @@ interface UserContext { export type ApiType = "SQL" | "Mongo" | "Gremlin" | "Tables" | "Cassandra"; export type PortalEnv = "localhost" | "blackforest" | "fairfax" | "mooncake" | "prod" | "dev"; +const ONE_WEEK_IN_MS = 604800000; + const features = extractFeatures(); const { enableSDKoperations: useSDKOperations } = features; @@ -70,9 +75,34 @@ const userContext: UserContext = { collectionCreationDefaults: CollectionCreationDefaults, }; +function isAccountNewerThanThresholdInMs(createdAt: string, threshold: number) { + let createdAtMs: number = Date.parse(createdAt); + if (isNaN(createdAtMs)) { + createdAtMs = 0; + } + + const nowMs: number = Date.now(); + const millisecsSinceAccountCreation = nowMs - createdAtMs; + return threshold > millisecsSinceAccountCreation; +} + function updateUserContext(newContext: Partial): void { if (newContext.databaseAccount) { newContext.apiType = apiType(newContext.databaseAccount); + + const isNewAccount = isAccountNewerThanThresholdInMs( + newContext.databaseAccount?.systemData?.createdAt || "", + ONE_WEEK_IN_MS + ); + + if ( + !localStorage.getItem(newContext.databaseAccount.id) && + (userContext.isTryCosmosDBSubscription || isNewAccount) + ) { + useCarousel.getState().setShouldOpen(true); + localStorage.setItem(newContext.databaseAccount.id, "true"); + traceOpen(Action.OpenCarousel); + } } Object.assign(userContext, newContext); } diff --git a/src/hooks/useCarousel.ts b/src/hooks/useCarousel.ts new file mode 100644 index 000000000..533dab397 --- /dev/null +++ b/src/hooks/useCarousel.ts @@ -0,0 +1,15 @@ +import create, { UseStore } from "zustand"; + +interface CarouselState { + shouldOpen: boolean; + showCoachMark: boolean; + setShouldOpen: (shouldOpen: boolean) => void; + setShowCoachMark: (showCoachMark: boolean) => void; +} + +export const useCarousel: UseStore = create((set) => ({ + shouldOpen: false, + showCoachMark: false, + setShouldOpen: (shouldOpen: boolean) => set({ shouldOpen }), + setShowCoachMark: (showCoachMark: boolean) => set({ showCoachMark }), +})); diff --git a/src/hooks/useKnockoutExplorer.ts b/src/hooks/useKnockoutExplorer.ts index 7a0330ff3..09b1654ca 100644 --- a/src/hooks/useKnockoutExplorer.ts +++ b/src/hooks/useKnockoutExplorer.ts @@ -352,6 +352,7 @@ function updateContextsFromPortalMessage(inputs: DataExplorerInputsFrame) { hasWriteAccess: inputs.hasWriteAccess ?? true, addCollectionFlight: inputs.addCollectionDefaultFlight || CollectionCreation.DefaultAddCollectionDefaultFlight, collectionCreationDefaults: inputs.defaultCollectionThroughput, + isTryCosmosDBSubscription: inputs.isTryCosmosDBSubscription, }); if (inputs.features) { Object.assign(userContext.features, extractFeatures(new URLSearchParams(inputs.features))); diff --git a/src/hooks/useTabs.ts b/src/hooks/useTabs.ts index c8c059ab0..93149aba1 100644 --- a/src/hooks/useTabs.ts +++ b/src/hooks/useTabs.ts @@ -7,6 +7,8 @@ import TabsBase from "../Explorer/Tabs/TabsBase"; interface TabsState { openedTabs: TabsBase[]; activeTab: TabsBase; + isConnectTabOpen: boolean; + isConnectTabActive: boolean; activateTab: (tab: TabsBase) => void; activateNewTab: (tab: TabsBase) => void; updateTab: (tab: TabsBase) => void; @@ -15,19 +17,24 @@ interface TabsState { closeTabsByComparator: (comparator: (tab: TabsBase) => boolean) => void; closeTab: (tab: TabsBase) => void; closeAllNotebookTabs: (hardClose: boolean) => void; + activateConnectTab: () => void; + openAndActivateConnectTab: () => void; + closeConnectTab: () => void; } export const useTabs: UseStore = create((set, get) => ({ openedTabs: [], activeTab: undefined, + isConnectTabOpen: false, + isConnectTabActive: false, activateTab: (tab: TabsBase): void => { if (get().openedTabs.some((openedTab) => openedTab.tabId === tab.tabId)) { - set({ activeTab: tab }); + set({ activeTab: tab, isConnectTabActive: false }); tab.onActivate(); } }, activateNewTab: (tab: TabsBase): void => { - set((state) => ({ openedTabs: [...state.openedTabs, tab], activeTab: tab })); + set((state) => ({ openedTabs: [...state.openedTabs, tab], activeTab: tab, isConnectTabActive: false })); tab.onActivate(); }, updateTab: (tab: TabsBase) => { @@ -66,7 +73,7 @@ export const useTabs: UseStore = create((set, get) => ({ return true; }); if (updatedTabs.length === 0) { - set({ activeTab: undefined }); + set({ activeTab: undefined, isConnectTabActive: get().isConnectTabOpen }); } if (tab.tabId === activeTab.tabId && tabIndex !== -1) { @@ -104,8 +111,21 @@ export const useTabs: UseStore = create((set, get) => ({ }); if (get().openedTabs.length === 0) { - set({ activeTab: undefined }); + set({ activeTab: undefined, isConnectTabActive: get().isConnectTabOpen }); } } }, + activateConnectTab: () => { + if (get().isConnectTabOpen) { + set({ isConnectTabActive: true, activeTab: undefined }); + } + }, + openAndActivateConnectTab: () => set({ isConnectTabActive: true, isConnectTabOpen: true, activeTab: undefined }), + closeConnectTab: () => { + const { isConnectTabActive, openedTabs } = get(); + if (isConnectTabActive && openedTabs?.length > 0) { + set({ activeTab: openedTabs[0] }); + } + set({ isConnectTabActive: false, isConnectTabOpen: false }); + }, })); diff --git a/src/hooks/useTeachingBubble.ts b/src/hooks/useTeachingBubble.ts new file mode 100644 index 000000000..e615fc9fe --- /dev/null +++ b/src/hooks/useTeachingBubble.ts @@ -0,0 +1,24 @@ +import { Collection } from "Contracts/ViewModels"; +import create, { UseStore } from "zustand"; + +interface TeachingBubbleState { + step: number; + isSampleDBExpanded: boolean; + isDocumentsTabOpened: boolean; + sampleCollection: Collection; + setStep: (step: number) => void; + setIsSampleDBExpanded: (isReady: boolean) => void; + setIsDocumentsTabOpened: (isOpened: boolean) => void; + setSampleCollection: (sampleCollection: Collection) => void; +} + +export const useTeachingBubble: UseStore = create((set) => ({ + step: 1, + isSampleDBExpanded: false, + isDocumentsTabOpened: false, + sampleCollection: undefined, + setStep: (step: number) => set({ step }), + setIsSampleDBExpanded: (isSampleDBExpanded: boolean) => set({ isSampleDBExpanded }), + setIsDocumentsTabOpened: (isDocumentsTabOpened: boolean) => set({ isDocumentsTabOpened }), + setSampleCollection: (sampleCollection: Collection) => set({ sampleCollection }), +})); diff --git a/src/quickstart.html b/src/quickstart.html index 7e678292c..ed09dc49e 100644 --- a/src/quickstart.html +++ b/src/quickstart.html @@ -85,35 +85,23 @@ Learn more about Azure Cosmos DB
    @@ -140,35 +128,23 @@ Learn more about Azure Cosmos DB. @@ -197,29 +173,20 @@
    Learn more about Azure Cosmos DB.
    @@ -251,35 +218,23 @@ Learn more about Azure Cosmos DB. @@ -293,11 +248,7 @@ Create a new Python app.

    Follow this - tutorial + tutorial to create a new Python app connected to Azure Cosmos DB.

    @@ -309,28 +260,18 @@ Learn more about Azure Cosmos DB.